對(duì)學(xué)生朋友的一點(diǎn)建議
發(fā)表者:Google(谷歌)中國(guó)工程研究院 工程師 方坤
自去年春天加入谷歌,我曾多次隨公司校園招聘團(tuán)隊(duì)一起走訪各地院校,幫助公司發(fā)掘人才
。利用這樣的出差機(jī)會(huì)到處走走看看,飽覽祖國(guó)大好河山,是我一點(diǎn)小小的私心。但更具挑
戰(zhàn)性、更激動(dòng)人心的,還是和我未來(lái)的同事們過(guò)招,不打不相識(shí)嘛。一想到馬上就要和這樣
優(yōu)秀的人才一起
工作,我就興奮不已,真恨不得現(xiàn)在就買一張單程機(jī)票把他/她拽回北京。
然而,在面試過(guò)程中,我也相當(dāng)惋惜地看到,由于種種主客觀原因的限制,很多青春韶華的
學(xué)子未能充分發(fā)揮出他們應(yīng)有的潛力。這里我不講成績(jī),只把我遇到過(guò)的一些普遍的問(wèn)題歸
納一下,希望對(duì)即將踏入社會(huì)的學(xué)生朋友們能有些許幫助。
實(shí)戰(zhàn)!實(shí)戰(zhàn)!
紙上得來(lái)終覺(jué)淺,絕知此事要躬行。對(duì)于一個(gè)未來(lái)的軟件工程師來(lái)說(shuō),實(shí)際編程經(jīng)驗(yàn)是相當(dāng)
重要的。我們會(huì)要求應(yīng)聘者在緊湊的時(shí)間內(nèi)編寫(xiě)大量的代碼,從中考察應(yīng)聘者的分析能力,
編碼速度,代碼可讀性,對(duì)所用編程語(yǔ)言的掌握程度,對(duì)邊界條件與異常狀況的處理,數(shù)據(jù)
結(jié)構(gòu)與函數(shù)接口
的定義,程序運(yùn)行的效率和應(yīng)聘者查錯(cuò)糾錯(cuò)的能力等等。一口氣列出這么多要求,聽(tīng)上去似
乎過(guò)于苛刻,其實(shí)只要積累了足夠的實(shí)戰(zhàn)經(jīng)驗(yàn),每一個(gè)應(yīng)聘者都完全可以滿足這些最低限度
的要求。
我記得開(kāi)復(fù)對(duì)于青年學(xué)子們有一個(gè)建議,大學(xué)四年,至少要編寫(xiě) 10 萬(wàn)行代碼。不是每一個(gè)
人都期望進(jìn)入谷歌這樣的頂級(jí)技術(shù)公司,但即使對(duì)開(kāi)復(fù)的建議打個(gè)三折,也還有 3
萬(wàn)行呢,不努力,能行嘛。前來(lái)應(yīng)聘的學(xué)生們?cè)诰帉?xiě)代碼時(shí)暴露出這樣那樣的問(wèn)題,大都可
以歸結(jié)到同一個(gè)原因:鍛煉太少。比如"for (int i = 0; i < strlen(s);
++i)",沒(méi)有實(shí)戰(zhàn)經(jīng)驗(yàn)的人,怎么可能意識(shí)到暗藏其間的效率陷阱。再比如內(nèi)存泄漏,就和
初戀一樣,沒(méi)有親身經(jīng)歷過(guò)的人,不會(huì)有刻骨銘心的感受,而一旦經(jīng)歷,終身難忘,根本用
不著你有多聰明。遺憾的是,我看到許多相當(dāng)聰穎的學(xué)生寫(xiě)出來(lái)的代碼只能用慘不忍睹來(lái)形
容,真讓我懷疑
這是不是就是他們的第一次。大家不要怪谷歌要求高,恕我直言,如果不能持之以恒,下點(diǎn)
兒苦功夫,不光谷歌一家,其它公司恐怕也是進(jìn)不去的。
北京、上海等地的學(xué)生,往往有更多實(shí)習(xí)、兼職機(jī)會(huì),接受鍛煉之余,還能攢下一筆小錢作
零用之資。其它一些地區(qū)的學(xué)生也許就沒(méi)有這么幸運(yùn),這就尤其需要積極主動(dòng),尋找機(jī)會(huì),
創(chuàng)造機(jī)會(huì),把握機(jī)會(huì)。世界正在變平,互聯(lián)網(wǎng)的發(fā)展改變著地球的面貌,讓不發(fā)達(dá)地區(qū)的學(xué)
生也能相對(duì)容易
地接觸到發(fā)達(dá)地區(qū)的資源。前不久我在西安遇到一個(gè)學(xué)生,他半年來(lái)一直堅(jiān)持在北京大學(xué)的
ACM 網(wǎng)站上參賽、做題,我看他寫(xiě)出來(lái)的程序就確實(shí)比他大多數(shù)同學(xué)都要好一些。我相信
,只要他能夠持之以恒,還會(huì)取得更大的進(jìn)步。我聽(tīng)說(shuō)浙江大學(xué)的 ACM 網(wǎng)站、TopCoder
網(wǎng)站也都是不錯(cuò)的教育資源,感興趣的同學(xué)不妨一看;雖說(shuō)做競(jìng)賽題距離真正的軟件開(kāi)發(fā)還
有著顯著差別,但也不失為一個(gè)不錯(cuò)的出發(fā)點(diǎn)。
在積累一定編碼量的基礎(chǔ)上,我建議大家總結(jié)經(jīng)驗(yàn)教訓(xùn),不斷提高自我。如果幾萬(wàn)行代碼寫(xiě)
下來(lái),學(xué) C++ 的不知道 const 怎么用,學(xué) python 的沒(méi)聽(tīng)說(shuō)過(guò) GIL,我看也沒(méi)什么意思。
到了這個(gè)階段,我推薦大家讀一些經(jīng)典的進(jìn)階書(shū)籍,例如《Effective C++》、《
Effective
Java》等,即使地處偏遠(yuǎn)地區(qū),也可通過(guò)網(wǎng)上書(shū)店買到。(我建議編碼量太少的同學(xué)就先不
要讀了,會(huì)走火入魔的。我見(jiàn)過(guò)有學(xué)生連引用和指針都沒(méi)搞清楚,就在那里重載操作符的。
)交流也很重要,如果能夠與網(wǎng)上網(wǎng)下志同道合的朋友互相幫助,共同進(jìn)步,當(dāng)收事半功倍
之效。在這一方
面,各校的 Google Camp 也許能夠起到一定作用。
"我會(huì)寫(xiě)代碼呀,為什么谷歌不要我?"
一家外包公司或許會(huì)滿足于雇傭僅能從事簡(jiǎn)單的、機(jī)械性的重復(fù)勞動(dòng)的軟件藍(lán)領(lǐng),而讓谷歌
苦苦尋覓的,乃是最優(yōu)秀的軟件工程師兼計(jì)算機(jī)科學(xué)家——是的,在谷歌,研究與開(kāi)發(fā)融為
一體,軟件工程師與計(jì)算機(jī)科學(xué)家當(dāng)然也合二為一。計(jì)算機(jī)這幾年算是比較熱的,能夠得償
所愿擠進(jìn)計(jì)算機(jī)
科學(xué)相關(guān)專業(yè)的學(xué)生都是全中國(guó)頂尖的人才,如果大學(xué)四年荒蕪學(xué)業(yè),未能取到真經(jīng),浪費(fèi)
了這一來(lái)之不易的學(xué)習(xí)機(jī)會(huì),是不是太可惜了呢。
遍歷一個(gè)數(shù)組或鏈表的時(shí)間復(fù)雜度是多少?對(duì)于這樣一個(gè)不是問(wèn)題的問(wèn)題,竟然各地都有相
當(dāng)數(shù)量的學(xué)生回答說(shuō)是 O(logN)!有一次我實(shí)在忍不住了,提示應(yīng)聘的學(xué)生說(shuō):"你是如何
理解'遍歷'一詞的涵義呢?"他立刻做恍然大悟狀,回答說(shuō):"哦,對(duì),應(yīng)該是
O(NlogN)"。我當(dāng)時(shí)失望得一句話都說(shuō)不出來(lái)。類似的例子還有很多。坊間一直傳說(shuō)谷歌的
面試題有多難,其實(shí)大多數(shù)學(xué)生都卡在最基礎(chǔ)的問(wèn)題上。少數(shù)人費(fèi)盡氣力要收集谷歌曾經(jīng)用
過(guò)的面試題,其實(shí)我們大多數(shù)題目都來(lái)自或改編自經(jīng)典計(jì)算機(jī)科學(xué)教材的習(xí)題。
順便提一句,上面提到的那個(gè)答錯(cuò)的學(xué)生乃是一流大學(xué)中成績(jī)名列前茅的優(yōu)秀生,門門功課
(包括所有計(jì)算機(jī)專業(yè)課)均在 90 分以上。反差何其大也!
誠(chéng)信為本
我曾服務(wù)于多家公司,注意到不同的公司之間,乃至同一公司內(nèi)不同的面試官之間,對(duì)應(yīng)聘
者的要求都會(huì)有所差別,或看重潛質(zhì),或偏好經(jīng)驗(yàn),或強(qiáng)調(diào)態(tài)度。但有一點(diǎn)大家是共同的:
如果應(yīng)聘者在誠(chéng)信上有疑問(wèn),誰(shuí)也不敢要。
總體而言,現(xiàn)在的學(xué)生其誠(chéng)信還是相當(dāng)不錯(cuò)的,大大超出了我們的期望。然而,不和諧音也
還是有的。我們?cè)谀持咝_M(jìn)行筆試,就發(fā)現(xiàn)有學(xué)生嚴(yán)重作弊,他們毀掉自己的機(jī)會(huì)不
說(shuō),整個(gè)學(xué)校的名聲也受到拖累。面試中偶爾也能遇到誠(chéng)信堪憂的學(xué)生。有一次我出了一道
題,前來(lái)應(yīng)聘的
學(xué)生明明以前見(jiàn)過(guò)這道題,卻告訴我說(shuō)沒(méi)見(jiàn)過(guò),自以為得計(jì),可他那一縱即逝的狡黠一笑哪
里逃得過(guò)我洞若觀火的銳利眼神。大哥,你又不是專業(yè)演員,為什么要玩這樣的花招?我每
年面試的求職者在百人以上,搗鬼是過(guò)不了我這一關(guān)的。兩點(diǎn)之間直線最短,說(shuō)真話最簡(jiǎn)單
。
做最好的自己
不是每一個(gè)人都會(huì)加入某一家具體的公司,但每一個(gè)人都可以成功,成為最好的自己。我這
里所談,既不系統(tǒng)亦欠簡(jiǎn)練,但確實(shí)是我在幾次校園招聘之旅中發(fā)現(xiàn)的一些具有共性的問(wèn)題
,故不避好為人師之譏,羅列于此。我當(dāng)然知道,本文的首要目標(biāo)讀者——大一新生是不聽(tīng)
勸的,他們更愿
意把所有的錯(cuò)誤親自重犯一遍。話雖如此,只要能夠?qū)σ粋€(gè)學(xué)生有所啟迪,我的時(shí)間就不算
白費(fèi)。
轉(zhuǎn)載請(qǐng)注明出自應(yīng)屆生求職招聘論壇 http://bbs.yingjiesheng.com/,本貼地址:http://bbs.yingjiesheng.com/thread-13898-1-1.html