前言:
職場就像圍城,我們每一個職場人總是以「牆外」的視角羨慕著「牆內」的世界,而也許你的生活也出現在別人的夢中。希望「網際網路坊間八卦」能成為一個分享和了解不同生活的平台。
今天,筆者給大家分享一位程式設計師面試位元組跳動後端的技術面面經。讓我們一起了解一下程式設計師最原始的生活狀態。希望這些「乾貨」能讓你認識到不一樣的程式設計師的職場生活。
我是被撈起來面的,一面1個小時,休息了5分鐘之後直接二面,也是1個小時。第二天三面,應該是leader面,就面了半小時左右。過了兩天之後進入HR面,全程沒有問紅黑樹。
一面:
計算機網絡
- 三次握手
- 握手時產生的序列號幹什麼用的
- 講一下接收窗口
- TCP和UDP的本質區別
- 什麼時候選擇TCP/UDP
- HTTPS的連接過程
- 7層模型和4層模型,每一層有哪些常見協議?
- 路由器/交換機是哪一層
- 網絡層用來幹嘛?傳輸層用來幹嘛?
- HTTP可以使用UDP嗎
- HTTPS怎麼確認收到的包就是伺服器發來的
- 確定發送窗口的大小,如何最大利用帶寬,假設延遲100ms,發送端10Mb/s,接收端100Mb/s
資料庫
- 事務的四大特性
- 四種隔離級別
- 什麼是幻讀
- InnoDB 怎麼防止幻讀
- B+樹原理,為什麼使用B+而不是二叉平衡樹
作業系統
- 用戶態如何切換到內核態
- 進程間通信的方式,哪種最快
- 信號量怎麼實現對共享資源的訪問
語言
- 什麼是Python生成器,疊代器;
- 什麼是裝飾器;
- 元組和list的區別;
- Python中的dict底層怎麼實現的
- list的底層怎麼實現的;
- 雙等於和is有什麼區別
算法
- 求x的y次方,想出比直接for循環更好的方案
- 求絕對眾數
二面
設計題:一個資料庫存了以下數據:用戶id,登錄時間,登出時間;如何找到一天當中的用戶峰值(用一個hash map存所有秒數的在線人數)
為什麼要分用戶態和內核態
Git 切換分支,提交,具體如何合併分支
Python多線程用了幾個CPU
算法:二叉樹,輸出所有和為n的路徑(可以從中間結點到中間結點)
三面
和其他同學相比,你覺得自己有什麼優勢
自己的不足有哪些
GitHub和博客上分享過哪些東西
TCP的流量控制和擁塞控制
瀏覽器中輸入網址到獲得頁面的全過程
輸入 www.baidu.com,怎麼變成 https://www.baidu.com 的,怎麼確定用HTTP還是HTTPS
接觸過哪些後端框架
知道redis嗎
你用Django的時候,覺得它有哪些好的特性
除了Python還接觸過哪些語言
多久入職
文章來源: https://twgreatdaily.com/_iiuVm8BMH2_cNUgHgEl.html