知乎高贊:本科生如何才能進入 BAT 等一流互聯網大廠?
- 2020 年 2 月 18 日
- 筆記

作者 | Eyelids
鏈接 | zhihu.com/question/26406260/answer/186461717
自我介紹一下,武漢大學國際軟體學院2017屆本科生,再過兩天畢業。
去年校招拿到了B家的Offer。T家研發校招是一輪跪。
A家似乎是因為斗膽投了演算法工程師,又缺乏相關背景,直接被篩了簡歷。除此以外主要還有亞馬遜、微軟跟今日頭條的offer。
因為覺得做的事情很有意思,再加上一直以來對頭條技術驅動的公司文化抱有好感,最後接了今日頭條的邀約,去個性化推薦組做推薦演算法。
直到今年三月份剛去實習的時候,leader稱讚我是去年頭條校招回饋最好的幾個候選人之一,才知道去年校招算是撞了大運。頭條的幾個核心部門招聘標準還是挺高的。
好了,不扯遠。接下來分幾點講講,從我個人的視角來看,校招最重要的素質都有哪些。
01
首先是項目經歷。在中國找工作,尤其是非微軟、Google等外企的情況下,這往往是重中之重。
當然,作為本科生,尤其是處於正在找實習階段的本科生,這點要求可以相對放緩。
在最理想的狀態下,你應該講出能夠讓面試官聽懂的、讓面試官覺得你牛逼且方向對口的項目。這三點按重要程度從高到低排序。
★你做的事情應該能夠讓面試官聽明白,這是最低也是最重要的一個要求。
項目low不要緊,哪怕是講課程設計,也聊勝於無。把話說清楚就行。畢竟哪怕項目不合心意,面試官還是可以轉而從你紮實的專業基礎或是靈活的解題思路上尋找亮點。
面試終究是發生在人與人之間的一種羈絆。問答與交流只是一種手段,對於求職者而言,終極目的還是為了調動面試官的情緒,建立對自己的正面印象。
能讓面試官對自己產生欽慕之心,自然是最高的追求。反過來講,面試很忌諱在兩人之間形成一種微妙的齟齬。
一個沒給人家講明白的項目,就像聊天群里除了你以外沒人get到點的冷笑話般尷尬。不但沒有意義,興許還會產生負面作用。
作為未來同事的候選人,面試官難免要因此質疑一下你的交流溝通能力能否Hold住可能的項目合作與交接。
說到這裡突然想起一個很多搞競賽的同學會遇到的尷尬面試題:總會有一些不知道acm競賽有幾個人組隊的,b面試官,在你做完自我介紹以後,冷不丁上讓你直接給講一個在acm里做過的最難的演算法題。
畢竟術業有專攻,面試官不懂不能強求,這不是他的過錯。
可有些比較實在的同學,這時候就會真的給上一個爆難的演算法題來維護競賽選手的尊嚴。大致講一遍解題流程,他不懂。
接著細講。
結果四十分鐘過去了,你會發現你們還在繞預處理數據時用到的一個小結論是怎麼來的。面試官看時間到了,就客客氣氣請你回去等消息,換下一位進門……
這樣的故事我聽多了,反正至今還不知道有誰在這種情況下最後面試通過的XD
畢竟生活在這世界上,誰不是一座孤島。沒有理解也就沒有愛。面試也是同理。
02
然後是,你需要面試官覺得你牛x。
如前面所說的,這種牛逼構築於被理解的基礎之上,是項目經歷的核心所在。
牛逼這個詞其實微秒,說複雜也複雜。
但說到底仍然是一種情緒、一種主觀的印象。舉個不恰當的、極端的例子:一個好項目,如果是放在一本學生身上,面試官自然會認為你優秀。
但如果是個三本出身的倒霉孩子做的,也許面試官可以留下更為深刻的印象。
你的項目最好在被面試官充分地展開、理解之後仍然被認為是複雜的。
這種複雜性可能涉及艱辛的公式推導、精巧的程式碼結構或是用上了炫酷而繁瑣的技術特性。這些都是相對客觀的指標。
然而互聯網嘛,技術棧劃分細、變化快。
老道的面試官並不特別關心你做過什麼,他會轉而透過你的這段項目經歷,去觀察、揣摩你的智力、好奇心以及執行力分別到達了怎樣的程度。
★這裡我的建議是,分配好精力。花大量時間,精心準備一個「牛逼」項目。
畢竟,複雜的世界裡,一個就夠了。
事實上你那幾十分鐘面試時間裡也就夠你們詳談一個項目。
人的錯覺有很多種,第一印象的效應尤為明顯。
又或是八二原理、馬太效應、路徑依賴……
作為一個有志於盅惑人心的面試者,你得把自己想像成是一個劍客,十步殺一人、光速出劍、一擊斃命。
只要心夠決,去把一個項目做好、做深、做到極致。做完以後再深入了解項目細節,包括上遊客戶需求、下游開源工具特性和原理、可行優化方案以及後續可能的開發方向。
這是你的使命,只能一次成功,不容許失敗。
舉個例子,記得15年的7月份那會有一篇爆款論文,關於如何利用神經網路訓練一個轉換藝術風格的遷移學習模型。
如果你作為一個兩個月後找演算法工作的大三本科生,那麼把論文細細讀了,公式全部會推,寫靠譜程式碼把項目做好。
在面試前再把相關演算法原理跟實踐中遇到的困難以及你攻堅克難的過程耐下性子理清楚、面試的時候講明白。
是不是顯得很有含金量、很能體現個人動手能力與技術好奇心、在一群連基本的k-means都寫不好的校招生中,陡然間鶴立雞群了?
★除了讓面試官理解你牛逼以外,方向對口也重要。
畢竟校招統一面試,如果沒有恰到好處的內推,往往是需要部門主動撈你簡歷約面試的。
又比如過了Google的面試,後續也還是需要做team match。
很多時候去哪不是你說了算,而是你的簡歷起決定性作用。另外方向對口對於面試本身的重要性更不必多說。就算是校招,相同水平下誰都更想找熟練工吧。
所以你得提前很久想清楚自己想幹什麼,提前做準備。
找工作這件事很多時候是蝴蝶效應。也許偶然幫老師做了個項目,然後主要靠這個項目找了個實習接著做相關方向,最後的正式校招就很可能這麼一直續下去。
最好從一開始就不要將就。
有道是,Fuck everything,but growth.
想清楚做什麼才是有用、有效率的。
比如本科畢業就打算工作的,如果真的想做機器學習演算法,那麼我認為極端情況下,寧願去有活力的小公司做演算法崗,也別去Google做前端實習。
其實一次實習的機會成本還是挺高昂的,而實習的title在最後的校招中也未必如你想像得那麼有用。
我個人曾因為在微軟實習的項目相對零散而興趣不相關,在去年校招的過程中甚至直接將這一段實習經歷刪掉,以避免與面試官在這一點上陷入尬聊的窘境。
然後是專業基礎知識。
正常情況下外企在這裡不會做太多要求。
而BAT三家都會考察基礎知識,且各有側重面,這個你們具體還是要看面經。
不同考察方向都有哪些常見知識點,你們隨便一搜都有。
最好能結合之前的專業課所學,在具體的面試知識點上深入下去,了解細節。
當然大學前幾年能把電腦組成原理、電腦網路以及作業系統等幾門專業課基礎先打牢了,會好很多。
我承認,本科的CS教育往往扯淡,但是我建議該上的課還是應該上一下的,哪怕自己跟著書本自學。不去上課,你的自制力恐怕沒有想像中那麼強。
這些基礎課程對以後的職業生涯會有潛移默化的影響。
畢竟,電腦上的設計思想,很多地方都是可以互相借鑒的,這些知識會成為你以後解決工作中遇到的棘手問題的靈感來源。
而且這部分知識都是成體系的,等工作了以後就沒有整塊時間去啃了。勸君惜取少年時。
★面試中所涉及的另一個重要部分是演算法題、程式碼題,以及一些智力題。
這一塊我比較有心得。面過不少公司,基本還沒有不會做的題,最多偶爾在思考過程中卡一下。除了有一次面試官讓我寫快排,我寫完以後改了一次還沒寫對。
面試時間有限,問到的題目都不會太難的。當然也看候選人背景,經歷以競賽為主的就會給難一些的——不會涉及太繁瑣的分析,往往只需要你靈機一動。
記得我曾臨場解決了「2n+1個數,n對一樣的,找不一樣的」,以及「3n + 1」和「3n+2」版本的素質三連。還有一次電話面試,因為一個智力題答得太快,面試官認為我是用電腦查的答案。
這裡還是有一些技巧的。
不太好用語言表述出來,就像籃球一樣,要在實踐中練習投籃的感覺。
所以多爭取面試機會很重要。我自認為心理素質算是不錯的,但是最開始經歷的幾次面試,都會因為緊張而產生智商滑坡的情況。
面試演算法題、思維題,也是一種測試團隊協作能力的方式。
面對演算法題,有經驗的人往往會建議你,不要急著給出最優解,先講基本方法,可以暴力一點,然後慢慢優化。這很有道理。
其實最好能按一定的節奏來一步步地展現你的思考過程,甚至遇到不太會聊的面試官你得自己學會去引導,掌控面試的節奏。
甚至有的時候,你給講一些你覺得很靠譜的思考路線,面試官也會主動提醒你,想歪了。
或是另一種情況,饒有興緻地陪著你按照新思路想下去,最後不論是否能解決問題,往往都會覺得你想法不錯,是個面試加分項。
實在沒有好思路的情況下,試探性地講些模糊的大體思路也比過久的沉默要好。
哪怕隨便瞎講點什麼,面試官興許會提點你一下,繼續觀察你接下來的表現。
用考場上的話來講,面試中要學會盡量拿到步驟分。
如果你以一個人冥思苦想的方式玩命懟一道難題而不得,中間過程一言不發,那麼好比是考試交白卷。
03
最後,在校招前,爭取做一份實習
如果你在武大國軟這種自由放浪的環境下,從大一開始出去實習,到校招前實習個四五次完全存在理論上的可能性。
實習次數多了,你也就可以循序漸進地換更好的公司,跟更牛逼的同事做更牛逼的項目。至於結識朋友、邂逅妹子、開闊視野什麼的更不在話下。
而對於大部分中規中矩度過前三年本科生涯,基本功還算紮實的同學來說,大三暑假的實習期將會是一個補充項目經歷的大好機會。
最好能爭取一個稍有難度的、相對獨立的項目好好做。這是你將來的幾個月衝刺校招的主要資本之一。
04
最後,作為一個畢業生,一個行將凋零的老兵,再多講幾句不切實際的大道理吧。
這些話很想講給多年前的我自己聽,但是不現實了。沉舟側畔千帆過,現在我把積澱後的思想贈予你們。
首先,快速迭代自己的方法論。
很多孩子在剛上大學的時候,因為太習慣於被父母老師安排的人生,往往只重視戰術,不懂得經營發展戰略眼光。
大局觀很重要。有的時候只是隻言片語,一點小小的資訊素,就有四兩撥千斤的效果。
人與人之間在判斷力上的差距其實很重要。在一些關鍵的決策點上,如果能稍微提高百分之一的準確率,乘上可能的潛在收益或是損失,都會是很大的數學期望值。
記得去年冬天參加叉姐的camp的時候,覃超過來給我們做過一次講座。
提問環節的時候我問他,在曾有FB面試機會的情況下,直接去CMU讀書,是否考慮過不妥。
他說,這是他人生最後悔的決定之一,如果早入職幾年,存在獲得數百萬美刀期權的可能性。
如果讓現在的我回到大學報到的時候,大概會出去做很多次實習、多認識很多朋友、去折騰很多奇怪的項目,甚至刷語言績點準備出國。
可是那時的我什麼也不懂,這種狀態持續了好幾年。現在回想起來,本科時代的大部分事情我都做錯了,做對的判斷只是少數。
基友→WenjieTan
在校的時候,曾經運營過一個「咖啡之約」的公益活動。學弟學妹們請已經身為成功人士的學長喝咖啡,討教學長學姐的人生經驗。我覺得就很不錯。
從個人角度出發,如何高效率地獲取資訊以及反芻,也是一個很有意思的課題。
舉個例子,你可以考慮挑選一定數量的靠譜微信公眾號來了解互聯網資訊,不要多,控制在每個公眾號的推送都能定期讀完的關注規模。
當然,其實互聯網圈的媒體人寫東西都有點虛浮,對不同的觀點你要有自己審慎的判斷。
上述的例子只是拋磚引玉。其實解決資訊不對稱,甚至是構築自己相對於常人的資訊壁壘,仍然有很多可行的方法有待探索。
年輕人可以多嘗試、多試錯。畢竟年輕沒有失敗,等級低就是復活快!
第二點是,不要慫。
這一點我深有感觸。尤其是針對學CS的孩子來說,很重要。
這個專業出身的同學,往往家裡不是很富裕,見識不夠廣,不夠自信。
甚至有些還會因為過於敏感多思,反而過於獨善其身,存在與人交流的障礙,又或是做事情瞻前顧後、缺乏決斷,聰明反被聰明誤。
我也見過很多人,當本可進取時,卻故作謙卑,因為不願承擔過大的心裡壓力,錯過了唾手可得的面試、出國、比賽機會。
我在讀大學以前,一度非常自閉,不愛與人說話。
這幾年下來改變了很多,雖然仍有輕微的社交恐懼症,但只是面對陌生人會有點難受,正常交談是沒有問題了。
事實上我心裡清楚,我是花了大力氣來打磨自己在這方面的性格缺陷的。
我常常分析,為什麼會對他人感到恐懼呢。
後來發現,因為我總是習慣性地在潛意識裡預設,他人、或是某個外部事物是完美的。
但經歷了很多之後又發現,沒有什麼是完美的,均值回歸是普遍存在的現象。
事物的諸多美好品質之間並不存在絕對的因果關係,往往只是弱相關。
高大上的互聯網公司、遺世獨立的牛人、狂拽酷炫的技術,只是世人所見的一個片面。哪怕是那天上的月亮,也有圓缺,存在暗面。
本該是不卑不亢的平等交流,卻因為過分謹慎而表現得小心翼翼、唯唯諾諾。我也曾因此錯過了愛情。
最後,有自己的追求。
這點見仁見智,不強求。像大多數人一樣,我也總是在思考,人生的意義是什麼。
成長的過程中,我發現身邊的大環境是,總是會預設一個最優路徑。
比如,中學時代大家的注意力都在高考上,覺得上了好大學就可以萬事大吉。
搞競賽的同學容易認為打好ACM就可以獲得一切。
CS專業的同學整日想法設法地想要進BAT、Google。投資人對共享單車、共享充電寶這些項目趨之若鶩、蜂擁而上。
然而,名校是終點嗎?ACM World Final是終點嗎?Google優雅舒適的工作環境里和身為Google員工的逼格是終點嗎?
無論是成績突出的高中學霸,還是表現優異的大學生,在獲得了滿意的結果,進入人生的下一個階段以後,還是會有很多感到迷茫。
像艘駛入無人深空的太空飛船那樣迷失了方向。
或許從一開始我們就錯了,不該過分執迷於一個成就、一個被預設為完美,得到之後卻終究歸於平淡的的title。
叔本華說,人生就是在痛苦和無聊這二者之間像鐘擺一樣擺來擺去:當你需要為生存而勞作時,你是痛苦的;當你的基本需求滿足之後,你會感到無聊。
我想,人生本來沒有意義,痛苦歡快不過是虛幻。
而創造,是生而為人的唯一救贖。
Stay hungry, stay foolish.