21屆互聯(lián)網(wǎng)算法崗求職經(jīng)驗(yàn)分享
寫(xiě)在前面
大家好,我是小王同學(xué),最近看到周?chē)男』锇殛戧懤m(xù)續(xù)在準(zhǔn)備今年的互聯(lián)網(wǎng)春招和秋招,不由想起去年的自己準(zhǔn)備秋招的情景。
我的情況比較特殊,我在去年的3,4月份之前還在準(zhǔn)備轉(zhuǎn)博,后來(lái)因?yàn)橐恍﹤€(gè)人特殊的情況不得不準(zhǔn)備找工作,所以我是在5月份才開(kāi)始正式準(zhǔn)備找工作。比較幸運(yùn)是,在比較短的準(zhǔn)備時(shí)間內(nèi),我的秋招之路還算比較順利,最終拿到了快手、字節(jié)、滴滴、shopee(sg)、阿里等十余個(gè)互聯(lián)網(wǎng)公司算法崗的offer,也都拿到了還不錯(cuò)的package。
所以各位同學(xué)可以準(zhǔn)備的時(shí)間要比我充裕的多,通過(guò)這篇文章,把我準(zhǔn)備找工作的過(guò)程、心得體會(huì)和踩過(guò)的坑寫(xiě)下來(lái),既是對(duì)一段經(jīng)歷的總結(jié),也希望能夠給各位同學(xué)一些啟發(fā),希望準(zhǔn)備找工作的同學(xué)可以少走一些彎路。
本篇分享貼適合于今年準(zhǔn)備找工作的同學(xué),當(dāng)然想提前為求職做準(zhǔn)備的同學(xué)也可以參考。
提綱
這篇分享貼可能會(huì)比較長(zhǎng),主要分為以下幾個(gè)部分
「簡(jiǎn)歷」
「代碼能力」
「機(jī)器/深度學(xué)習(xí)基礎(chǔ)」
「面試」
簡(jiǎn)歷
簡(jiǎn)歷的重要性相信不用我過(guò)多進(jìn)行闡述,面試官對(duì)你的第一印象都來(lái)自于你的簡(jiǎn)歷。如果你簡(jiǎn)歷做的糟糕,縱使你有驚世之絕學(xué),可能連面試的資格都不會(huì)有。
我個(gè)人覺(jué)得在準(zhǔn)備找工作的時(shí)候第一步就應(yīng)該做你的簡(jiǎn)歷,這么做有如下幾個(gè)好處:
「對(duì)目前的狀態(tài)進(jìn)行一個(gè)階段性的總結(jié)」。自己現(xiàn)在能拿得出手的干貨有哪些,有哪些優(yōu)勢(shì)和作品可以在簡(jiǎn)歷上進(jìn)行展示。 「查漏補(bǔ)缺」。一份好的互聯(lián)網(wǎng)研發(fā)崗求職簡(jiǎn)歷應(yīng)該包括幾個(gè)核心模塊(下面會(huì)一條一條講),有哪些模塊是自己比較薄弱的,應(yīng)該利用寶貴的時(shí)間進(jìn)行針對(duì)性的補(bǔ)強(qiáng)。一場(chǎng)面試差不多40分鐘到一個(gè)小時(shí),絕大部份面試官都是根據(jù)你的簡(jiǎn)歷問(wèn)問(wèn)題,你的簡(jiǎn)歷內(nèi)容比較充實(shí)的話,那么面試的主動(dòng)權(quán)就掌握在你的手上,因?yàn)槊嬖嚬倏梢詥?wèn)的都是你自己熟悉的。相反,如果你簡(jiǎn)歷的內(nèi)容比較薄弱,沒(méi)什么可問(wèn)的,那主動(dòng)權(quán)就在面試官手上了,這樣你可能都不知道面試官下一個(gè)問(wèn)題會(huì)問(wèn)什么。 「利于更新迭代」。一份好的簡(jiǎn)歷從來(lái)都不可能是一次就做好的,在你不斷準(zhǔn)備,不斷充實(shí)自己的過(guò)程中,簡(jiǎn)歷也能夠不斷進(jìn)行迭代。
一份好的簡(jiǎn)歷研發(fā)求職簡(jiǎn)歷應(yīng)該力求簡(jiǎn)明、突出重點(diǎn)。內(nèi)容應(yīng)該包括如下幾個(gè)模塊:
「?jìng)€(gè)人信息」。包括姓名、個(gè)人照片(正式、最好是證件照)、聯(lián)系方式(電話+郵箱)、個(gè)人主頁(yè)(如果有并且是加分項(xiàng)的話可以放上去) 「教育背景」。包括在校時(shí)間、學(xué)校名稱、專(zhuān)業(yè)名稱、排名、所學(xué)專(zhuān)業(yè)課等等。 「榮譽(yù)獎(jiǎng)項(xiàng)」。包括你所獲的一些獎(jiǎng)勵(lì)名稱等等。 「項(xiàng)目經(jīng)歷」。這邊主要是包括你在學(xué)校/公司實(shí)習(xí)期間所參與的一些項(xiàng)目/比賽等等。需要注意的是,「重點(diǎn)詞匯要加粗」,這樣方便面試官快速獲取想要的信息。關(guān)于項(xiàng)目經(jīng)歷一些同學(xué)可能會(huì)比較頭疼,因?yàn)閷?shí)驗(yàn)室資源受限等原因,自己沒(méi)有很多能拿得出手的項(xiàng)目。在這邊我提供一個(gè)思路,大家可以去參加天池、kaggle上面的比賽,拿到一個(gè)還不錯(cuò)的名次,這種經(jīng)歷也是可以寫(xiě)在簡(jiǎn)歷上的。 「科研成果」。如果有的話,寫(xiě)上自己在學(xué)校期間的科研成果,包括論文、專(zhuān)利等等。 「專(zhuān)業(yè)技能」。研發(fā)崗位的話,這邊主要寫(xiě)你所掌握的一些硬技能(編程語(yǔ)言等)和軟技能(溝通、合作能力等)。
當(dāng)然,上面所提到的的模塊不一定都要有,需要根據(jù)個(gè)人的情況靈活變通,比如說(shuō)你榮譽(yù)獎(jiǎng)項(xiàng)就只有兩個(gè),那你榮譽(yù)獎(jiǎng)項(xiàng)這一個(gè)模塊就沒(méi)必要單獨(dú)拎出來(lái),可以將其融入到教育背景里。
關(guān)于簡(jiǎn)歷的樣式,大家可以參考超級(jí)簡(jiǎn)歷這個(gè)網(wǎng)站(非廣告),下面是我覺(jué)得還不錯(cuò)的簡(jiǎn)歷樣式。想要我的word簡(jiǎn)歷模板的同學(xué),也可以聯(lián)系我獲取。

另外,制作簡(jiǎn)歷的時(shí)候還有其他幾個(gè)要注意的地方:
「一定一定要注意簡(jiǎn)歷的排版和字體」。我之前在實(shí)驗(yàn)室負(fù)責(zé)招生相關(guān)的工作,見(jiàn)過(guò)很多份同學(xué)的簡(jiǎn)歷,很多學(xué)生背景很不錯(cuò),但是簡(jiǎn)歷做的慘不忍睹。你的簡(jiǎn)歷的排版是否美觀、上下文是否對(duì)齊,字體是否統(tǒng)一等等這些細(xì)節(jié)問(wèn)題一定要注意。這些地方面試官基本一眼就能看到,這些細(xì)節(jié)也決定了面試官對(duì)你的第一印象。 「簡(jiǎn)歷做好后最好找有經(jīng)驗(yàn)的前輩幫忙把把關(guān)」。包括你的導(dǎo)師、已經(jīng)工作的師兄師姐等,他們見(jiàn)過(guò)很多份簡(jiǎn)歷,知道一份好的簡(jiǎn)歷是什么樣。就像我的導(dǎo)師之前在互聯(lián)網(wǎng)公司工作過(guò)一段時(shí)間,級(jí)別很高,我簡(jiǎn)歷做好后導(dǎo)師前前后后幫我修改不下于5版;包括我大四時(shí)候在公司實(shí)習(xí)的mentor,大晚上也給我的簡(jiǎn)歷提出了很多寶貴的意見(jiàn)。他們的意見(jiàn)對(duì)我簡(jiǎn)歷質(zhì)量的提升起到了很大的幫助,在此也對(duì)他們表示真誠(chéng)的謝意。 「簡(jiǎn)歷的命名」。這是很多同學(xué)不太注意的地方,我個(gè)人覺(jué)得簡(jiǎn)歷命名最好是姓名+學(xué)校+電話,這樣方便面試官快速get你的信息。 「簡(jiǎn)歷中寫(xiě)的東西一定要是自己理解并能夠清楚講出來(lái)的」。很多同學(xué)為了簡(jiǎn)歷好看,會(huì)在簡(jiǎn)歷上寫(xiě)一些比較高大上但是自己不是很懂的內(nèi)容,這是大忌。面試的時(shí)候面試官絕大部份時(shí)候都是根據(jù)你的簡(jiǎn)歷進(jìn)行深挖,如果你簡(jiǎn)歷中寫(xiě)的東西自己都講不清楚,可以想想面試官對(duì)你是什么樣的印象。所以簡(jiǎn)歷上的內(nèi)容在面試之前一定好好搞懂。
關(guān)于簡(jiǎn)歷的內(nèi)容大概就是這些,希望能夠給大家一些幫助吧。
代碼能力
我相信很多經(jīng)歷過(guò)找工作的同學(xué)最頭疼的就是現(xiàn)場(chǎng)手撕代碼了,但是這一部分內(nèi)容卻基本是每一場(chǎng)互聯(lián)網(wǎng)面試必備的,也可能是在準(zhǔn)備秋招的時(shí)候花費(fèi)時(shí)間最長(zhǎng)的。
我相信絕大部份同學(xué)和我一樣之前沒(méi)有打過(guò)ACM,沒(méi)有系統(tǒng)刷過(guò)Leetcode。針對(duì)這些同學(xué),我相信下面這一套算法題準(zhǔn)備流程應(yīng)該就是為你準(zhǔn)備的。
下面的過(guò)程綜合了我個(gè)人的準(zhǔn)備經(jīng)驗(yàn),以及我們實(shí)驗(yàn)室專(zhuān)門(mén)邀請(qǐng)互聯(lián)網(wǎng)資深專(zhuān)家為新生準(zhǔn)備的代碼訓(xùn)練營(yíng)教材。step by step走下來(lái)handle大部分互聯(lián)網(wǎng)公司面試的代碼題應(yīng)該問(wèn)題不大。也希望我的經(jīng)驗(yàn)?zāi)軌蚪o大家一些啟發(fā),少走一些彎路。
「第一步,《劍指offer》」?!秳χ竜ffer》這本書(shū)的名聲在外,之前沒(méi)有系統(tǒng)刷過(guò)Leetcode的同學(xué)這本書(shū)建議先做一遍。這本書(shū)的所有題目在Leetcode上都有,差不多60道題目,在一些小公司的面試中很大概率出現(xiàn)原題。
按照上面的步驟走下來(lái),咱們基本的算法思維應(yīng)該是可以培養(yǎng)出來(lái)了。這時(shí)候中小互聯(lián)網(wǎng)公司的面試題很多咱們應(yīng)該都可以解決了。這一步所需要的花費(fèi)的時(shí)間每個(gè)人不一樣,全力準(zhǔn)備秋招的同學(xué)可能花的時(shí)間少一些。我個(gè)人花了差不多一個(gè)月,但是我覺(jué)得這一個(gè)月花的是值的。
看懂題目之后,自己思考兩三分鐘之后(剛開(kāi)始沒(méi)有經(jīng)驗(yàn)的時(shí)候大部分人應(yīng)該都不會(huì)有思路),直接看題解??炊}解之后對(duì)著AC的代碼自己敲一遍。這個(gè)過(guò)程是為了培養(yǎng)自己的算法意識(shí),熟悉一般的算法解題套路。這個(gè)過(guò)程整體走下來(lái)應(yīng)該差不多一周左右,經(jīng)歷過(guò)這一周,我相信很多同學(xué)已經(jīng)知道算法題是怎么一回事了。當(dāng)然,之前有過(guò)刷題經(jīng)驗(yàn)的同學(xué)可以略過(guò)這一步。 不看答案,開(kāi)始寫(xiě)這60多道題。即使我們之前以為自己看懂了題解,但是很多題目還是寫(xiě)不出來(lái),沒(méi)思路。這個(gè)過(guò)程很正常,不要灰心。對(duì)于沒(méi)有思路的題目繼續(xù)看懂題解,然后不看作者的代碼,爭(zhēng)取自己寫(xiě)出AC的代碼。之后我們將這一次沒(méi)有寫(xiě)出來(lái)的題目在本地文檔中記錄下來(lái)。 針對(duì)上次沒(méi)有寫(xiě)出來(lái)的題目進(jìn)行三刷。根據(jù)我的經(jīng)驗(yàn),我相信這一次,絕大部分題目咱們應(yīng)該都能寫(xiě)出來(lái)了。但是不排除有個(gè)別的題目我們還是寫(xiě)不出來(lái),這時(shí)候看這些題目的題解,多看幾遍,強(qiáng)迫自己記住作者的思路。然后把這些題目再記錄下來(lái)。 最后,我們整體再刷一遍《劍指offer》上面的所有題目,這一次,絕大部份題目咱們都能依靠自己進(jìn)行AC。 「第二步,按照Leetcode的tag刷題」?!秳χ竜ffer》中的題目比較雜,涉及的知識(shí)面也比較廣。而第二階段是讓我們對(duì)于各個(gè)知識(shí)點(diǎn)重點(diǎn)突破。給出分類(lèi)網(wǎng)站:這個(gè)網(wǎng)站(https://leetcode.com/discuss/career/448285/List-of-questions-sorted-by-common-patterns),總結(jié)的很棒。
做完第二步,我們差不多已經(jīng)刷了130道題左右。我個(gè)人覺(jué)得這個(gè)量已經(jīng)能夠應(yīng)付很多互聯(lián)網(wǎng)公司的面試了。
針對(duì)這二步中的問(wèn)題,很多題目難度都是medium和hard類(lèi)型的,我們很難一次AC,再次使用我們之前使用過(guò)的反復(fù)刷題法。這時(shí)候?qū)⑽覀儧](méi)有一次AC的題目和題解按照tag分門(mén)別類(lèi)記錄在本地的文稿中。我是這么記錄的:

這樣記錄有一個(gè)好處,我會(huì)在題目上加入超鏈接,這樣方便快速定位到題目和題解。之后會(huì)把題目?jī)?nèi)容和AC代碼、自己的一些小想法都記錄下來(lái),這樣「方便自己后面進(jìn)行回顧」(特別是在每一次面試前夕進(jìn)行快速回顧,我發(fā)現(xiàn)這個(gè)方法真的很贊,效率很高)。
我希望提倡的是題目做精而不是做多,因?yàn)槲野l(fā)現(xiàn)很多同學(xué)雖然題目刷的多,但是很多題目刷一遍就忘了。刷題最重要的是搞清楚數(shù)據(jù)結(jié)構(gòu)和算法的原理。個(gè)人建議刷完200道題后就沒(méi)必要專(zhuān)門(mén)做新的題目了,把之前做過(guò)的題目反復(fù)拿出來(lái)反復(fù)做、反復(fù)看,這樣會(huì)加深自己的理解。
「第三步,刷互聯(lián)網(wǎng)大廠的題庫(kù)」。進(jìn)行了上面兩步之后,咱們的刷題能力應(yīng)該還可以了。之后就沒(méi)必要全力刷題了,這一階段就進(jìn)入了持續(xù)作戰(zhàn)階段,需要每天刷題保持手感。個(gè)人建議刷互聯(lián)網(wǎng)大廠的真題。下面給出個(gè)人覺(jué)得不錯(cuò)的github倉(cāng)庫(kù)(非廣告):
https://github.com/afatcoder/LeetcodeTop
最后,個(gè)人給出幾個(gè)自己覺(jué)得還不錯(cuò)的資源,大家可以甄別后自?。?/p>
Leetcode 題解(https://github.com/CyC2018/CS-Notes/blob/master/notes/Leetcode%20%E9%A2%98%E8%A7%A3%20-%20%E7%9B%AE%E5%BD%95.md) 劍指offer題解(https://krahets.gitee.io/views/sword-for-offer/2020-05-20-sword-for-offer-00.html) 算法題解(https://greyireland.gitbook.io/algorithm-pattern/)
不要貪多,代碼能力還是需要多寫(xiě),多思考,肯定沒(méi)啥問(wèn)題。關(guān)于代碼能力的內(nèi)容大概就是這些,希望能夠給大家一些幫助。如果有同學(xué)需要我自己當(dāng)時(shí)記錄的一些重點(diǎn)題目(不一定適合所有人),也可以聯(lián)系我獲取。
機(jī)器/深度學(xué)習(xí)基礎(chǔ)
機(jī)器學(xué)習(xí)和深度學(xué)習(xí)相關(guān)的問(wèn)題很多都是一些常規(guī)的問(wèn)題。由于我們實(shí)驗(yàn)室一直在做機(jī)器學(xué)習(xí)和深度學(xué)習(xí)方面的研究,得益于實(shí)驗(yàn)室平時(shí)對(duì)于基礎(chǔ)知識(shí)的重視,關(guān)于這部分內(nèi)容我個(gè)人花費(fèi)的時(shí)間不是很多。主要的復(fù)習(xí)資料來(lái)源于我的導(dǎo)師,中科大MIRA實(shí)驗(yàn)室王杰老師上課的課件(感興趣的同學(xué)可以自取,講的還是非常深入的。谷歌可以搜索到,網(wǎng)址我也放在這里 https://miralab.ai)還有就是及時(shí)關(guān)注??途W(wǎng)上相關(guān)崗位的面經(jīng)。
雖然個(gè)人覺(jué)得這部分內(nèi)容更多屬于記憶的性質(zhì),但是想要自己比別人突出的話還是要對(duì)問(wèn)題的理解比別人更深刻才行。根據(jù)我個(gè)人的經(jīng)驗(yàn),我在這邊總結(jié)一些常見(jiàn)的問(wèn)題,綜合了我?guī)孜煌瑢W(xué)的面經(jīng),貌似很多公司問(wèn)的基本都不會(huì)超過(guò)這些,不同崗位可能有細(xì)微的差別。
LR和SVM相關(guān)的問(wèn)題,細(xì)節(jié)都需要理解,經(jīng)常會(huì)被問(wèn)到。 講一下LSTM,內(nèi)部結(jié)構(gòu)以及各個(gè)門(mén)的作用,怎么緩解梯度消失。相關(guān)的包括RNN、GRU的結(jié)構(gòu) 各種 Normaliza 的作用、差異點(diǎn)、參數(shù)量等 怎么緩解過(guò)擬合、各種正則項(xiàng)的理解;L1和L2的區(qū)別等 Adam優(yōu)化器的介紹,優(yōu)化器的發(fā)展歷程、特點(diǎn)等 transformer 結(jié)構(gòu)相關(guān)的知識(shí) 激活函數(shù)的特性 loss函數(shù)相關(guān)的問(wèn)題。知道哪些損失函數(shù),說(shuō)出softmax的形式、為什么要用log、證明某個(gè)函數(shù)是凸的等。 dict容器是怎么實(shí)現(xiàn)的 Dropout是怎么實(shí)現(xiàn)的 Word2Vec相關(guān)問(wèn)題(分層softmax、負(fù)采樣等) 隨機(jī)森林、GBDT等相關(guān)問(wèn)題
我還是相信各位搜索知識(shí)的能力的,以后有時(shí)間的話我可以再總結(jié)這些問(wèn)題的答案。最后照例推薦幾個(gè)還不錯(cuò)的總結(jié)文章和知乎用戶(真的很棒)
小王同學(xué)(我在大四時(shí)候?qū)懙臋C(jī)器學(xué)習(xí)的總結(jié)文章,存在私心hhh) 阿澤(這位博主關(guān)于機(jī)器學(xué)習(xí)知識(shí)的梳理寫(xiě)的很棒,確實(shí)比我好TAT) 一個(gè)框架看懂優(yōu)化算法之異同 SGD/AdaGrad/Adam
其他的需要各位同學(xué)自己去搜索啦,關(guān)于這部分內(nèi)容基本就是這些。
面試
一般來(lái)講,互聯(lián)網(wǎng)公司開(kāi)始招聘的時(shí)間都還比較早,3月份很多公司春招就已經(jīng)開(kāi)始了。5、6月份很多公司秋招提前批就已經(jīng)開(kāi)始了,大家合理安排投遞和面試時(shí)間。
在相關(guān)崗位和招聘公告出來(lái)后,「在時(shí)間、精力允許的情況下盡量早投遞,早投遞機(jī)會(huì)更多」。牛客網(wǎng)中里面會(huì)有招聘匯總貼,會(huì)匯總當(dāng)年互聯(lián)網(wǎng)公司的招聘時(shí)間節(jié)點(diǎn)和網(wǎng)址,大家可以及時(shí)關(guān)注。
在整個(gè)投遞過(guò)程中,如果時(shí)間允許的話,個(gè)人建議可以先投一兩個(gè)小公司練練手。之后在拿到自己可以接受的offer后,個(gè)人建議之后主要沖大廠核心崗位。
在投遞部門(mén)的時(shí)候,多利用身邊學(xué)長(zhǎng)學(xué)姐、同學(xué)的資源了解部門(mén)的情況;也可以利用脈脈這個(gè)平臺(tái),了解你所投遞的公司和崗位的一些信息,從而輔助自己的選擇。
準(zhǔn)備了這么多,檢驗(yàn)我們成果的時(shí)刻就是正式的面試?;ヂ?lián)網(wǎng)公司整體的招聘通常主要包括以下幾個(gè)流程
「筆試」(有些公司提前批沒(méi)有) 筆試絕大部分都是代碼題目,也會(huì)包括一些數(shù)學(xué)類(lèi)和計(jì)算機(jī)基礎(chǔ)相關(guān)的題目。 「二到三輪的技術(shù)面試」(基本都是我們之前準(zhǔn)備的) 代碼題 項(xiàng)目/實(shí)習(xí)經(jīng)歷。對(duì)于自己簡(jiǎn)歷中寫(xiě)過(guò)的內(nèi)容一定要搞清楚 機(jī)器學(xué)習(xí)/深度學(xué)習(xí)基礎(chǔ) 可能會(huì)有一些概率論、線性代數(shù)相關(guān)的問(wèn)題,但是占比不是很多 「HR面試」。大家不要小看HR面試,在一些公司,HR面試具有一票否決權(quán),但HR面試的內(nèi)容基本都是有跡可循的。得益于我之前在實(shí)驗(yàn)室有很多面試保研學(xué)生的機(jī)會(huì),得到了比較多的鍛煉,在HR面試中,我自己整體的感受還可以,很多問(wèn)題都是我之前面試其他學(xué)生時(shí)問(wèn)過(guò)的問(wèn)題,所以說(shuō)大家如果在實(shí)驗(yàn)室能夠有這樣鍛煉的機(jī)會(huì)還是要及時(shí)抓住的,這樣可以更多從面試官的角度來(lái)思考問(wèn)題。HR面試的時(shí)候注意不卑不亢,表達(dá)出對(duì)公司和崗位的興趣即可。
另外,需要注意的是,在面試過(guò)程中一定要和面試官進(jìn)行適當(dāng)、有效的溝通,溝通既可以讓面試官提高對(duì)你的印象分,也可以在一些你不會(huì)的題目上得到面試官的指點(diǎn)。同時(shí),一定要學(xué)會(huì)提問(wèn),在最后提問(wèn)的環(huán)節(jié)提前準(zhǔn)備一些想問(wèn)的問(wèn)題,不要最后什么問(wèn)題都不問(wèn),給別人的觀感可能不是很好。
寫(xiě)在最后
文章寫(xiě)到這邊,基本的內(nèi)容差不多就是這些,希望能夠沒(méi)有浪費(fèi)各位的時(shí)間。
在我去年找工作的過(guò)程中,我也得到了很多老師、前輩、同學(xué)的幫助和提攜,在這里對(duì)他們表示真摯的感謝。
最后,希望大家都能求職順利~
