這三個(gè)Offer,你怎么選?
前幾天,有讀者給我發(fā)信息,讓我?guī)退匆幌耾ffer的選擇:

字節(jié)、騰訊天美、阿里云,隨便一個(gè)都是羨煞旁人的offer,這家伙一下拿了三個(gè),我都開始酸了起來。
于是我讓他總結(jié)一下面試過程中考察的知識(shí)點(diǎn),給大家分享一下,這不秋招快到了,給大家復(fù)習(xí)提供一些參考。這里非常感謝這位反斜杠號(hào)同學(xué)(沒錯(cuò),他的微信名就是反斜杠號(hào)\)的分享。
面試經(jīng)歷
拿到offer:
字節(jié)跳動(dòng)今日頭條后端 騰訊天美服務(wù)器后臺(tái)開發(fā) 阿里阿里云C++研發(fā) Momenta Deep Learning 大疆自動(dòng)駕駛 測試開發(fā)
被調(diào)劑:
微軟蘇州SDE
掛掉:
網(wǎng)易雷火筆試
知識(shí)點(diǎn)總結(jié)
計(jì)算機(jī)網(wǎng)絡(luò)
TCP相較于UDP的優(yōu)點(diǎn),為什么有這些優(yōu)點(diǎn) 設(shè)計(jì)一個(gè)FPS游戲聯(lián)網(wǎng)服務(wù)器架構(gòu)(分布式,同步方式,包的選擇傳輸,主從模式容災(zāi)) TCP頭部組成,分別是干什么的 HTTP1.0、2.0、3.0的區(qū)別是什么 HTTP和HTTPS的區(qū)別 HTTPS的加密過程
操作系統(tǒng)
操作系統(tǒng)一頁的大小是多少 為什么一頁的大小是這么多 類似內(nèi)存頁大小這些計(jì)算機(jī)中的常量,設(shè)計(jì)的時(shí)候考慮哪些因素 進(jìn)程間通信方式,詳細(xì)介紹一下 對(duì)linux有多了解
C++
虛函數(shù)的實(shí)現(xiàn)方式 static關(guān)鍵字的多種用法 智能指針的了解和實(shí)現(xiàn)(boost或者C++標(biāo)準(zhǔn)庫,我答的C11標(biāo)準(zhǔn)庫) 多線程庫 STL底層實(shí)現(xiàn) map為什么用紅黑樹不是B+樹 constructor和destructor是否使用virtual,為什么 四大cast轉(zhuǎn)換 struct和class的區(qū)別 C++的編譯鏈接過程和實(shí)現(xiàn)原理 inline function inline和define的比較 函數(shù)默認(rèn)值的實(shí)現(xiàn) Name Mangling
數(shù)據(jù)庫
MySQL為什么用B+樹做索引而不是紅黑樹 MySQL的引擎,為什么要有這兩種,主要有什么區(qū)別 索引的實(shí)現(xiàn)原理 事務(wù)ACID和隔離等級(jí)
算法與數(shù)據(jù)結(jié)構(gòu)
(可能是因?yàn)槲沂歉鉇CM的,問的不是特別多
大部分是思維題,難度不高,涉及到幾個(gè)很基礎(chǔ)的二叉樹 設(shè)計(jì)redo/undo功能使用什么數(shù)據(jù)結(jié)構(gòu) LIS,普通三維dp等基礎(chǔ)的dp 基礎(chǔ)圖論算法,最短路和最小生成樹
項(xiàng)目經(jīng)驗(yàn)
大一寫的一個(gè)Unity3D的FPS游戲 一個(gè)CV+AI的項(xiàng)目
聊幾句
總的看來,在校園招聘中,各個(gè)大廠都是非常看重大家的基礎(chǔ)知識(shí)掌握情況的。
像計(jì)網(wǎng)、操作系統(tǒng)、數(shù)據(jù)結(jié)構(gòu)與算法、數(shù)據(jù)庫,這都是必考的東西,這幾門課程建議要全面復(fù)習(xí)一遍。
除此之外,不同語言方向的同學(xué),對(duì)各自所學(xué)的語言方面的知識(shí)點(diǎn)也要進(jìn)行全面的梳理,像文中的同學(xué)是C++方向的,對(duì)C++方面的基礎(chǔ)細(xì)節(jié)考察的還是非常細(xì)的。
很多同學(xué)戲稱面試題是背誦八股文,不過我不建議大家像高中那樣死記硬背這些知識(shí)點(diǎn),我的建議是多動(dòng)手,因?yàn)槲业慕?jīng)驗(yàn)是只有自己動(dòng)手去驗(yàn)證過的知識(shí)點(diǎn),自己在面試遇到的時(shí)候就會(huì)立刻想起來,回答的時(shí)候有理有據(jù),更加自信!
像計(jì)算機(jī)網(wǎng)絡(luò)方面的知識(shí)點(diǎn),就多抓包分析,在抓包軟件下面學(xué)習(xí)數(shù)據(jù)包,理解協(xié)議的交互流程比看書更深刻有效。
像操作系統(tǒng)、C++相關(guān)的知識(shí)點(diǎn),就寫一些代碼去驗(yàn)證,什么虛函數(shù)實(shí)現(xiàn)原理,inline函數(shù)原理,寫個(gè)代碼在調(diào)試器下看一下就知道了,這些都是不用去死記硬背的東西。
像算法與數(shù)據(jù)結(jié)構(gòu)相關(guān)的知識(shí)點(diǎn),就多刷一些題,比如牛客網(wǎng)、LeetCode都去刷一刷,刷的多了就摸準(zhǔn)了套路,一看到題目就知道要考察什么了,專業(yè)面試的時(shí)候感覺自然就來了。
除了復(fù)習(xí)和刷題,還有個(gè)很重要的環(huán)節(jié)就是去看面經(jīng),多看看別人的經(jīng)驗(yàn),查漏補(bǔ)缺,看得多了,心里也就不虛了。
復(fù)習(xí)+編程+刷題+刷面經(jīng)=Offer
最后問一句,這位同學(xué)遇到的題目,你能答出百分之多少?
