位元組跳動後端開發 面經(已收到意向書)

違規暱稱4399發表於2020-10-19

大概過了大半個月,憑印象記錄一下面試。
背景: 上海交大CS2021屆應屆生,一份阿里的暑期實習(實習期約3個月,面了5面技術1面HR,兩個月左右,戰線極長,慘痛經歷不想回憶)

一面

約1h

專案

講了一個暑期在阿里實習做的完整專案,問了需求、資料庫的設計,順勢問了資料庫

資料庫

瞭解索引嗎?是什麼結構?為什麼用B+樹?
聚集索引和非聚集索引知道嗎?非聚簇索引的查詢都要回表嗎?
死鎖條件

網路:

三次握手,最後一次能不能省略;
四次揮手,為什麼要等待2msl;
TCP\UDP的區別,你認為QQ視訊應該用什麼
正確答案應該是UDP,我信誓旦旦的說了TCP,要保證有序、可靠傳輸啥的,後來問了師姐,視訊這種高資源的應該用UDP保證速度,而且對傳輸對可靠性沒有太高要求。
流量控制和擁塞避免機制,詳細講了滑動視窗

作業系統

說說你對執行緒池的理解
程式怎樣終止,可以廢除嗎?

演算法

迴文連結串列判斷
通過連結串列反轉可解

表現: 程式碼寫的超過了20min限制,好在寫出來了,不過後面時間不多了就沒讓跑。基礎知識除了QQ視訊答錯了,執行緒池沒複習,憑影響瞎說一通答好,別的自我感覺不錯。

二面

專案

講了另一個阿里實習做的專案,感覺實習之後面試官對課程的專案沒有興趣了……

作業系統

儲存的結構
為什麼要用快取記憶體
程式間通訊的方法

資料庫

ACID瞭解嗎、原子性怎麼實現
說說事務的隔離級別(這個腦抽沒想出來)
資料庫裡面有哪些鎖

演算法

連結串列重排
描述
給定一個單連結串列L: L0→L1→…→Ln-1→Ln,
重新排列後為:L0→Ln→L1→Ln-1→L2→Ln-2→…
時間複雜度 問我覺得可以多少 O(n)
空間複雜度要求O(1)
後半部分反轉,然後插入即可
兩題都是連結串列反轉……第二題十分鐘寫完

表現: 程式碼寫的很快,面試官讓給個用例跑一下,一遍ac,感覺他鬆了一口氣。面後交流的時候面試官吐槽我是不是基礎知識都沒咋複習,說我還是得去看看。我承認我就準備了一天……聊了一會職業規劃和興趣愛好。

三面

三面是leader面,因為沒有hr面,上來就跟我聊了一些非技術的問題,介紹了在阿里參與的三個專案,介紹為主,沒有細問。

資料結構

知道幾種排序的方法?
漏答了歸併,所以讓我詳細講講這個,包括實現、時間複雜度、是不是穩定,穩定排序的概念(我答錯了)
講講B+樹,我順便講了avl樹和搜尋樹,和B樹的區別,以及應用場景、優劣等。【這題我會!所以展開多講了一點】
問了圖的相關問題 因為比較擅長,展開聊了一些【感謝yyu】

演算法

刪除連結串列中連續的重複項,如11223輸出3,問題不難,但我寫出一堆bug,答的不好

智力題

假如我寫了一篇萬字csdn,裡面有敏感詞彙不能發出去,我有什麼辦法解決這個問題。
完全沒有思路……猜測是不是與網路傳輸相關,或者有沒有途徑去爬敏感詞庫,被否定了。和麵試官討論之後,最終思路就是二分搜尋。和麵試官吐槽了一下,哪怕log2N對計算機收斂很快,對使用者來說操作成本也太高了,被反問還有更好的辦法嗎……

表現: 答的有點爛,不過面試官很nice。問的技術不多,我也記不太清了,這個演算法題我用了兩種方法,花了30-40分鐘,而且最終寫出來也有點小bug。
我們交流了一下,我說覺得位元組的面試不太看重語言和框架,答:我們用的GO語言,大多數人都不熟悉,一般都是來了之後現學的,所以不太去關注C++、JAVA的具體細節。

綜合體驗

面試效率很高,演算法很喜歡考連結串列,不關注語言和框架,對專案很感興趣且會問的挺多,要多思考,千萬千萬要熟悉專案。一面問了挺多基礎知識的,基礎知識表現不錯,程式碼一般。二面程式碼不錯,基礎知識不知道……面試官沒啥反饋,問題是臨時想的,一度以為在刷KPI。三面是大佬,可能關注點在思考多一點(對分治有蜜汁執著)

我大概準備時間是一二面(同一個下午)前1天半,找了幾篇面經,總結了一些常考的問題(資料庫,作業系統,網路,演算法,C++,Java),回顧了簡歷專案,刷了幾道劍指offer試試手感。三面前一晚上+一上午,擴充了基礎知識庫,對專案進行一些思考。

小技巧:可以適當掌握主動權,讓面試官往你擅長對地方問!對自己擅長的內容,可以適當展開多講一些,展現自己能力的同時,縮短面試官問技術題的時間,減少遇到不會答的題的可能性。

相關文章