除了極少數(shù)公司會(huì)在一上來就要求你做一道編程題以外,大部分互聯(lián)網(wǎng)公司都會(huì)在你的自我介紹和論文之后開始進(jìn)行基礎(chǔ)知識(shí)的考察,因此它的重要性不言而喻。 基礎(chǔ)知識(shí)的復(fù)習(xí)有兩種途徑, 一是看書,二是看視頻,這取決于你對(duì)哪一種途徑接受知識(shí)的速度更快。 我選擇的是看書,一是因?yàn)橐曨l不一定講得面面俱到,二是視頻質(zhì)量如果不過關(guān),很有可能某些細(xì)節(jié)的講述是錯(cuò)誤的。以推薦/廣告崗位為例,我主要看如下書籍。 周志華的西瓜書《機(jī)器學(xué)習(xí)》
李航老師的《統(tǒng)計(jì)機(jī)器學(xué)習(xí)》第二版
DL圣經(jīng)《深度學(xué)習(xí)》,又名花書。
《百面機(jī)器學(xué)習(xí)》
《概率論與數(shù)理統(tǒng)計(jì)》、《線性代數(shù)》、《凸優(yōu)化》
推薦/廣告:《深度學(xué)習(xí)推薦系統(tǒng)》、《計(jì)算廣告》等
如果時(shí)間有限,可以直接去看 第二本藍(lán)皮書和第三本花書 ,這兩本書一定要從頭到尾仔仔細(xì)細(xì)的過一遍,因?yàn)榛A(chǔ)知識(shí)的考察無外乎就是機(jī)器學(xué)習(xí)或深度學(xué)習(xí)里的知識(shí)。 當(dāng)這兩本書過完一遍之后,再看西瓜書的效率就會(huì)快很多了。除此之外,第四本書可以留在你將要面試的那幾天著重去學(xué)習(xí),因?yàn)槟阌辛饲皫妆緯闹R(shí)做鋪墊,第四本書就可以當(dāng)成八股文去背了。 前提是一定要在你理解這些知識(shí)之后,因?yàn)閱渭兊乃烙浻脖趁嬖嚬倨鋵?shí)很容易就會(huì)發(fā)現(xiàn)破綻,畢竟現(xiàn)在每個(gè)人都會(huì)背。對(duì)于本科學(xué)習(xí)過的線代和概率論,建議大家也復(fù)習(xí)一遍,因?yàn)樵谖业拿嬖囘^程中就有面試官殘忍的提問了,雖然概率不高。對(duì)于學(xué)有余力的同學(xué),可以去看一些推薦/廣告方向的工業(yè)界人士出版的書籍,這一塊的知識(shí)考察往往會(huì)穿插在整個(gè)面試中,有的面試官會(huì)在最后當(dāng)成開放題進(jìn)行考察。 其次,基礎(chǔ)知識(shí)的復(fù)習(xí)也很容易會(huì)遺忘,面對(duì)這個(gè)問題,我一般會(huì)將高頻考點(diǎn)的知識(shí)寫在ipad中,然后每晚會(huì)去復(fù)習(xí)一遍,這樣一個(gè)月下來,基礎(chǔ)知識(shí)應(yīng)該就可以爛熟于心了,這一段的復(fù)習(xí)就可以告一段落了。
項(xiàng)目/競(jìng)賽一般會(huì)在基礎(chǔ)知識(shí)之后進(jìn)行考察,這些一定要提前準(zhǔn)備好,寫在簡(jiǎn)歷里的項(xiàng)目一定是要自己親自做過的,因?yàn)橐坏┟嬖嚬賳柕搅隧?xiàng)目中某一個(gè)部分的代碼是如何實(shí)現(xiàn)而你又回答不上來的話,在他心里對(duì)你的印象就會(huì)非常減分,并且會(huì)懷疑候選人的誠(chéng)信問題。所以,我的方法是將之前做過的項(xiàng)目重新再做一遍,包括代碼部分。這一塊看似會(huì)花費(fèi)大量時(shí)間,實(shí)則并沒有那么長(zhǎng)。具體來說,我會(huì)先將做過的項(xiàng)目重新梳理一遍,畫出整個(gè)項(xiàng)目的流程圖,然后再逐行復(fù)習(xí)自己的代碼。等代碼復(fù)習(xí)完之后,再刪掉重新寫一遍,這一步驟因人而異,取決于你的記憶能力。 競(jìng)賽方面,常用的競(jìng)賽模型如 GBDT、XGBoost、LightGBM、FFM、DeepFFM等 一定要了解。最后,如果你的論文或項(xiàng)目與面試官所做的方向非常的match,你通過這一面的概率也將會(huì)大很多。 4.3 coding能力?????????????? 代碼能力是計(jì)算機(jī)專業(yè)學(xué)生的基礎(chǔ)能力,求職技術(shù)方向的同學(xué),無論是測(cè)試、開發(fā)或算法,互聯(lián)網(wǎng)公司在這一塊的考察都是重中之重。 一般而言,大廠在每一輪的技術(shù)面中,至少會(huì)出一道編程題,多的會(huì)直接上三道編程題讓你做(我就遇到了...), 難度主要集中在easy和medium ,少數(shù)喪心病狂(褒義詞)的面試官會(huì)出hard題。而考察范圍已是圈內(nèi)公開的秘密,就在《劍指offer》和Leetcode上,因此刷題成為了大家求職路上必須要邁過的一道坎,這個(gè)坎沒有人可以幫到你,只有靠你自己。 我在碩士階段也沒有刻意的去刷過題,只有本科時(shí)刷過洛谷,下面是我Leetcode賬號(hào)上提交次數(shù)的統(tǒng)計(jì): 我是從8月初開始集中在Leetcode上刷題,一直刷到了10月份,《劍指offer》也是在Leetcode上刷的,平均每個(gè)月刷題數(shù)是300。可能很多人都覺得300道根本不可能完成,確實(shí),如果你按照Leecode官方的題號(hào)順序去刷根本不可能,但如果是按照題目類型(標(biāo)簽)去刷, 每天刷10道,一個(gè)月也就完成了300道 。 一開始可能會(huì)很慢,但基本上每個(gè)類型的題目當(dāng)你刷夠20道以后,都可以總結(jié)出該類題目的代碼模板,所以前期會(huì)慢一點(diǎn),越往后則會(huì)發(fā)現(xiàn)刷題速度越來越快,可以理解為先苦后甜。而對(duì)于刷題的方法,可以分為三輪進(jìn)行: a.第一輪:優(yōu)先效率。 當(dāng)一道題花了十五分鐘去思考也沒有思路時(shí),則果斷選擇直接看答案。 b.第二輪:培養(yǎng)思路。 你需要對(duì)以前做過的每一道題都要有一個(gè)大致的映像,并且知道解題的方法是什么。這一輪其實(shí)最難度過,因?yàn)槿藢?duì)事物的遺忘是有規(guī)律的,而我們需要想辦法客服這個(gè)規(guī)律。在這里推薦一下我的方法。我在刷完每一道題之后,會(huì)在ipad上注明題號(hào)以及題目名稱,然后將該題的解題思路寫下來,最后還會(huì)重寫一遍代碼。這樣,以天和周為單位不斷地復(fù)習(xí)之前的題目,就可以做到以后遇見它們時(shí)可以迅速反映出是用什么方法解決這道題的。 c.第三輪:完善思路。 當(dāng)我們順利度過了第二輪之后,第三輪則需要學(xué)習(xí)每道題目的多種解法,比如TopK問題可以用快排變形/堆/二叉查找樹/計(jì)數(shù)排序四種方法解決。在我的面試過程中,有些面試官會(huì)在你AC一道題后還會(huì)要求寫出最優(yōu)解,這往往決定你的面評(píng)是否能達(dá)到較高級(jí)別,也就是能否拿到sp以上級(jí)別的offer,并且一道題如果學(xué)會(huì)了多種解法,也會(huì)讓你加深對(duì)這道題的理解。因此,我建議大家要學(xué)會(huì)用多種解法解決一道題,并且要培養(yǎng)出能快速AC的能力。 對(duì)于時(shí)間緊迫的小伙伴來說,在達(dá)不到刷兩百道題又想拿到大廠offer的同學(xué),我們也可以通過走一些捷徑來減少自己無效時(shí)間的浪費(fèi),從而最大化提高自己的代碼能力。 具體來說,我們可以購(gòu)買一些大牛精講的算法課程,雖然市面上的算法課琳瑯滿目,但真正對(duì)找工作實(shí)用高效且講述通俗易懂的課程少之又少。在我七月份以前,我基本上白天除了忙于父母的工作以外,到了晚上都會(huì)花費(fèi)兩個(gè)小時(shí)的時(shí)間去看自己在網(wǎng)上購(gòu)買的算法視頻課程,目的是為了給自己打下數(shù)據(jù)結(jié)構(gòu)與算法的基礎(chǔ)。 一個(gè)好的算法視頻課相比于書籍最大的優(yōu)勢(shì)就是視頻傳授的知識(shí)點(diǎn)更加直觀, 我們可以當(dāng)作看電視劇一樣去看它,一方面可以降低自己對(duì)于學(xué)習(xí)的阻力,另一方面還可以高效的學(xué)習(xí)這些迫切的知識(shí)。對(duì)于看書感覺痛苦的同學(xué),就可以像我一樣選擇觀看視頻,那么至于選擇看免費(fèi)課程還是收費(fèi)課程,我的建議是選擇一個(gè)收費(fèi)但價(jià)格可以接受的算法課去學(xué)習(xí),原因之一是免費(fèi)的課程往往知識(shí)點(diǎn)講述非常冗余,且大家對(duì)于免費(fèi)的課程缺乏學(xué)習(xí)的動(dòng)力,這樣反而會(huì)耽誤找工作;另一個(gè)原因是學(xué)習(xí)成果往往需要人們付出才能收獲,有人選擇花費(fèi)金錢以最高的效率獲得,有人選擇花費(fèi)更多的時(shí)間去獲得,那在我看來,秋招階段最寶貴的還是時(shí)間,畢竟每個(gè)人這一輩子只有一次秋招的機(jī)會(huì),這等同于高考! 以下面經(jīng)均為各個(gè)公司的正式批,由于時(shí)間有點(diǎn)久遠(yuǎn),有些考點(diǎn)已經(jīng)不記得了。 1、介紹論文、項(xiàng)目,很詳細(xì)。包括每一個(gè)環(huán)節(jié)是怎么實(shí)現(xiàn)的,損失函數(shù)是如何設(shè)計(jì)的,模型是如何訓(xùn)練的等等。 2、代碼題:Leetcode 713:乘積小于k的子數(shù)組;Leetcode 297:二叉樹的序列化和反序列化。 3、GBDT、XGBoost、LigthGBM的區(qū)別與聯(lián)系。 4、送入LR前,如何處理數(shù)據(jù)(特征工程)。 1、介紹論文、項(xiàng)目,很詳細(xì)。
2、Transformer中的Scaled Dot-Product Attention為什么要縮放(兩點(diǎn))。
3、Transformer中的Position Embedding是怎么實(shí)現(xiàn)的?為什么?
4、bagging和boosting與偏差和方差的關(guān)系以及原因。
5、如何解決數(shù)據(jù)不平衡的問題。
6、假設(shè)檢驗(yàn)的兩類錯(cuò)誤。
7、MSE、MAE與貝葉斯估計(jì)的區(qū)別。
8、為什么快排比堆排快?
9、口述算法題:對(duì)一個(gè)商品的價(jià)格、數(shù)量、購(gòu)買人數(shù)進(jìn)行分次排序,不改變之前的排序結(jié)果。
1、介紹論文和項(xiàng)目,很詳細(xì)。 2、代碼題:面試題17.24:最大子矩陣;Leetcode 695:島嶼的最大面積。 4、開放題:關(guān)于雙塔模型的應(yīng)用。 1、介紹論文和項(xiàng)目,以及論文中的涉及到的baseline模型。 2、代碼題:面試題01.08:零矩陣,寫出兩種解法。 3、XGBoost 如果損失函數(shù)沒有二階導(dǎo),該怎么辦。 1、介紹論文和項(xiàng)目,非常詳細(xì)。 2、介紹實(shí)習(xí),說說實(shí)習(xí)印象中最深的點(diǎn)。 3、開放題:部門中的某個(gè)應(yīng)用場(chǎng)景你會(huì)怎么解決。 4、職業(yè)規(guī)劃,個(gè)人希望做的方向。 2、AUC是如何實(shí)現(xiàn)的,它對(duì)均勻正負(fù)樣本采樣是否敏感,并用代碼實(shí)現(xiàn)。 4、知識(shí)圖譜表示學(xué)習(xí)有哪些模型。 2、代碼題:Leetcode 382:鏈表隨機(jī)節(jié)點(diǎn),并口述蓄水池采樣算法的推導(dǎo)。 3、概率題:將一根木棍分成三段,求這三段構(gòu)成三角形的概率。 4、開放題:一個(gè)超級(jí)大文件,每一行有一個(gè) ip 地址,內(nèi)存有限,如何找出其中重復(fù)次數(shù)最多的 ip 地址。 2、論文后續(xù)可能提升的點(diǎn)以及想法探討。 3、說一說Graph Embedding和GNN的區(qū)別。 4、代碼題:Leetcode 23:合并K個(gè)升序鏈表。 2、介紹一下最能體現(xiàn)自己工程能力的項(xiàng)目。 4、強(qiáng)化學(xué)習(xí)在推薦中的應(yīng)用及探討。 最后,我想談一談自己對(duì)于面試的看法。無論是競(jìng)賽、論文還是大廠實(shí)習(xí),這些都是為了方便你拿到面試的資格,哪怕你三者都沒有,但只要公司愿意向你發(fā)起面試,你都應(yīng)該好好努力。 而最終是否能順利拿到offer以及offer的等級(jí), 主要還是取決于你的面評(píng) ,一個(gè)非常好的面評(píng)是幫助你拿下大廠sp以上offer至關(guān)重要的因素,因此切忌面試緊張,如果你緊張,可以心中默念 歐米豆腐 。