字節(jié)跳動-頭條-內容生態(tài)與體驗后端-暑期實習面經(jīng)(已接offer)

第一份實習,拿到 offer 才敢寫面經(jīng)系列...

面試經(jīng)驗總的來說:

  • 心態(tài)一定要好,多和面試官交流,不要沉默,實在不會大方承認
  • 簡歷上的項目一定要熟,項目用到的東西也要熟,用到 redis 必問
  • 面試官喜歡問為什么,多查查,遇到了就能裝b
  • 算法題需要億點運氣

一面(3.22)55min

面試官是個小姐姐,nice

  1. 自我介紹

  2. 扒項目

    • 主要工作,遇到的困難
    • 一些細節(jié)問題,改進方案
  3. go 垃圾回收

    • 不太熟,大概描述了一下,提了一嘴 Python(簡歷上寫了熟悉 Python),小姐姐說沒關系,說下 Python 是怎么做的
  4. hashmap(說了 go 的 map 和 redis 的 hash 結構)

  5. redis rehash 過程

  6. rehash 過程中添加數(shù)據(jù),查詢數(shù)據(jù)怎么辦?(就是問漸進式 rehash,剛好沒看到,瞎猜了半天)

  7. hash 沖突用的什么方法解決的?查詢時間?最壞時間?

  8. 你說鏈地址法沖突到一條鏈上會退化成 O(n),它不好為什么要用?為什么不用其他的?

    • 沒太明白她的意思,我只是說最壞情況可沒說它不好。。然后只能說它們各有優(yōu)缺點吧
    • 應該再說一下鏈地址法的主要優(yōu)勢的
  9. 一道沒見過的算法題

給出一個分子式,比如:HMg2(H2ON3)3N2,計算這個分子式中每個原子出現(xiàn)了多少次,輸出一個map,比如上面的分子式中:map[string]int {"H": 7, "Mg": 2,"O": 3, ...}

  1. 都以大寫字母開頭,后面跟 0 個或者 1 個小寫字母,比如 Mg, H
  2. 單個原子后面跟 0 個或者 1 個數(shù)字表示它出現(xiàn)的次數(shù),比如 Mg2 表示 Mg 出現(xiàn) 2 次,數(shù)字范圍 2-9
  3. 分子式中可能有括號,括號后面可能跟 0 個或者 1 個數(shù)字表示整個括號內的原子出現(xiàn)的次數(shù),比如 (N3Ag)2 表示 N出現(xiàn) 6 次,Ag 出現(xiàn) 2 次 4. 括號可以嵌套
  4. 輸入是合法的

上來就遇到這么長的題讓我很慌,加上之前 redis 被問到不會,這里感覺都要停止思考了。。看了半天說想辦法從后往前把數(shù)字乘進去去掉括號再處理,問她思路有沒有問題,得到肯定回答才松了一口氣,然后說了下具體方法,理清之后面試官把括號去掉了,然后說時間不夠了寫下簡化版代碼吧

  1. 反問

算法題寫了有二三十分鐘,感覺要涼了,沒想到結束時面試官說先別走啊,我去喊一下二面面試官,瞬間復活

二面(3.22)1h

逐漸有狀態(tài)了,二面還算輕松,全程在線,當時感覺過挺快,回頭一聽才發(fā)現(xiàn)問了這么多問題

  1. gmp

  2. 協(xié)程的優(yōu)勢

  3. 進程線程區(qū)別

  4. 進程地址空間有哪些劃分

  5. 進程間通信

  6. 共享內存是怎么回事?映射到實際物理內存的虛擬地址在地址空間的哪一部分(我猜在堆區(qū))

  7. 虛擬內存

  8. 頁面置換算法(說了局部算法和全局算法)

  9. LRU 實現(xiàn)思路

  10. mysql 引擎,它們的區(qū)別

  11. innodb 輔助索引為什么存主鍵 id,回表不是要浪費時間?

  12. b+ 樹索引優(yōu)勢

  13. acid

  14. 隔離級別,可重讀是怎么實現(xiàn)的?幻讀是怎么回事?間隙鎖知道不?

  15. 讀寫鎖互斥關系,其他分類的鎖

  16. 我看你項目用到了 redis 具體用到了哪些數(shù)據(jù)結構?(string,hash,zset)

  17. zset 實現(xiàn),跳表是怎么回事?高度?時間復雜度?為什么不用 b+ 樹?

  18. redis 是單進程還是多進程?

  19. 扒項目(另一個爬蟲項目)

    • 代理服務的默認端口?(第一次聽說代理還有默認端口)
    • 頁面解析用的什么?
    • 爬蟲比較困難的場景?
    • 純js渲染的頁面怎么爬?
  20. (第一個項目)壓測怎么做的?其他一些可以優(yōu)化的點

  21. 力扣原題,舒服:力扣33. 搜索旋轉排序數(shù)組

  22. 反問

二面面試官超級 nice,各種引導,問到我不會了就說ok沒問題,全程給我信心,越面越順

晚上另一個hr小哥哥加我微信約了三面時間,之前聯(lián)系我的小姐姐不見了,唉

三面(3.25)30min

  1. 扒項目(收獲什么的)

  2. 我看你項目用了 mongodb,mongodb 存儲索引知道嗎?和 mysql 比有哪些優(yōu)勢?(回答 mongodb 并不熟,只是畢設想用用新東西,優(yōu)點就知道非結構化擴展容易,速度快)

  3. mysql 存儲引擎

  4. 項目用到了 redis 哪些結構(zset,hash),說一說底層實現(xiàn)

  5. zset 除了跳表+hash表外還有其他實現(xiàn)嗎?

    • 才想起來數(shù)據(jù)量較小時會用壓縮列表實現(xiàn)
    • 又問壓縮列表實現(xiàn)的主要目的,答節(jié)省內存
  6. 進程通信方式

  7. io多路復用的幾種方法(不熟,就提了下名字)

  8. cookie session

  9. 擁塞控制

  10. 力扣原題,舒服:力扣15. 三數(shù)之和

三面面試官應該是某個部門老大,面相和藹,問了30分鐘就結束了,有點慌,沒想到結束后10分鐘hr就發(fā)來微信約hr面了

hr面(3.29)15min

聊天,實習生都沒啥好問的

面完晚上我等不及就微信問hr結果,說沒問題,offer 在審批了,然后就是漫長的等待,中間還趕上清明假期,足足等了一周多才接到 offer,期待成為一名 ByteDancer

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容