2012毕业生
1、簡(jiǎn)介
畢業(yè)答辯搞定,總算可以閑一段時(shí)間,把這段求職經(jīng)歷寫(xiě)出來(lái),也作為之前三個(gè)半月的求職的回顧。
首先說(shuō)說(shuō)我拿到的offer情況:
微軟,3面->終面,搞定
百度,3面->終面,口頭offer
搜狗,2面,悲劇
騰訊,1面,悲劇
布丁移動(dòng),3面,搞定
涂鴉游戲,3面,搞定
友盟,3面->CEO面,搞定
雅虎,4面->終面,搞定
微策略,2面,悲劇
人民搜索,3面->終面,搞定
人人,2面+終面+Special面,搞定
Google,7面,搞定
求職經(jīng)歷分為定位、準(zhǔn)備、簡(jiǎn)歷、筆試和面試這五個(gè)部分,大家挑感興趣的看就成。
我的求職經(jīng)歷適用但不限于碼農(nóng),不適用與企事業(yè)單位(據(jù)說(shuō)是完全不同的考察標(biāo)準(zhǔn)和流程)。廢話(huà)比較多,大家耐心忍受,有什么問(wèn)題可以跟帖提問(wèn)。
2、定位
教育經(jīng)歷:本科在大連某工科院校,由于GPA比較慘烈+掛科,所以沒(méi)保成研,畢業(yè)后修了一年英語(yǔ)雙學(xué)位,然后到帝都計(jì)算機(jī)職業(yè)教育學(xué)院接受再教育。
技術(shù)能力:屬于半碼農(nóng)半產(chǎn)品的類(lèi)型,代碼編的過(guò)去(搞過(guò)compiler),也有一些拿的出手的產(chǎn)品(幾十w的用戶(hù)量),一句話(huà)描述:幾十w代碼+幾十w用戶(hù)的Coder。
專(zhuān)業(yè)能力:非ACM出身,算法拙計(jì)但基礎(chǔ)扎實(shí)。由于單身所以看了N多書(shū)(CS+心理+經(jīng)管+歷史),扯淡能力強(qiáng)大,碰到非專(zhuān)業(yè)的各種秒殺,碰到專(zhuān)業(yè)各種拙計(jì)。
實(shí)習(xí)經(jīng)歷:大四在一家ds公司實(shí)習(xí)過(guò)一年,攢了不少代碼量;后來(lái)在MS斷斷續(xù)續(xù)的待了一年多,雖說(shuō)是打醬油,但在眾大神的光環(huán)籠罩下,水平至少提了三個(gè)檔。
目標(biāo)公司:由于百度給我的印象實(shí)在很差,而MS給我的印象又實(shí)在很好,所有就有了下面的排名:
外企(Google、MS、Yahoo等)>國(guó)內(nèi)互聯(lián)網(wǎng)(阿里、騰訊、百度、網(wǎng)易等)>企事業(yè)單位(基本不考慮)
3、準(zhǔn)備
經(jīng)常在論壇里看到各種求職抱怨貼,其實(shí)在抱怨前應(yīng)該仔細(xì)想一想,為了求職,你付出了多少?看到人家找工作找的順找的爽,有沒(méi)有想過(guò)人家背地里付出了多少努力和心血?別拿官二代和富二代啥的說(shuō)事,真ds只會(huì)拿一堆自身以外的理由掩飾自己的懶惰。
不要認(rèn)為求職就是發(fā)個(gè)簡(jiǎn)歷等面試通知,對(duì)于大神來(lái)說(shuō)不用發(fā)簡(jiǎn)歷牛逼公司也會(huì)圍著你轉(zhuǎn),對(duì)于ds來(lái)說(shuō)就是預(yù)則立不預(yù)則廢,中國(guó)缺什么就是不缺人,不下功夫準(zhǔn)備很有可能連個(gè)P都沒(méi)有。
其實(shí)很多屌絲就是怕預(yù)也廢所以干脆不準(zhǔn)備直接上,這樣搞不定的話(huà),就有借口說(shuō)不是自己蠢而是自己沒(méi)準(zhǔn)備,可以捍衛(wèi)自己的智商高地不被侵犯。身邊有不少這樣的實(shí)例,典型的死要面子活受罪,活該你找不到工作。
我的微軟mentor曾提到過(guò),我的實(shí)習(xí)面試表現(xiàn)一般,但后來(lái)表現(xiàn)出的動(dòng)手能力大大超出之前面試的預(yù)估,而有些面試表現(xiàn)很出色,問(wèn)題對(duì)答如流的選手,入職之后反而不是很理想,至少?zèng)]有達(dá)到面試時(shí)發(fā)揮出的水準(zhǔn)。
這說(shuō)明一個(gè)問(wèn)題,就是筆試面試,準(zhǔn)備和不準(zhǔn)備會(huì)差異很大。如果你的簡(jiǎn)歷不是那么NB,那就只能靠筆試和面試的加分撐場(chǎng)面。身邊經(jīng)常有同學(xué)納悶這樣代碼都編不利索的傻屌都能進(jìn)MS為什么我不能進(jìn),答案往往很簡(jiǎn)單:人家比你多準(zhǔn)備了一個(gè)月。平時(shí)電腦上寫(xiě)程序可能很利索,筆試面試時(shí)在紙上寫(xiě)寫(xiě)試試你就知道什么叫拙計(jì)。
IT公司的筆試和面試的題量都不大(相對(duì)于企事業(yè)單位和銀行動(dòng)輒上百道選擇題的題量,算是很少),一般十幾道選擇題,三四道大題就算題量很大。但計(jì)算機(jī)的東西實(shí)在又是太多,程序設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)、算法設(shè)計(jì)、操作系統(tǒng)、體系結(jié)構(gòu)、編譯原理、數(shù)據(jù)庫(kù)、軟件工程等分支,編譯的話(huà)太難(一千個(gè)碼農(nóng)里也沒(méi)幾個(gè)人能在紙上寫(xiě)一個(gè)最基礎(chǔ)的遞歸下降LLParser),軟件工程、體系結(jié)構(gòu)、數(shù)據(jù)庫(kù)這些太水(不是說(shuō)這些分支沒(méi)用,而是它們很難考察,尤其對(duì)應(yīng)屆生來(lái)說(shuō)這些都是些文字游戲,比如說(shuō)面向?qū)ο蟮娜匚逶瓌t,有個(gè)鳥(niǎo)用),這么一排除,再把數(shù)據(jù)結(jié)構(gòu)和算法設(shè)計(jì)一合并,就剩下程序設(shè)計(jì)、算法和操作系統(tǒng)。沒(méi)錯(cuò),這三項(xiàng)搞定,國(guó)內(nèi)外IT公司通殺。
因此我的筆試和面試準(zhǔn)備很簡(jiǎn)單,就是重溫+突擊程序設(shè)計(jì)、算法和操作系統(tǒng)。下面是我的筆試+面試準(zhǔn)備內(nèi)容:
程序設(shè)計(jì):
1、把基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)的C語(yǔ)言實(shí)現(xiàn)在紙上寫(xiě)三遍以上,用我能想到的最精簡(jiǎn)最優(yōu)化的方法
2、閱讀CARM和TCPL,確保不會(huì)遺漏C語(yǔ)言的每個(gè)細(xì)節(jié)
3、重溫之前自己做過(guò)的靠譜項(xiàng)目,并總結(jié)里面的關(guān)鍵難題和解決思路
4、重讀Writing Solid Code、Elements of Programming、Practice of programming
5、閱讀Science of Programming,做到可以證明自己的程序的正確性(前條件+后條件+不變式)
算法:
1、重讀Algorithm Design Manual,重點(diǎn)閱讀Dynamic Programming和Backtraverse
2、重讀Programming Pearls和More Programming Pearls,并完成所有課后題
3、獨(dú)立解決編程之美里面的題目(國(guó)內(nèi)不少企業(yè)選題用的這本書(shū))
4、完成Careercup里Amazon、Google和Microsoft這三個(gè)分類(lèi)下面的前20頁(yè)面試題
5、完成TopCoder的數(shù)十道D1L2~D2L1難度區(qū)間的算法題目
操作系統(tǒng):
1、重讀Modern Operating System,重溫OS的核心概念
2、重讀Computer Systems a Programmer's Perspective的關(guān)鍵章節(jié),回顧里面的關(guān)鍵點(diǎn)
從七月底開(kāi)始一直到十一月,花了接近四個(gè)月,很多東西都是一邊面試一邊準(zhǔn)備:面試->發(fā)現(xiàn)盲點(diǎn)->修復(fù)盲點(diǎn)。
此外列出一些面試筆試題的資源,此外感謝基友@codewarrior之前的推薦:
1、Crack over the code interview
很靠譜的筆試面試指導(dǎo)手冊(cè)
2、CareerCup
集齊了大量的真實(shí)筆試面試題,去外企的一定得看
3、TopCoder
如果不是ACM,練這個(gè)就夠,其實(shí)面試也不會(huì)問(wèn)太難的算法,哪怕是google
4、編程之美
盡管題目有些過(guò)時(shí),但依然很實(shí)用,三星題目適合一個(gè)人仔細(xì)想
此外也說(shuō)下一些不靠譜的資源:
1、IT公司面試100題
這個(gè)恐怕是國(guó)內(nèi)傳的最多的IT面試題
題目本身還可以,但那個(gè)出題人本身代碼功底一般,給出的答案包含大量錯(cuò)誤和缺陷,導(dǎo)致參考價(jià)值驟降
2、程序員面試寶典
翔一樣的書(shū),各種錯(cuò)誤概念的堆積,如果一個(gè)錯(cuò)誤給我一塊錢(qián),我能從這本書(shū)搞成萬(wàn)元戶(hù)。如果去正規(guī)公司拿這本書(shū)準(zhǔn)備,包你被黑出翔。
4、簡(jiǎn)歷
在MS時(shí),老大曾讓我?guī)兔φ袔讉€(gè)靠譜的實(shí)習(xí)生,因此我收到了幾百封簡(jiǎn)歷,過(guò)了一把HR的癮。這里說(shuō)說(shuō)自己在看簡(jiǎn)歷時(shí)發(fā)現(xiàn)的幾點(diǎn):
1、可讀性。不要用Word或壓縮包,用PDF。此外在郵件里面用純文本加上自己的簡(jiǎn)介,簡(jiǎn)化對(duì)方閱讀的操作。要記住HR一天看的簡(jiǎn)歷海的去了,壓縮包是HR最痛恨的格式,因?yàn)榻鈮毫司筒恢廊幽娜チ?#xff0c;有時(shí)干脆就不看;Word有版本問(wèn)題,10的docx到了07往往被黑出翔。還有就是對(duì)方有可能不在PC上讀郵件,因此純文本的簡(jiǎn)介非常有必要。
2、群發(fā)。不要給人群發(fā)的嫌疑,看清楚目標(biāo)職位和目標(biāo)公司,我發(fā)的工程院招聘貼,收到的幾百封簡(jiǎn)歷里面有十余封是投到微軟亞洲研究院,有幾個(gè)干脆寫(xiě)“敬愛(ài)的某領(lǐng)導(dǎo)”,尼瑪這不找抽么。
3,設(shè)計(jì)。特別提一下設(shè)計(jì),很多電工的簡(jiǎn)歷就是翔,丑的一逼,對(duì)齊沒(méi)有,字體拙計(jì),要點(diǎn)不明。再放到幾百份幾千份簡(jiǎn)歷里面,活該你被忽略。建議所有電工投簡(jiǎn)歷前閱讀《給大家看的設(shè)計(jì)書(shū)》,至少搞明白里面的C.R.A.P四原則。不要小看設(shè)計(jì)的威力,在簡(jiǎn)歷內(nèi)容接近的情況下,良好的設(shè)計(jì)會(huì)大大加分。
4、篇幅。控制在一頁(yè)以?xún)?nèi)。倒不是說(shuō)不能寫(xiě)兩頁(yè),而是HR沒(méi)時(shí)間看兩頁(yè)這么多。而且就我看過(guò)的幾百封簡(jiǎn)歷而言,凡是超過(guò)兩頁(yè)的沒(méi)一個(gè)靠譜,有這么高的先驗(yàn)概率,HR才沒(méi)工夫一個(gè)個(gè)篩,反正中國(guó)有的是人。
5、重點(diǎn)。一定要有重點(diǎn),做到讓HR通過(guò)簡(jiǎn)歷在20秒內(nèi)確定你靠不靠譜。可以用加黑字體進(jìn)行視覺(jué)引導(dǎo)。
6、措辭。甭搞“渴望得到這份工作”、“期待在xxx的工作機(jī)會(huì)”這樣的句式,除了顯得你低端,其它毛用沒(méi)有。
7、別字。千萬(wàn)不要出現(xiàn)錯(cuò)別字,別字簡(jiǎn)歷一般直接干掉。一頁(yè)的簡(jiǎn)歷都能出問(wèn)題,一般不會(huì)靠譜。
因?yàn)榭戳撕芏嗖豢孔V的簡(jiǎn)歷,我對(duì)簡(jiǎn)歷重要性的理解要比其他人深刻很多。首先花了一周把原來(lái)兩頁(yè)半的紙縮到一頁(yè)內(nèi),然后找UI朋友幫忙調(diào)整了版式、縮進(jìn)和字體,并找UX朋友幫忙進(jìn)行重點(diǎn)調(diào)整以進(jìn)行視覺(jué)引導(dǎo),然后在PC和手機(jī)上進(jìn)行了簡(jiǎn)歷可讀性測(cè)試。從而獲得了100%的簡(jiǎn)歷通過(guò)率。
此外,優(yōu)先走內(nèi)部推薦,這樣最有效率,所以結(jié)識(shí)各個(gè)公司的朋友是非常有必要的。
海投簡(jiǎn)歷既沒(méi)必要也沒(méi)效率,有這個(gè)時(shí)間不如改改簡(jiǎn)歷來(lái)的實(shí)在。
相關(guān)書(shū)目:
1、給大家看的設(shè)計(jì)書(shū),讓你的簡(jiǎn)歷看起來(lái)不像一坨翔。
2、Google Resume,如何寫(xiě)出靠譜的簡(jiǎn)歷,進(jìn)行靠譜的求職。
5、筆試
如之前所說(shuō),IT公司的筆試相對(duì)單純(程序設(shè)計(jì)、算法和操作系統(tǒng)),而且范圍較窄,有不少題目被出了一遍又一遍。因此市面上存在大量面試/筆試寶典之類(lèi)的書(shū)籍和題集。
準(zhǔn)備國(guó)內(nèi)的小公司,這些面試/筆試題集還靠的住,因?yàn)樾」就粫?huì)在招人環(huán)節(jié)上下太大的成本,因此他們的試卷一般就是東拼西湊的網(wǎng)上題目;對(duì)于大型公司來(lái)說(shuō),這些題庫(kù)或是寶典就顯的不夠用了,尤其是外企。
所以不要把希望放在運(yùn)氣或是臨陣磨槍上。就我自己而言,筆試準(zhǔn)備了一個(gè)多月,盡管這個(gè)時(shí)間并不算多,但由于自己平時(shí)一直在閱讀CS的基礎(chǔ)書(shū)籍,并做了大量的紙上代碼練習(xí),因此筆試通過(guò)率也達(dá)到了100%(實(shí)際上是由于我筆試的公司題目都略簡(jiǎn)單,據(jù)說(shuō)EMC和網(wǎng)易游戲的筆試難度很高,但當(dāng)時(shí)由于時(shí)間沖突沒(méi)有去成,因此搞出了這個(gè)數(shù)據(jù))。
多說(shuō)無(wú)益,這里拿搜狗、騰訊、微軟和雅虎這四家公司的筆試試卷為例,簡(jiǎn)單的介紹下IT公司的筆試題型和題目組成。
搜狗:
題型由十余道不定項(xiàng)選擇題和三道算法題目組成,要求在兩個(gè)小時(shí)完成。選擇題難度一般,比較雜,也有一些原題;三道算法題目有點(diǎn)意思,至少網(wǎng)上是很難找到,需要一定的算法設(shè)計(jì)能力(主要是動(dòng)態(tài)規(guī)劃)才能給出解決。
搜狗的筆試試題按職位分的很細(xì),從C++開(kāi)發(fā)工程師到iOS開(kāi)發(fā)工程師再到數(shù)據(jù)挖掘研究工程師十余個(gè)職位,每個(gè)職位的題目都有一套獨(dú)立的試卷。但是研發(fā)的算法題是一樣的,最后一道算法題很有意思,我花了一個(gè)多小時(shí)才想到利用組合數(shù)學(xué)里面的知識(shí)(多元一次方程非負(fù)解)給出設(shè)計(jì)方案,后來(lái)和面試官聊這道題時(shí)他們也挺吃驚,因?yàn)槲业姆桨副人麄兊拇鸢高€要優(yōu)化。
騰訊:
題型由二十道單項(xiàng)選擇題、六道填空題和兩道算法題組成,其中兩道算法題是二選一。難度比較簡(jiǎn)單,題型很廣,既有程序設(shè)計(jì)語(yǔ)言的細(xì)節(jié)也有概率統(tǒng)計(jì)的基本知識(shí),甚至還有C語(yǔ)言的創(chuàng)始人是誰(shuí)這樣的搞笑問(wèn)題,從選擇題上能看得出騰訊在筆試題上還是下了點(diǎn)功夫的,但算法題就太簡(jiǎn)單了點(diǎn),至少我認(rèn)為考不出什么區(qū)分度。
騰訊的筆試試題也是按職位劃分的,但就沒(méi)有搜狗那么細(xì)了,研發(fā)類(lèi)筆試題目是統(tǒng)一的,要求一個(gè)半小時(shí)完成,印象里自己四十分鐘就搞定收工,很多人都提前交了試卷,因?yàn)榇_實(shí)很簡(jiǎn)單。
微軟:
題型只有二十道不定項(xiàng)選擇題,難度較難,要求在一小時(shí)四十分鐘完成。難度較難,覆蓋面非常廣,從設(shè)計(jì)模式,算法分析,代碼閱讀到C++語(yǔ)言特性,甚至連冷門(mén)的函數(shù)式程序設(shè)計(jì)語(yǔ)言都有涉及。
微軟的筆試題目BT之處在于其獨(dú)特的積分機(jī)制:答對(duì)了加分,不答無(wú)分,答錯(cuò)了倒扣。這就使得很多ds答完試卷感覺(jué)自我良好但實(shí)際已經(jīng)被倒扣出翔。以最后一道題為例,答對(duì)了加7分,答錯(cuò)倒扣13分,相當(dāng)于一下子損失20分。所以微軟的筆試題會(huì)做就得做對(duì),不會(huì)做就別蒙,要不更慘。
此外,微軟的筆試題是英文的,加上時(shí)間比較短,有些人題都讀不完,有些ds連functional language是什么都不知道,自然敗的很慘。
雅虎:
題型由十余道單項(xiàng)選擇題,一道設(shè)計(jì)題目和六道算法題目組成,其中六道算法題目是六選二,要求在兩個(gè)小時(shí)完成。難度尚可,主要考察編程能力和算法設(shè)計(jì)能力。由于時(shí)間充裕,盡管是六選二,為了炫技,我直接答了里面的五道題目。然而面試時(shí)發(fā)現(xiàn)面試官判卷子時(shí)并沒(méi)有把多答的題目考慮在內(nèi),囧tz。
相對(duì)于微軟,雅虎的題目覆蓋面就窄了許多,沒(méi)有一道題目跳出程序設(shè)計(jì)、算法和操作系統(tǒng)這個(gè)圈的,只要勤加準(zhǔn)備,很容易通過(guò)。
雅虎的筆試題也是英文,因此英語(yǔ)作答較為合適,此外,由于算法題目簡(jiǎn)單,給出optimal solution是必須的,比如說(shuō)在logN的時(shí)間內(nèi)算fibonacci number是必備的知識(shí),能寫(xiě)binary search就不要寫(xiě)sequential search等等。
從筆試題可以明顯看出,國(guó)外的大型IT公司(比如雅虎,微軟和谷歌等)并不在意你現(xiàn)在的skill set,而更看重你的potential,因此題目大多很基礎(chǔ),并具備相當(dāng)?shù)纳疃?#xff0c;以確保你對(duì)CS有深刻的理解并能夠走的很遠(yuǎn);而國(guó)內(nèi)的IT公司(比如百度、搜狗和人人等)更看重你現(xiàn)在的skill set,因此會(huì)出現(xiàn)不少語(yǔ)言特性,OS操作之類(lèi)的具體題目,以確保你能夠以盡快的速度上手干活,至于能發(fā)展到啥程度他們就不care了。
因此,準(zhǔn)備筆試題的時(shí)候要確定自己的目標(biāo)公司:主攻國(guó)內(nèi)公司的話(huà),C++的語(yǔ)言特性、linux基本命令操作這些細(xì)節(jié)也得準(zhǔn)備,因?yàn)闀?huì)有大量此類(lèi)題目;主攻國(guó)外公司的話(huà),良好的英文閱讀能力必不可少,此外優(yōu)秀的代碼理解和代碼編寫(xiě)能力也不可或缺。
此外,不要在筆試題目里犯低級(jí)錯(cuò)誤,不要抄襲(面試時(shí)經(jīng)常會(huì)問(wèn)到筆試題),保持書(shū)寫(xiě)的工整(尤其是代碼題目和問(wèn)答題目)。
考慮到幾乎所有的公司都有編程題目,也就是在紙上寫(xiě)代碼,這里推薦幾本相關(guān)書(shū)籍:
1、Elements of programming style 2nd,寫(xiě)出良好風(fēng)格的代碼。紙上代碼一般不長(zhǎng),但短短幾行代碼往往可以看出這個(gè)人的水準(zhǔn),風(fēng)格很差的代碼往往會(huì)被pass掉。
2、Algorithm design manual 2nd,作為非ACM出身的碼農(nóng),這本書(shū)比算導(dǎo)實(shí)用很多,課后題也很實(shí)在,對(duì)回溯,動(dòng)態(tài)規(guī)劃這些編程技巧講的非常清楚。
3、C interfaces and implementation,無(wú)論是面試還是筆試,一般都會(huì)用C寫(xiě)程序,這本書(shū)包含大量的工業(yè)級(jí)C代碼,絕佳的參考和模仿素材。
最后推薦下Elements of programming和Structure and interpretation of computer programs,這兩本書(shū)難度很搞,需要大量的時(shí)間閱讀,不適合臨場(chǎng)閱讀準(zhǔn)備,但讀過(guò)后,寫(xiě)出的代碼絕逼會(huì)上兩個(gè)層次,這里我就不多介紹了。
6、面試
之前有人PM我關(guān)于海投簡(jiǎn)歷的問(wèn)題。我個(gè)人不建議海投簡(jiǎn)歷。因?yàn)閷?duì)能力弱的人來(lái)說(shuō),海投簡(jiǎn)歷只會(huì)讓他信心更差,沒(méi)有任何效果,有投簡(jiǎn)歷的時(shí)間還不如精心準(zhǔn)備少數(shù)幾個(gè)好公司;而對(duì)能力強(qiáng)的人來(lái)說(shuō),海投簡(jiǎn)歷之后會(huì)有大量的筆試和面試,筆試很耗體力,面試更很耗體力,不但需要打車(chē)或坐地鐵在各個(gè)公司間穿梭,而且需要在面試時(shí)保持精神的高度集中,一般面下來(lái)都會(huì)精疲力盡,導(dǎo)致接下來(lái)的發(fā)揮不好。所以還是之前所說(shuō),優(yōu)先內(nèi)部推薦,然后再根據(jù)自己的情況和職業(yè)發(fā)展路線(xiàn)選擇公司,選擇職位,不用選太多,集中精力攻破領(lǐng)域內(nèi)的TOP3即可。就我自己而言,求職期間,我一共投了12封簡(jiǎn)歷,參加了12家公司的面試,一共面了35輪。說(shuō)多不多,說(shuō)少不少,因?yàn)樽约和逗?jiǎn)歷時(shí)也是本著互聯(lián)網(wǎng)公司為主,小公司和企事業(yè)單位壓根沒(méi)有投,精準(zhǔn)投放的好處在于可以集中精力準(zhǔn)備同一類(lèi)型的公司,從而達(dá)到不錯(cuò)的效果。
關(guān)于簡(jiǎn)歷海投的問(wèn)題就說(shuō)到這里,接下來(lái)講講IT公司的面試。需要注意的是我這里聊的都是應(yīng)屆生面試,社會(huì)招聘面試可能會(huì)有所區(qū)別,但整體流程不會(huì)有太大差異。
盡管筆試題會(huì)有所差別,但I(xiàn)T公司面試的流程大同小異:標(biāo)準(zhǔn)的技術(shù)面試一般有45分鐘到60分鐘,大約分為三個(gè)階段:
1、自我介紹(5~10分鐘):
這個(gè)環(huán)節(jié)的主要目的在于建立面試官和求職者之間的溝通,面試官已經(jīng)掃過(guò)你的簡(jiǎn)歷,但需要對(duì)你有進(jìn)一步的了解,以便建立一個(gè)初步印象,并便于進(jìn)行接下來(lái)的技術(shù)提問(wèn),所以這個(gè)環(huán)節(jié)最常見(jiàn)的問(wèn)題無(wú)外乎“進(jìn)行一下自我介紹”,有時(shí)會(huì)加上3分鐘或是5分鐘的時(shí)限,有時(shí)會(huì)詢(xún)問(wèn)“說(shuō)說(shuō)你最得意的項(xiàng)目/作品”之類(lèi)的變體問(wèn)題。
由于這個(gè)環(huán)節(jié)相對(duì)固定,因此準(zhǔn)備起來(lái)相對(duì)容易,但即便如此,面試初期時(shí)我在自我介紹環(huán)節(jié)也犯過(guò)不少錯(cuò)誤。這里以我的經(jīng)歷簡(jiǎn)單的總結(jié)下這個(gè)環(huán)節(jié)的要點(diǎn):
1、言簡(jiǎn)意賅,突出亮點(diǎn)
面試初期時(shí),我犯的一個(gè)很大的問(wèn)題就是自我介紹廢話(huà)太多,諸如“出生自xx省xx市”,“自我評(píng)價(jià)xxx”之類(lèi)的屁話(huà)連篇。要知道技術(shù)面試不是相親,這里的自我介紹不是相親里面的查戶(hù)口本,而是要了解你這個(gè)人靠不靠譜,牛逼不牛逼。如何在3分鐘內(nèi)讓別人覺(jué)得你牛逼呢?很簡(jiǎn)單,說(shuō)且僅說(shuō)你最牛逼的事跡,讓對(duì)方留下深刻印象。就技術(shù)面試而言,牛逼的事跡包含三方面:做過(guò)的項(xiàng)目,讀過(guò)的書(shū),認(rèn)識(shí)的人。
如果實(shí)在想不出來(lái)有啥牛逼事跡,那就比較難辦。說(shuō)實(shí)話(huà),換做你是面試官,招一個(gè)履歷毫無(wú)亮點(diǎn)的人進(jìn)來(lái)有何用?
2、緊貼簡(jiǎn)歷
面試官了解你的另外一個(gè)途徑就是簡(jiǎn)歷,然而短短一兩頁(yè)的簡(jiǎn)歷很難說(shuō)明白你簡(jiǎn)歷項(xiàng)目中的亮點(diǎn)和難點(diǎn)。就算你不提及,面試官也會(huì)在簡(jiǎn)歷中挑他感興趣的點(diǎn)進(jìn)行提問(wèn),因此自我介紹的內(nèi)容應(yīng)該是簡(jiǎn)歷的補(bǔ)充。這樣既能留給面試官不錯(cuò)的印象,也能有效節(jié)省時(shí)間,留出更多的時(shí)間進(jìn)行技術(shù)提問(wèn)環(huán)節(jié)和問(wèn)答環(huán)節(jié)。
此外,千萬(wàn)不要搞出自相矛盾,比如說(shuō)簡(jiǎn)歷講的做了A你在自我介紹中又說(shuō)是B,這就不是拙計(jì)的問(wèn)題了。
3、了解公司需求
不要試圖用一套自我介紹來(lái)搞定所有公司,除非你的簡(jiǎn)歷只有一句話(huà)("Exhausted graphic programming"或是"I wrote python"等)。不同的公司有不同的需求,在Google面前大談.net技術(shù)顯然不是什么好的選擇(我在google一面中就做過(guò)這種挫事)。面試之前要進(jìn)行詳細(xì)的調(diào)研,了解公司和職位的需求,然后根據(jù)他們的需求定制自己的自我介紹和簡(jiǎn)歷,效果會(huì)更好。
2、技術(shù)提問(wèn)(35~45分鐘):
通過(guò)自我介紹環(huán)節(jié),面試官會(huì)對(duì)你有一個(gè)大概的評(píng)估,接下來(lái)會(huì)通過(guò)一系列深入的問(wèn)題考察你的項(xiàng)目經(jīng)歷和技術(shù)能力。所以自我介紹環(huán)節(jié)不要吹牛逼,技術(shù)面試是很實(shí)在的東西,你有幾斤幾兩問(wèn)幾下就出來(lái),根本忽悠不過(guò)去。
按照MS的分類(lèi),技術(shù)面試問(wèn)題分為三類(lèi):
1、Behavior questions:此類(lèi)問(wèn)題針對(duì)面試者的過(guò)往經(jīng)歷,一方面考察面試者的表達(dá)能力和實(shí)際經(jīng)驗(yàn),一方面也可以排除掉一堆在簡(jiǎn)歷上吹牛逼的真ds:
“說(shuō)說(shuō)你最牛逼的項(xiàng)目?”
2、Hypothetical questions:此類(lèi)問(wèn)題會(huì)假設(shè)出一些場(chǎng)景,讓面試者進(jìn)行作答,主要考察面試者的應(yīng)變能力和實(shí)際經(jīng)驗(yàn):
“給你三天,你會(huì)如何把xx項(xiàng)目做得很牛逼?”
3、Probing questions:如果前兩類(lèi)問(wèn)題答的不錯(cuò),面試官往往會(huì)追加一些問(wèn)題,以探測(cè)面試者能夠走多遠(yuǎn),此類(lèi)問(wèn)題的出現(xiàn)也是一個(gè)標(biāo)志,面試官對(duì)你之前的表現(xiàn)感覺(jué)還不錯(cuò):
“你會(huì)如何改進(jìn)你做過(guò)的最牛逼的項(xiàng)目?”
就具體技術(shù)問(wèn)題而言,考察題目視你的應(yīng)聘職位和你的過(guò)往經(jīng)歷而定,開(kāi)發(fā)崗會(huì)側(cè)重代碼編寫(xiě)和系統(tǒng)設(shè)計(jì),測(cè)試崗會(huì)更注重測(cè)試用例的編寫(xiě)等細(xì)節(jié),產(chǎn)品崗要對(duì)線(xiàn)框圖,交互設(shè)計(jì)有了解。不過(guò)算法設(shè)計(jì)和代碼編寫(xiě)這兩塊是肯定有的,畢竟這是程序員的看家功夫,這個(gè)搞不定就沒(méi)有然后了。
算法設(shè)計(jì)這塊我就不多說(shuō)了,不搞ACM的碼農(nóng)沒(méi)啥發(fā)言權(quán)。代碼編寫(xiě)的話(huà)這里多說(shuō)兩句:和平時(shí)的開(kāi)發(fā)不同,面試時(shí)的代碼往往是在紙上搞的,而非IDE。很多代碼寫(xiě)的還不錯(cuò)的選手往往會(huì)在紙上代碼這個(gè)環(huán)節(jié)被虐的翔尿齊飛,限于篇幅原因我就不多介紹紙上代碼的技巧了,還是那句話(huà),多練習(xí)。我自己把Software Tools、Elements of programming和C interface and implementation中的代碼在紙上寫(xiě)過(guò)幾遍,又把常見(jiàn)的面試題目練習(xí)了三遍,因此紙上代碼環(huán)節(jié)從來(lái)沒(méi)出過(guò)問(wèn)題。
3、問(wèn)答環(huán)節(jié)(5~10分鐘):
如果前兩個(gè)環(huán)節(jié)進(jìn)展順利,就會(huì)進(jìn)入最后的問(wèn)答環(huán)節(jié)。這個(gè)環(huán)節(jié)面試官一般會(huì)讓面試者提幾個(gè)感興趣的問(wèn)題,以增進(jìn)相互的了解。
相對(duì)于前兩個(gè)環(huán)節(jié),這個(gè)環(huán)節(jié)會(huì)輕松很多。不過(guò)依然要注意,關(guān)于面試表現(xiàn)的問(wèn)題最好別問(wèn),因?yàn)閱?wèn)也問(wèn)不出來(lái)什么,至于待遇,那是HR的事情,技術(shù)面試官也無(wú)能為力。
最后根據(jù)自己的面試經(jīng)歷說(shuō)說(shuō)幾個(gè)細(xì)節(jié)的問(wèn)題
態(tài)度:記住你是去求職,證明自己的能力達(dá)到職位需求是你的首要任務(wù)。沒(méi)有必要和面試官抬杠,把面試官搞不爽對(duì)你一點(diǎn)好處都沒(méi)有。我在面試搜狗時(shí)就出過(guò)這問(wèn)題(直接表示對(duì)面試官的問(wèn)題的不屑),直接一面被砍掉。
著裝:盡管IT公司大多不需要西裝革履,但也別太拖沓,穿整齊些,至少給人很精神的感覺(jué)。我面試騰訊時(shí)直接搞了一件套頭衫+迷彩褲+機(jī)車(chē)帽,結(jié)果是面試官?gòu)念^到尾就沒(méi)正眼看過(guò)我,直接一面被砍掉。
交流:面試是一個(gè)交流的過(guò)程,不明白的一定要主動(dòng)詢(xún)問(wèn),面試的大忌就是面試官給了一個(gè)問(wèn)題,你一聲不吭的搞了一個(gè)小時(shí),最后發(fā)現(xiàn)搞的不是面試官問(wèn)的問(wèn)題,這時(shí)就算你很牛逼,面試結(jié)果往往也是悲劇。
7、國(guó)企
國(guó)內(nèi)的IT公司一共去了6家,拿到6個(gè)offer,面試19場(chǎng)。
百度(2輪面試+1輪終面)
百度的應(yīng)屆生面試分為3輪,2輪技術(shù)面和1輪終面,3輪面試連在一起進(jìn)行,如果搞到第1輪或第2輪就叫你回去,基本上不是悲劇就是備胎。如果進(jìn)了終面,只要不出岔子,一般問(wèn)題不大,因?yàn)榘俣让磕暾械娜朔浅6?#xff0c;印象里有1500人之多。
可能是招的人特別多從而導(dǎo)致面試官人數(shù)不夠,百度的面試在所有大公司里面幾乎是最隨意的,面試官往往都沒(méi)有經(jīng)過(guò)系統(tǒng)的面試培訓(xùn),出的題目也只是從網(wǎng)上東拼西湊,比如像C++的虛函數(shù)的實(shí)現(xiàn)機(jī)制此類(lèi)SB題目層出不窮。而且有些面試官缺乏對(duì)面試者最基本的尊重,我有幾個(gè)同學(xué)在百度面試時(shí)差點(diǎn)被面哭。
就我個(gè)人而言,我先后參加了百度的實(shí)習(xí)生面試和正式員工面試。正式員工面試給我感覺(jué)相當(dāng)不錯(cuò),流程很規(guī)范,面試官很nice,問(wèn)的問(wèn)題也說(shuō)的過(guò)去;然而實(shí)習(xí)生面試那兩個(gè)人就是翔,不但問(wèn)的問(wèn)題很二,而且不給我任何交流的空間,同時(shí)在面試過(guò)程中表現(xiàn)出一副非常不屑的神情,令人極度不爽。
此外,百度的員工(包括面試官)給我一種工作過(guò)度的感覺(jué),說(shuō)驚悚些就是印堂發(fā)黑。結(jié)合艷紅哥提到的狼性精神,我這號(hào)醬油男說(shuō)啥也不敢去。
搜狗(2輪面試)
搜狗的應(yīng)屆生面試分為4輪,2輪技術(shù)+1輪HR+一輪Manager,4輪面試是分開(kāi)的,所以會(huì)比較麻煩,畢竟來(lái)回跑來(lái)跑去的很費(fèi)時(shí)費(fèi)力。
我的搜狗面試經(jīng)歷比較詼諧,盡管面了2輪,但2輪都是一面,第一個(gè)一面是朋友幫忙推薦過(guò)去的面試,第二個(gè)一面是參加搜狗筆試獲得的面試機(jī)會(huì),從這里多少能看出搜狗招人是有點(diǎn)混亂的。
第一個(gè)一面非常囧,當(dāng)時(shí)面試官問(wèn)我C++,我表示很少用,接下來(lái)問(wèn)了若干智力題,由于被問(wèn)的有些拙計(jì),于是反問(wèn)“這種智力題有什么考察度,會(huì)做的人一下子做出來(lái),不會(huì)做的一天也搞不定”。估計(jì)這句話(huà)把面試官搞毛了,接下來(lái)的氣氛變的很緊張,后來(lái)面試官反問(wèn)我“那你覺(jué)得應(yīng)該怎么招人”,我回答“你們應(yīng)該學(xué)學(xué)微軟”。然后就沒(méi)有然后了,囧tz。
第二個(gè)一面感覺(jué)還成,因?yàn)槲夜P試的題目答得比較出彩。接下來(lái)是一個(gè)strcpy的紙上代碼和一個(gè)簡(jiǎn)單的OS生產(chǎn)者消費(fèi)者問(wèn)題,答得還算順利,可惜依然沒(méi)有然后,我懷疑可能是沒(méi)有Hire Count了。
搜狗面試給我一個(gè)很大的教訓(xùn),就是別裝逼,求職就是求職,別和面試官抬杠。在接下來(lái)的面試中,我收斂了很多。
創(chuàng)新工場(chǎng)(2輪面試+4輪終面)
創(chuàng)新工場(chǎng)本身是一個(gè)孵化公司,它的招聘流程是這樣的:工場(chǎng)進(jìn)行筆試和面試初選,然后由工場(chǎng)下面的子公司進(jìn)行復(fù)選,由于子公司眾多,因此工場(chǎng)有一個(gè)雙選會(huì),每個(gè)通過(guò)初選的求職者可以選擇3家工場(chǎng)的子公司,在這個(gè)雙選會(huì)上開(kāi)復(fù)哥很是鼓吹創(chuàng)業(yè),不過(guò)效果似乎不太理想 :-D
工場(chǎng)的初選面試有兩輪,然后是3個(gè)子公司的復(fù)選面試。和其它公司不一樣,工場(chǎng)的面試時(shí)間非常短,只有25分鐘:一個(gè)自我介紹,兩個(gè)無(wú)需寫(xiě)代碼的題目。有點(diǎn)拼人品,因?yàn)檫@么短的時(shí)間很難考察全面。復(fù)選面試大多是電面,比較簡(jiǎn)單,算法題目說(shuō)下思路就可以。順便推薦下友盟,感覺(jué)這些子公司里面這家的發(fā)展?jié)摿ψ畲蟆?br />
騰訊(1輪面試)
騰訊的應(yīng)屆生面試的組成我不太清楚,因?yàn)?輪就GG了。
騰訊的面試也讓人很火大,面試官直接拿一個(gè)laptop在那里給你放ppt,一個(gè)slide一個(gè)題目,答完下一個(gè)slide,結(jié)果是我說(shuō)的口干舌燥面試官還沒(méi)說(shuō)兩句話(huà)。題目五花八門(mén),從簡(jiǎn)歷到智力題再到為人處事,印象里答了不下七八道題目,累的一逼還沒(méi)通過(guò),尼瑪。
不過(guò)騰訊的面試中見(jiàn)到很多PLMM,目測(cè)有很多非技術(shù)崗。
人人(2輪面試+2輪終面)
人人的應(yīng)屆生面試一般是2輪面試+1輪終面,由于我的筆試和面試發(fā)揮不錯(cuò),因此又得到了一個(gè)加面的機(jī)會(huì),拿到了人人special offer,待遇非常給力。
人人的一面面試官非常nice,我當(dāng)時(shí)遲到了30分鐘,由于沒(méi)吃飯因此直接蹭了幾個(gè)面包,一邊吃一邊回答問(wèn)題一邊寫(xiě)代碼。由于一面主要考察紙上代碼,這個(gè)是我的強(qiáng)項(xiàng),因此很輕松的通過(guò)了。二面相對(duì)雜一些,數(shù)據(jù)結(jié)構(gòu),算法,設(shè)計(jì)模式,多線(xiàn)程等都有涉及,不過(guò)問(wèn)的都不深,也比較容易。
終面第一面由自我介紹+讀過(guò)的書(shū)+寫(xiě)一段代碼組成,正好剛剛讀過(guò)Sicence of programming,于是就海侃了一頓程序正確性證明的東西,并用這個(gè)證明了下自己的代碼的正確性,目測(cè)效果還不錯(cuò)。
終面第二面是一個(gè)大manager面試,這一輪主要是自己的職業(yè)發(fā)展路線(xiàn)等其它非技術(shù)問(wèn)題,聊的也比較順利,然后他直接告訴我我拿到了special offer。
人民搜索(2輪面試+1輪終面)
人民搜索的應(yīng)屆生面試由1輪算法面+1輪設(shè)計(jì)面+1輪終面組成,每一輪面試都是45分鐘,時(shí)間控制很?chē)?yán)。
和其它公司的面試不同,人搜的算法面試沒(méi)有自我介紹環(huán)節(jié),直接就是搞算法題目,至少要做兩道(難度一般,肯定會(huì)有一道動(dòng)態(tài)規(guī)劃),并在紙上寫(xiě)出完整的代碼。由于缺乏溝通,這輪面試略感生硬,不過(guò)還是比較順利的通過(guò)了。
設(shè)計(jì)面試多了一些溝通環(huán)節(jié),接下來(lái)大部分時(shí)間會(huì)討論一個(gè)系統(tǒng)的設(shè)計(jì),你需要給出這個(gè)系統(tǒng)的架構(gòu),接下來(lái)面試官會(huì)不斷的追問(wèn)如何改進(jìn)該系統(tǒng)以應(yīng)對(duì)大用戶(hù)量大數(shù)據(jù)量等極端情況。我這方面的知識(shí)不多,只會(huì)很土鱉的hash+cache,磕磕絆絆的把這輪過(guò)去了。
終面面試官是一個(gè)前google工程師,正巧當(dāng)時(shí)我在google面了好幾輪,比較了解google面試的套路,因此很順利的就通過(guò)了。
總之,人民搜索的待遇比較給力,而且能搞定戶(hù)口,如果想在北京長(zhǎng)待而且視戶(hù)口很重,那么人搜值得一試。
8、外企
國(guó)外的IT公司一共去了4家,拿到3個(gè)offer,面試16場(chǎng)。
微軟(2輪面試+1輪終面)
微軟從去年開(kāi)始大規(guī)模擴(kuò)招,印象里以前應(yīng)屆生招幾十人,現(xiàn)在一個(gè)STC(互聯(lián)網(wǎng)工程院)就能招二百余人,因此面試難度也有所下降,面試輪數(shù)由以前的5輪左右下降到現(xiàn)在的3輪左右。
這里多提一句,很多人把微軟和MSRA(微軟亞洲研究院)劃等號(hào),甚至有人認(rèn)為進(jìn)了微軟就等于進(jìn)了MSRA,其實(shí)微軟有很多部門(mén),包括STC、STB、MOD等部門(mén),MSRA只是其中一個(gè)研究性質(zhì)很濃的部門(mén)。不過(guò)MSRA要求極高,和其它部門(mén)不同,一般MSRA的FTE只招博士,很少招碩士,招聘需要進(jìn)行七輪甚至以上的嚴(yán)格面試,難度絲毫不亞于谷歌。而MSRA的實(shí)習(xí)生則容易很多,名校學(xué)生一般有內(nèi)部推薦就可以搞定。
我之前在微軟進(jìn)行過(guò)實(shí)習(xí),因此直接參加了實(shí)習(xí)生轉(zhuǎn)正面試,三輪面試分別由SDET,SDE和一名高級(jí)部門(mén)經(jīng)理進(jìn)行面試,面試的流程可以參考我之前提到的常規(guī)面試流程。與國(guó)內(nèi)IT公司不同,微軟不會(huì)問(wèn)語(yǔ)言細(xì)節(jié)或是OS細(xì)節(jié)之類(lèi)的人品問(wèn)題(就是那種上網(wǎng)搜一下就明白的題目,C++的虛函數(shù)實(shí)現(xiàn)機(jī)制是此類(lèi)非常典型的人品題),而會(huì)集中在算法設(shè)計(jì)和程序設(shè)計(jì)上,其中應(yīng)屆生面試又以紙上代碼最為嚴(yán)格,即使到了終面依然會(huì)有紙上代碼編寫(xiě)環(huán)節(jié),盡管不會(huì)考察特別復(fù)雜的算法,但對(duì)細(xì)節(jié)要求的非常嚴(yán)格。好在我之前有微軟幾位SDE的指導(dǎo),紙上代碼功夫還是不錯(cuò)的,并且實(shí)習(xí)期間獲得了不錯(cuò)的review,因此比較順利的通過(guò)了微軟實(shí)習(xí)轉(zhuǎn)正面試。
微策略(2輪面試)
微策略是一家進(jìn)入中國(guó)沒(méi)多久的外企,規(guī)模不大,工作內(nèi)容主要是大數(shù)據(jù)分析+數(shù)據(jù)可視化,面試一般由四輪到六輪面試組成。我比較悲催的直接掛在第二輪面試。
微策略是我面試的外企中唯一全程使用英語(yǔ)面試的公司,面試官給人的感覺(jué)是很smart,但不nice,具體原因我后面說(shuō)。
第一輪面試主要問(wèn)了些面向?qū)ο笙嚓P(guān)的內(nèi)容,接下來(lái)是一些智力題目,我有一道題目(高樓扔雞蛋)沒(méi)有說(shuō)清楚,盡管答案是正確的,但我的推導(dǎo)思路比較繁瑣,因此浪費(fèi)了大量的時(shí)間和面試官進(jìn)行溝通。事后回想下面試官還是很nice的,主要還是自己平時(shí)想問(wèn)題淺嘗輒止,才會(huì)敗在這道題上。
第二輪面試就讓我感到不爽了,我在自我介紹時(shí)直接被面試官打斷,以至于自己的亮點(diǎn)經(jīng)歷說(shuō)都說(shuō)不出來(lái),而且在后續(xù)的編程環(huán)節(jié)中,面試官拒絕和我進(jìn)行交流,我寫(xiě)完了題目他又說(shuō)這個(gè)和他要求的不太一樣,當(dāng)時(shí)我心里就開(kāi)始暗罵wtf了。估計(jì)是前一輪被評(píng)為weak hire以至于這一輪的面試就是走走形式吧。
雅虎(3輪面試+1輪終面)
雅虎的面試分為3輪技術(shù)面和1輪終面,在同一天完成。盡管雅虎公司一直給我一種搖搖欲墜的感覺(jué)(經(jīng)常有傳言雅虎可能會(huì)被收購(gòu)),但雅虎公司的員工給我感覺(jué)都很nice且很smart,而且比微軟的員工要有活力許多。
三輪技術(shù)面試有兩輪是典型的技術(shù)面,自我介紹+技術(shù)提問(wèn),由于我在簡(jiǎn)歷上提到“閱讀了120本以上的計(jì)算機(jī)經(jīng)典書(shū)籍”,因此被問(wèn)到了“看過(guò)最經(jīng)典的計(jì)算機(jī)書(shū)”這樣的問(wèn)題,我拿Brian Kernighan和Rob Pike的The practice of programming吹了一陣,算法題目相對(duì)微軟要難一些,除了動(dòng)態(tài)規(guī)劃,也涉及到了后綴數(shù)組等不太常見(jiàn)的數(shù)據(jù)結(jié)構(gòu),還好之前有所準(zhǔn)備,所以回答的還不錯(cuò)。
終面的面試官是一名移動(dòng)部門(mén)的老大,問(wèn)了一些數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)和職業(yè)規(guī)劃的問(wèn)題,并用英文進(jìn)行了一小段交流,由于這些問(wèn)題準(zhǔn)備的很充分,因此跟他聊的比較high,終面也很順利的通過(guò)了。
Google(7輪面試)
Google的面試輪數(shù)不定,如果表現(xiàn)良好,4輪面試就可以拿到offer,但如果有某輪面試表現(xiàn)一般,可能會(huì)進(jìn)行加面來(lái)進(jìn)行確認(rèn)面試者是否合格,拿我自己來(lái)說(shuō),進(jìn)行了7輪面試(據(jù)說(shuō)有進(jìn)行到10輪以上的,不過(guò)無(wú)法確認(rèn)可信性)。Google是典型的工程師文化工程師面試,沒(méi)有終面這個(gè)說(shuō)法,每個(gè)面試官都有一票否決權(quán),加上每個(gè)面試官考察的點(diǎn)都不一樣,因此Google面試是我經(jīng)歷過(guò)的難度最高的面試。
其實(shí)Google的面試我本來(lái)沒(méi)抱多大希望,因?yàn)镚oogle一直給我可望不可及的感覺(jué),因此面試時(shí)也很放松,這種“自暴自棄”的心態(tài)反而讓我發(fā)揮的不錯(cuò),一步一步走到最后,并拿到offer。
Google的面試每一輪大約45分鐘,時(shí)間卡的比較嚴(yán)格。面試題目肯定會(huì)包含算法和程序設(shè)計(jì)(一般體現(xiàn)為紙上代碼),同時(shí)包含其它各種各樣的問(wèn)題,我經(jīng)歷了策略題(設(shè)計(jì)一種策略從而在某個(gè)游戲中達(dá)到優(yōu)勝)、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)、系統(tǒng)設(shè)計(jì)、白盒/黑盒測(cè)試、項(xiàng)目介紹等五花八門(mén)的題目,題目的類(lèi)型視面試官的類(lèi)型而定:學(xué)術(shù)型的面試官(比如說(shuō)名校PHD)問(wèn)的題目偏重算法,工程型的面試官(大多是社招的Googler)問(wèn)的題目偏重項(xiàng)目經(jīng)歷。面試題目并不像網(wǎng)上傳說(shuō)的那么困難,但是面試官會(huì)拋出很多Probing question,讓你給出一個(gè)optimal solution,這著實(shí)讓我拙計(jì)了幾次,不過(guò)即便一時(shí)間想不到最優(yōu)解也不要緊,一邊保持和面試官的交流一邊試探各種可能的思路,這里再次推薦下Polya的How to solve it。
由于面試輪數(shù)很多,因此這里就不依次說(shuō)每輪面試的細(xì)節(jié),可以參考下面的Google面試經(jīng)歷鏈接。
http://blog.yxwang.me/2012/12/job-hunting-in-usa-1/
《面試體驗(yàn):Google 篇》
9、總結(jié)
筆試難度:微策略>人搜>人人>雅虎>搜狗>創(chuàng)新工場(chǎng)>騰訊
面試難度:Google>雅虎>人搜>微策略>微軟>人人>百度>騰訊=搜狗=創(chuàng)新工場(chǎng)
待遇:Google>人人>人搜>雅虎>微軟>百度>創(chuàng)新工場(chǎng)旗下子公司
毫不猶豫的選擇了Google,盡管我自己是.Net流,天天折騰VS和C#,linux和unix啥的都沒(méi)碰過(guò),但就前景來(lái)看,不得不承認(rèn)Google比微軟強(qiáng)太多了。
老實(shí)說(shuō)我自己進(jìn)Google感覺(jué)像做夢(mèng),畢竟不是搞ACM的,大學(xué)成績(jī)一般,什么獎(jiǎng)學(xué)金都沒(méi)拿過(guò)。
?
但回想一下,這也不全是靠運(yùn)氣:從07年(那時(shí)我大三,一行代碼沒(méi)寫(xiě)過(guò))掛科開(kāi)始,決心開(kāi)始搞計(jì)算機(jī)這行,編寫(xiě)自己的第一行靠譜代碼,獨(dú)立完成第一個(gè)編程作業(yè),閱讀書(shū)籍,不懂的就來(lái)D版詢(xún)問(wèn)各路大神(這里謝過(guò)FloridDong,UGLee等大神),然后一邊實(shí)習(xí)一邊讀書(shū)學(xué)習(xí),花了半年考研考到帝都,在考研結(jié)束的那段時(shí)間(四個(gè)月假期)精讀了數(shù)據(jù)結(jié)構(gòu),計(jì)算機(jī)組成等基礎(chǔ)經(jīng)典書(shū)籍,補(bǔ)習(xí)自己的基礎(chǔ)。到帝都之后,在一場(chǎng)即興技術(shù)口譯之后,獲得去微軟實(shí)習(xí)的機(jī)會(huì),然后在實(shí)習(xí)中學(xué)習(xí)編譯器知識(shí),創(chuàng)作了自己的編程語(yǔ)言和編譯器,加入朋友的創(chuàng)業(yè)團(tuán)隊(duì)并合作完成了AppStore TOP1的應(yīng)用,離開(kāi)團(tuán)隊(duì)獨(dú)立搞定Windows Phone 7上最火的撥號(hào)應(yīng)用、閱讀應(yīng)用和AV應(yīng)用并在移動(dòng)互聯(lián)網(wǎng)中賺到自己的第一桶金,通宵一周完成畢業(yè)小論文發(fā)表并推薦到核心期刊,為了求職寫(xiě)了三本紙上代碼,閱讀the Science of programming學(xué)會(huì)如何證明自己代碼的正確性,100%的簡(jiǎn)歷通過(guò)率+100%的筆試通過(guò)率,最后進(jìn)入Google。
畢業(yè)答辯搞定,總算可以閑一段時(shí)間,把這段求職經(jīng)歷寫(xiě)出來(lái),也作為之前三個(gè)半月的求職的回顧。
首先說(shuō)說(shuō)我拿到的offer情況:
微軟,3面->終面,搞定
百度,3面->終面,口頭offer
搜狗,2面,悲劇
騰訊,1面,悲劇
布丁移動(dòng),3面,搞定
涂鴉游戲,3面,搞定
友盟,3面->CEO面,搞定
雅虎,4面->終面,搞定
微策略,2面,悲劇
人民搜索,3面->終面,搞定
人人,2面+終面+Special面,搞定
Google,7面,搞定
求職經(jīng)歷分為定位、準(zhǔn)備、簡(jiǎn)歷、筆試和面試這五個(gè)部分,大家挑感興趣的看就成。
我的求職經(jīng)歷適用但不限于碼農(nóng),不適用與企事業(yè)單位(據(jù)說(shuō)是完全不同的考察標(biāo)準(zhǔn)和流程)。廢話(huà)比較多,大家耐心忍受,有什么問(wèn)題可以跟帖提問(wèn)。
2、定位
教育經(jīng)歷:本科在大連某工科院校,由于GPA比較慘烈+掛科,所以沒(méi)保成研,畢業(yè)后修了一年英語(yǔ)雙學(xué)位,然后到帝都計(jì)算機(jī)職業(yè)教育學(xué)院接受再教育。
技術(shù)能力:屬于半碼農(nóng)半產(chǎn)品的類(lèi)型,代碼編的過(guò)去(搞過(guò)compiler),也有一些拿的出手的產(chǎn)品(幾十w的用戶(hù)量),一句話(huà)描述:幾十w代碼+幾十w用戶(hù)的Coder。
專(zhuān)業(yè)能力:非ACM出身,算法拙計(jì)但基礎(chǔ)扎實(shí)。由于單身所以看了N多書(shū)(CS+心理+經(jīng)管+歷史),扯淡能力強(qiáng)大,碰到非專(zhuān)業(yè)的各種秒殺,碰到專(zhuān)業(yè)各種拙計(jì)。
實(shí)習(xí)經(jīng)歷:大四在一家ds公司實(shí)習(xí)過(guò)一年,攢了不少代碼量;后來(lái)在MS斷斷續(xù)續(xù)的待了一年多,雖說(shuō)是打醬油,但在眾大神的光環(huán)籠罩下,水平至少提了三個(gè)檔。
目標(biāo)公司:由于百度給我的印象實(shí)在很差,而MS給我的印象又實(shí)在很好,所有就有了下面的排名:
外企(Google、MS、Yahoo等)>國(guó)內(nèi)互聯(lián)網(wǎng)(阿里、騰訊、百度、網(wǎng)易等)>企事業(yè)單位(基本不考慮)
3、準(zhǔn)備
經(jīng)常在論壇里看到各種求職抱怨貼,其實(shí)在抱怨前應(yīng)該仔細(xì)想一想,為了求職,你付出了多少?看到人家找工作找的順找的爽,有沒(méi)有想過(guò)人家背地里付出了多少努力和心血?別拿官二代和富二代啥的說(shuō)事,真ds只會(huì)拿一堆自身以外的理由掩飾自己的懶惰。
不要認(rèn)為求職就是發(fā)個(gè)簡(jiǎn)歷等面試通知,對(duì)于大神來(lái)說(shuō)不用發(fā)簡(jiǎn)歷牛逼公司也會(huì)圍著你轉(zhuǎn),對(duì)于ds來(lái)說(shuō)就是預(yù)則立不預(yù)則廢,中國(guó)缺什么就是不缺人,不下功夫準(zhǔn)備很有可能連個(gè)P都沒(méi)有。
其實(shí)很多屌絲就是怕預(yù)也廢所以干脆不準(zhǔn)備直接上,這樣搞不定的話(huà),就有借口說(shuō)不是自己蠢而是自己沒(méi)準(zhǔn)備,可以捍衛(wèi)自己的智商高地不被侵犯。身邊有不少這樣的實(shí)例,典型的死要面子活受罪,活該你找不到工作。
我的微軟mentor曾提到過(guò),我的實(shí)習(xí)面試表現(xiàn)一般,但后來(lái)表現(xiàn)出的動(dòng)手能力大大超出之前面試的預(yù)估,而有些面試表現(xiàn)很出色,問(wèn)題對(duì)答如流的選手,入職之后反而不是很理想,至少?zèng)]有達(dá)到面試時(shí)發(fā)揮出的水準(zhǔn)。
這說(shuō)明一個(gè)問(wèn)題,就是筆試面試,準(zhǔn)備和不準(zhǔn)備會(huì)差異很大。如果你的簡(jiǎn)歷不是那么NB,那就只能靠筆試和面試的加分撐場(chǎng)面。身邊經(jīng)常有同學(xué)納悶這樣代碼都編不利索的傻屌都能進(jìn)MS為什么我不能進(jìn),答案往往很簡(jiǎn)單:人家比你多準(zhǔn)備了一個(gè)月。平時(shí)電腦上寫(xiě)程序可能很利索,筆試面試時(shí)在紙上寫(xiě)寫(xiě)試試你就知道什么叫拙計(jì)。
IT公司的筆試和面試的題量都不大(相對(duì)于企事業(yè)單位和銀行動(dòng)輒上百道選擇題的題量,算是很少),一般十幾道選擇題,三四道大題就算題量很大。但計(jì)算機(jī)的東西實(shí)在又是太多,程序設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)、算法設(shè)計(jì)、操作系統(tǒng)、體系結(jié)構(gòu)、編譯原理、數(shù)據(jù)庫(kù)、軟件工程等分支,編譯的話(huà)太難(一千個(gè)碼農(nóng)里也沒(méi)幾個(gè)人能在紙上寫(xiě)一個(gè)最基礎(chǔ)的遞歸下降LLParser),軟件工程、體系結(jié)構(gòu)、數(shù)據(jù)庫(kù)這些太水(不是說(shuō)這些分支沒(méi)用,而是它們很難考察,尤其對(duì)應(yīng)屆生來(lái)說(shuō)這些都是些文字游戲,比如說(shuō)面向?qū)ο蟮娜匚逶瓌t,有個(gè)鳥(niǎo)用),這么一排除,再把數(shù)據(jù)結(jié)構(gòu)和算法設(shè)計(jì)一合并,就剩下程序設(shè)計(jì)、算法和操作系統(tǒng)。沒(méi)錯(cuò),這三項(xiàng)搞定,國(guó)內(nèi)外IT公司通殺。
因此我的筆試和面試準(zhǔn)備很簡(jiǎn)單,就是重溫+突擊程序設(shè)計(jì)、算法和操作系統(tǒng)。下面是我的筆試+面試準(zhǔn)備內(nèi)容:
程序設(shè)計(jì):
1、把基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)的C語(yǔ)言實(shí)現(xiàn)在紙上寫(xiě)三遍以上,用我能想到的最精簡(jiǎn)最優(yōu)化的方法
2、閱讀CARM和TCPL,確保不會(huì)遺漏C語(yǔ)言的每個(gè)細(xì)節(jié)
3、重溫之前自己做過(guò)的靠譜項(xiàng)目,并總結(jié)里面的關(guān)鍵難題和解決思路
4、重讀Writing Solid Code、Elements of Programming、Practice of programming
5、閱讀Science of Programming,做到可以證明自己的程序的正確性(前條件+后條件+不變式)
算法:
1、重讀Algorithm Design Manual,重點(diǎn)閱讀Dynamic Programming和Backtraverse
2、重讀Programming Pearls和More Programming Pearls,并完成所有課后題
3、獨(dú)立解決編程之美里面的題目(國(guó)內(nèi)不少企業(yè)選題用的這本書(shū))
4、完成Careercup里Amazon、Google和Microsoft這三個(gè)分類(lèi)下面的前20頁(yè)面試題
5、完成TopCoder的數(shù)十道D1L2~D2L1難度區(qū)間的算法題目
操作系統(tǒng):
1、重讀Modern Operating System,重溫OS的核心概念
2、重讀Computer Systems a Programmer's Perspective的關(guān)鍵章節(jié),回顧里面的關(guān)鍵點(diǎn)
從七月底開(kāi)始一直到十一月,花了接近四個(gè)月,很多東西都是一邊面試一邊準(zhǔn)備:面試->發(fā)現(xiàn)盲點(diǎn)->修復(fù)盲點(diǎn)。
此外列出一些面試筆試題的資源,此外感謝基友@codewarrior之前的推薦:
1、Crack over the code interview
很靠譜的筆試面試指導(dǎo)手冊(cè)
2、CareerCup
集齊了大量的真實(shí)筆試面試題,去外企的一定得看
3、TopCoder
如果不是ACM,練這個(gè)就夠,其實(shí)面試也不會(huì)問(wèn)太難的算法,哪怕是google
4、編程之美
盡管題目有些過(guò)時(shí),但依然很實(shí)用,三星題目適合一個(gè)人仔細(xì)想
此外也說(shuō)下一些不靠譜的資源:
1、IT公司面試100題
這個(gè)恐怕是國(guó)內(nèi)傳的最多的IT面試題
題目本身還可以,但那個(gè)出題人本身代碼功底一般,給出的答案包含大量錯(cuò)誤和缺陷,導(dǎo)致參考價(jià)值驟降
2、程序員面試寶典
翔一樣的書(shū),各種錯(cuò)誤概念的堆積,如果一個(gè)錯(cuò)誤給我一塊錢(qián),我能從這本書(shū)搞成萬(wàn)元戶(hù)。如果去正規(guī)公司拿這本書(shū)準(zhǔn)備,包你被黑出翔。
4、簡(jiǎn)歷
在MS時(shí),老大曾讓我?guī)兔φ袔讉€(gè)靠譜的實(shí)習(xí)生,因此我收到了幾百封簡(jiǎn)歷,過(guò)了一把HR的癮。這里說(shuō)說(shuō)自己在看簡(jiǎn)歷時(shí)發(fā)現(xiàn)的幾點(diǎn):
1、可讀性。不要用Word或壓縮包,用PDF。此外在郵件里面用純文本加上自己的簡(jiǎn)介,簡(jiǎn)化對(duì)方閱讀的操作。要記住HR一天看的簡(jiǎn)歷海的去了,壓縮包是HR最痛恨的格式,因?yàn)榻鈮毫司筒恢廊幽娜チ?#xff0c;有時(shí)干脆就不看;Word有版本問(wèn)題,10的docx到了07往往被黑出翔。還有就是對(duì)方有可能不在PC上讀郵件,因此純文本的簡(jiǎn)介非常有必要。
2、群發(fā)。不要給人群發(fā)的嫌疑,看清楚目標(biāo)職位和目標(biāo)公司,我發(fā)的工程院招聘貼,收到的幾百封簡(jiǎn)歷里面有十余封是投到微軟亞洲研究院,有幾個(gè)干脆寫(xiě)“敬愛(ài)的某領(lǐng)導(dǎo)”,尼瑪這不找抽么。
3,設(shè)計(jì)。特別提一下設(shè)計(jì),很多電工的簡(jiǎn)歷就是翔,丑的一逼,對(duì)齊沒(méi)有,字體拙計(jì),要點(diǎn)不明。再放到幾百份幾千份簡(jiǎn)歷里面,活該你被忽略。建議所有電工投簡(jiǎn)歷前閱讀《給大家看的設(shè)計(jì)書(shū)》,至少搞明白里面的C.R.A.P四原則。不要小看設(shè)計(jì)的威力,在簡(jiǎn)歷內(nèi)容接近的情況下,良好的設(shè)計(jì)會(huì)大大加分。
4、篇幅。控制在一頁(yè)以?xún)?nèi)。倒不是說(shuō)不能寫(xiě)兩頁(yè),而是HR沒(méi)時(shí)間看兩頁(yè)這么多。而且就我看過(guò)的幾百封簡(jiǎn)歷而言,凡是超過(guò)兩頁(yè)的沒(méi)一個(gè)靠譜,有這么高的先驗(yàn)概率,HR才沒(méi)工夫一個(gè)個(gè)篩,反正中國(guó)有的是人。
5、重點(diǎn)。一定要有重點(diǎn),做到讓HR通過(guò)簡(jiǎn)歷在20秒內(nèi)確定你靠不靠譜。可以用加黑字體進(jìn)行視覺(jué)引導(dǎo)。
6、措辭。甭搞“渴望得到這份工作”、“期待在xxx的工作機(jī)會(huì)”這樣的句式,除了顯得你低端,其它毛用沒(méi)有。
7、別字。千萬(wàn)不要出現(xiàn)錯(cuò)別字,別字簡(jiǎn)歷一般直接干掉。一頁(yè)的簡(jiǎn)歷都能出問(wèn)題,一般不會(huì)靠譜。
因?yàn)榭戳撕芏嗖豢孔V的簡(jiǎn)歷,我對(duì)簡(jiǎn)歷重要性的理解要比其他人深刻很多。首先花了一周把原來(lái)兩頁(yè)半的紙縮到一頁(yè)內(nèi),然后找UI朋友幫忙調(diào)整了版式、縮進(jìn)和字體,并找UX朋友幫忙進(jìn)行重點(diǎn)調(diào)整以進(jìn)行視覺(jué)引導(dǎo),然后在PC和手機(jī)上進(jìn)行了簡(jiǎn)歷可讀性測(cè)試。從而獲得了100%的簡(jiǎn)歷通過(guò)率。
此外,優(yōu)先走內(nèi)部推薦,這樣最有效率,所以結(jié)識(shí)各個(gè)公司的朋友是非常有必要的。
海投簡(jiǎn)歷既沒(méi)必要也沒(méi)效率,有這個(gè)時(shí)間不如改改簡(jiǎn)歷來(lái)的實(shí)在。
相關(guān)書(shū)目:
1、給大家看的設(shè)計(jì)書(shū),讓你的簡(jiǎn)歷看起來(lái)不像一坨翔。
2、Google Resume,如何寫(xiě)出靠譜的簡(jiǎn)歷,進(jìn)行靠譜的求職。
5、筆試
如之前所說(shuō),IT公司的筆試相對(duì)單純(程序設(shè)計(jì)、算法和操作系統(tǒng)),而且范圍較窄,有不少題目被出了一遍又一遍。因此市面上存在大量面試/筆試寶典之類(lèi)的書(shū)籍和題集。
準(zhǔn)備國(guó)內(nèi)的小公司,這些面試/筆試題集還靠的住,因?yàn)樾」就粫?huì)在招人環(huán)節(jié)上下太大的成本,因此他們的試卷一般就是東拼西湊的網(wǎng)上題目;對(duì)于大型公司來(lái)說(shuō),這些題庫(kù)或是寶典就顯的不夠用了,尤其是外企。
所以不要把希望放在運(yùn)氣或是臨陣磨槍上。就我自己而言,筆試準(zhǔn)備了一個(gè)多月,盡管這個(gè)時(shí)間并不算多,但由于自己平時(shí)一直在閱讀CS的基礎(chǔ)書(shū)籍,并做了大量的紙上代碼練習(xí),因此筆試通過(guò)率也達(dá)到了100%(實(shí)際上是由于我筆試的公司題目都略簡(jiǎn)單,據(jù)說(shuō)EMC和網(wǎng)易游戲的筆試難度很高,但當(dāng)時(shí)由于時(shí)間沖突沒(méi)有去成,因此搞出了這個(gè)數(shù)據(jù))。
多說(shuō)無(wú)益,這里拿搜狗、騰訊、微軟和雅虎這四家公司的筆試試卷為例,簡(jiǎn)單的介紹下IT公司的筆試題型和題目組成。
搜狗:
題型由十余道不定項(xiàng)選擇題和三道算法題目組成,要求在兩個(gè)小時(shí)完成。選擇題難度一般,比較雜,也有一些原題;三道算法題目有點(diǎn)意思,至少網(wǎng)上是很難找到,需要一定的算法設(shè)計(jì)能力(主要是動(dòng)態(tài)規(guī)劃)才能給出解決。
搜狗的筆試試題按職位分的很細(xì),從C++開(kāi)發(fā)工程師到iOS開(kāi)發(fā)工程師再到數(shù)據(jù)挖掘研究工程師十余個(gè)職位,每個(gè)職位的題目都有一套獨(dú)立的試卷。但是研發(fā)的算法題是一樣的,最后一道算法題很有意思,我花了一個(gè)多小時(shí)才想到利用組合數(shù)學(xué)里面的知識(shí)(多元一次方程非負(fù)解)給出設(shè)計(jì)方案,后來(lái)和面試官聊這道題時(shí)他們也挺吃驚,因?yàn)槲业姆桨副人麄兊拇鸢高€要優(yōu)化。
騰訊:
題型由二十道單項(xiàng)選擇題、六道填空題和兩道算法題組成,其中兩道算法題是二選一。難度比較簡(jiǎn)單,題型很廣,既有程序設(shè)計(jì)語(yǔ)言的細(xì)節(jié)也有概率統(tǒng)計(jì)的基本知識(shí),甚至還有C語(yǔ)言的創(chuàng)始人是誰(shuí)這樣的搞笑問(wèn)題,從選擇題上能看得出騰訊在筆試題上還是下了點(diǎn)功夫的,但算法題就太簡(jiǎn)單了點(diǎn),至少我認(rèn)為考不出什么區(qū)分度。
騰訊的筆試試題也是按職位劃分的,但就沒(méi)有搜狗那么細(xì)了,研發(fā)類(lèi)筆試題目是統(tǒng)一的,要求一個(gè)半小時(shí)完成,印象里自己四十分鐘就搞定收工,很多人都提前交了試卷,因?yàn)榇_實(shí)很簡(jiǎn)單。
微軟:
題型只有二十道不定項(xiàng)選擇題,難度較難,要求在一小時(shí)四十分鐘完成。難度較難,覆蓋面非常廣,從設(shè)計(jì)模式,算法分析,代碼閱讀到C++語(yǔ)言特性,甚至連冷門(mén)的函數(shù)式程序設(shè)計(jì)語(yǔ)言都有涉及。
微軟的筆試題目BT之處在于其獨(dú)特的積分機(jī)制:答對(duì)了加分,不答無(wú)分,答錯(cuò)了倒扣。這就使得很多ds答完試卷感覺(jué)自我良好但實(shí)際已經(jīng)被倒扣出翔。以最后一道題為例,答對(duì)了加7分,答錯(cuò)倒扣13分,相當(dāng)于一下子損失20分。所以微軟的筆試題會(huì)做就得做對(duì),不會(huì)做就別蒙,要不更慘。
此外,微軟的筆試題是英文的,加上時(shí)間比較短,有些人題都讀不完,有些ds連functional language是什么都不知道,自然敗的很慘。
雅虎:
題型由十余道單項(xiàng)選擇題,一道設(shè)計(jì)題目和六道算法題目組成,其中六道算法題目是六選二,要求在兩個(gè)小時(shí)完成。難度尚可,主要考察編程能力和算法設(shè)計(jì)能力。由于時(shí)間充裕,盡管是六選二,為了炫技,我直接答了里面的五道題目。然而面試時(shí)發(fā)現(xiàn)面試官判卷子時(shí)并沒(méi)有把多答的題目考慮在內(nèi),囧tz。
相對(duì)于微軟,雅虎的題目覆蓋面就窄了許多,沒(méi)有一道題目跳出程序設(shè)計(jì)、算法和操作系統(tǒng)這個(gè)圈的,只要勤加準(zhǔn)備,很容易通過(guò)。
雅虎的筆試題也是英文,因此英語(yǔ)作答較為合適,此外,由于算法題目簡(jiǎn)單,給出optimal solution是必須的,比如說(shuō)在logN的時(shí)間內(nèi)算fibonacci number是必備的知識(shí),能寫(xiě)binary search就不要寫(xiě)sequential search等等。
從筆試題可以明顯看出,國(guó)外的大型IT公司(比如雅虎,微軟和谷歌等)并不在意你現(xiàn)在的skill set,而更看重你的potential,因此題目大多很基礎(chǔ),并具備相當(dāng)?shù)纳疃?#xff0c;以確保你對(duì)CS有深刻的理解并能夠走的很遠(yuǎn);而國(guó)內(nèi)的IT公司(比如百度、搜狗和人人等)更看重你現(xiàn)在的skill set,因此會(huì)出現(xiàn)不少語(yǔ)言特性,OS操作之類(lèi)的具體題目,以確保你能夠以盡快的速度上手干活,至于能發(fā)展到啥程度他們就不care了。
因此,準(zhǔn)備筆試題的時(shí)候要確定自己的目標(biāo)公司:主攻國(guó)內(nèi)公司的話(huà),C++的語(yǔ)言特性、linux基本命令操作這些細(xì)節(jié)也得準(zhǔn)備,因?yàn)闀?huì)有大量此類(lèi)題目;主攻國(guó)外公司的話(huà),良好的英文閱讀能力必不可少,此外優(yōu)秀的代碼理解和代碼編寫(xiě)能力也不可或缺。
此外,不要在筆試題目里犯低級(jí)錯(cuò)誤,不要抄襲(面試時(shí)經(jīng)常會(huì)問(wèn)到筆試題),保持書(shū)寫(xiě)的工整(尤其是代碼題目和問(wèn)答題目)。
考慮到幾乎所有的公司都有編程題目,也就是在紙上寫(xiě)代碼,這里推薦幾本相關(guān)書(shū)籍:
1、Elements of programming style 2nd,寫(xiě)出良好風(fēng)格的代碼。紙上代碼一般不長(zhǎng),但短短幾行代碼往往可以看出這個(gè)人的水準(zhǔn),風(fēng)格很差的代碼往往會(huì)被pass掉。
2、Algorithm design manual 2nd,作為非ACM出身的碼農(nóng),這本書(shū)比算導(dǎo)實(shí)用很多,課后題也很實(shí)在,對(duì)回溯,動(dòng)態(tài)規(guī)劃這些編程技巧講的非常清楚。
3、C interfaces and implementation,無(wú)論是面試還是筆試,一般都會(huì)用C寫(xiě)程序,這本書(shū)包含大量的工業(yè)級(jí)C代碼,絕佳的參考和模仿素材。
最后推薦下Elements of programming和Structure and interpretation of computer programs,這兩本書(shū)難度很搞,需要大量的時(shí)間閱讀,不適合臨場(chǎng)閱讀準(zhǔn)備,但讀過(guò)后,寫(xiě)出的代碼絕逼會(huì)上兩個(gè)層次,這里我就不多介紹了。
6、面試
之前有人PM我關(guān)于海投簡(jiǎn)歷的問(wèn)題。我個(gè)人不建議海投簡(jiǎn)歷。因?yàn)閷?duì)能力弱的人來(lái)說(shuō),海投簡(jiǎn)歷只會(huì)讓他信心更差,沒(méi)有任何效果,有投簡(jiǎn)歷的時(shí)間還不如精心準(zhǔn)備少數(shù)幾個(gè)好公司;而對(duì)能力強(qiáng)的人來(lái)說(shuō),海投簡(jiǎn)歷之后會(huì)有大量的筆試和面試,筆試很耗體力,面試更很耗體力,不但需要打車(chē)或坐地鐵在各個(gè)公司間穿梭,而且需要在面試時(shí)保持精神的高度集中,一般面下來(lái)都會(huì)精疲力盡,導(dǎo)致接下來(lái)的發(fā)揮不好。所以還是之前所說(shuō),優(yōu)先內(nèi)部推薦,然后再根據(jù)自己的情況和職業(yè)發(fā)展路線(xiàn)選擇公司,選擇職位,不用選太多,集中精力攻破領(lǐng)域內(nèi)的TOP3即可。就我自己而言,求職期間,我一共投了12封簡(jiǎn)歷,參加了12家公司的面試,一共面了35輪。說(shuō)多不多,說(shuō)少不少,因?yàn)樽约和逗?jiǎn)歷時(shí)也是本著互聯(lián)網(wǎng)公司為主,小公司和企事業(yè)單位壓根沒(méi)有投,精準(zhǔn)投放的好處在于可以集中精力準(zhǔn)備同一類(lèi)型的公司,從而達(dá)到不錯(cuò)的效果。
關(guān)于簡(jiǎn)歷海投的問(wèn)題就說(shuō)到這里,接下來(lái)講講IT公司的面試。需要注意的是我這里聊的都是應(yīng)屆生面試,社會(huì)招聘面試可能會(huì)有所區(qū)別,但整體流程不會(huì)有太大差異。
盡管筆試題會(huì)有所差別,但I(xiàn)T公司面試的流程大同小異:標(biāo)準(zhǔn)的技術(shù)面試一般有45分鐘到60分鐘,大約分為三個(gè)階段:
1、自我介紹(5~10分鐘):
這個(gè)環(huán)節(jié)的主要目的在于建立面試官和求職者之間的溝通,面試官已經(jīng)掃過(guò)你的簡(jiǎn)歷,但需要對(duì)你有進(jìn)一步的了解,以便建立一個(gè)初步印象,并便于進(jìn)行接下來(lái)的技術(shù)提問(wèn),所以這個(gè)環(huán)節(jié)最常見(jiàn)的問(wèn)題無(wú)外乎“進(jìn)行一下自我介紹”,有時(shí)會(huì)加上3分鐘或是5分鐘的時(shí)限,有時(shí)會(huì)詢(xún)問(wèn)“說(shuō)說(shuō)你最得意的項(xiàng)目/作品”之類(lèi)的變體問(wèn)題。
由于這個(gè)環(huán)節(jié)相對(duì)固定,因此準(zhǔn)備起來(lái)相對(duì)容易,但即便如此,面試初期時(shí)我在自我介紹環(huán)節(jié)也犯過(guò)不少錯(cuò)誤。這里以我的經(jīng)歷簡(jiǎn)單的總結(jié)下這個(gè)環(huán)節(jié)的要點(diǎn):
1、言簡(jiǎn)意賅,突出亮點(diǎn)
面試初期時(shí),我犯的一個(gè)很大的問(wèn)題就是自我介紹廢話(huà)太多,諸如“出生自xx省xx市”,“自我評(píng)價(jià)xxx”之類(lèi)的屁話(huà)連篇。要知道技術(shù)面試不是相親,這里的自我介紹不是相親里面的查戶(hù)口本,而是要了解你這個(gè)人靠不靠譜,牛逼不牛逼。如何在3分鐘內(nèi)讓別人覺(jué)得你牛逼呢?很簡(jiǎn)單,說(shuō)且僅說(shuō)你最牛逼的事跡,讓對(duì)方留下深刻印象。就技術(shù)面試而言,牛逼的事跡包含三方面:做過(guò)的項(xiàng)目,讀過(guò)的書(shū),認(rèn)識(shí)的人。
如果實(shí)在想不出來(lái)有啥牛逼事跡,那就比較難辦。說(shuō)實(shí)話(huà),換做你是面試官,招一個(gè)履歷毫無(wú)亮點(diǎn)的人進(jìn)來(lái)有何用?
2、緊貼簡(jiǎn)歷
面試官了解你的另外一個(gè)途徑就是簡(jiǎn)歷,然而短短一兩頁(yè)的簡(jiǎn)歷很難說(shuō)明白你簡(jiǎn)歷項(xiàng)目中的亮點(diǎn)和難點(diǎn)。就算你不提及,面試官也會(huì)在簡(jiǎn)歷中挑他感興趣的點(diǎn)進(jìn)行提問(wèn),因此自我介紹的內(nèi)容應(yīng)該是簡(jiǎn)歷的補(bǔ)充。這樣既能留給面試官不錯(cuò)的印象,也能有效節(jié)省時(shí)間,留出更多的時(shí)間進(jìn)行技術(shù)提問(wèn)環(huán)節(jié)和問(wèn)答環(huán)節(jié)。
此外,千萬(wàn)不要搞出自相矛盾,比如說(shuō)簡(jiǎn)歷講的做了A你在自我介紹中又說(shuō)是B,這就不是拙計(jì)的問(wèn)題了。
3、了解公司需求
不要試圖用一套自我介紹來(lái)搞定所有公司,除非你的簡(jiǎn)歷只有一句話(huà)("Exhausted graphic programming"或是"I wrote python"等)。不同的公司有不同的需求,在Google面前大談.net技術(shù)顯然不是什么好的選擇(我在google一面中就做過(guò)這種挫事)。面試之前要進(jìn)行詳細(xì)的調(diào)研,了解公司和職位的需求,然后根據(jù)他們的需求定制自己的自我介紹和簡(jiǎn)歷,效果會(huì)更好。
2、技術(shù)提問(wèn)(35~45分鐘):
通過(guò)自我介紹環(huán)節(jié),面試官會(huì)對(duì)你有一個(gè)大概的評(píng)估,接下來(lái)會(huì)通過(guò)一系列深入的問(wèn)題考察你的項(xiàng)目經(jīng)歷和技術(shù)能力。所以自我介紹環(huán)節(jié)不要吹牛逼,技術(shù)面試是很實(shí)在的東西,你有幾斤幾兩問(wèn)幾下就出來(lái),根本忽悠不過(guò)去。
按照MS的分類(lèi),技術(shù)面試問(wèn)題分為三類(lèi):
1、Behavior questions:此類(lèi)問(wèn)題針對(duì)面試者的過(guò)往經(jīng)歷,一方面考察面試者的表達(dá)能力和實(shí)際經(jīng)驗(yàn),一方面也可以排除掉一堆在簡(jiǎn)歷上吹牛逼的真ds:
“說(shuō)說(shuō)你最牛逼的項(xiàng)目?”
2、Hypothetical questions:此類(lèi)問(wèn)題會(huì)假設(shè)出一些場(chǎng)景,讓面試者進(jìn)行作答,主要考察面試者的應(yīng)變能力和實(shí)際經(jīng)驗(yàn):
“給你三天,你會(huì)如何把xx項(xiàng)目做得很牛逼?”
3、Probing questions:如果前兩類(lèi)問(wèn)題答的不錯(cuò),面試官往往會(huì)追加一些問(wèn)題,以探測(cè)面試者能夠走多遠(yuǎn),此類(lèi)問(wèn)題的出現(xiàn)也是一個(gè)標(biāo)志,面試官對(duì)你之前的表現(xiàn)感覺(jué)還不錯(cuò):
“你會(huì)如何改進(jìn)你做過(guò)的最牛逼的項(xiàng)目?”
就具體技術(shù)問(wèn)題而言,考察題目視你的應(yīng)聘職位和你的過(guò)往經(jīng)歷而定,開(kāi)發(fā)崗會(huì)側(cè)重代碼編寫(xiě)和系統(tǒng)設(shè)計(jì),測(cè)試崗會(huì)更注重測(cè)試用例的編寫(xiě)等細(xì)節(jié),產(chǎn)品崗要對(duì)線(xiàn)框圖,交互設(shè)計(jì)有了解。不過(guò)算法設(shè)計(jì)和代碼編寫(xiě)這兩塊是肯定有的,畢竟這是程序員的看家功夫,這個(gè)搞不定就沒(méi)有然后了。
算法設(shè)計(jì)這塊我就不多說(shuō)了,不搞ACM的碼農(nóng)沒(méi)啥發(fā)言權(quán)。代碼編寫(xiě)的話(huà)這里多說(shuō)兩句:和平時(shí)的開(kāi)發(fā)不同,面試時(shí)的代碼往往是在紙上搞的,而非IDE。很多代碼寫(xiě)的還不錯(cuò)的選手往往會(huì)在紙上代碼這個(gè)環(huán)節(jié)被虐的翔尿齊飛,限于篇幅原因我就不多介紹紙上代碼的技巧了,還是那句話(huà),多練習(xí)。我自己把Software Tools、Elements of programming和C interface and implementation中的代碼在紙上寫(xiě)過(guò)幾遍,又把常見(jiàn)的面試題目練習(xí)了三遍,因此紙上代碼環(huán)節(jié)從來(lái)沒(méi)出過(guò)問(wèn)題。
3、問(wèn)答環(huán)節(jié)(5~10分鐘):
如果前兩個(gè)環(huán)節(jié)進(jìn)展順利,就會(huì)進(jìn)入最后的問(wèn)答環(huán)節(jié)。這個(gè)環(huán)節(jié)面試官一般會(huì)讓面試者提幾個(gè)感興趣的問(wèn)題,以增進(jìn)相互的了解。
相對(duì)于前兩個(gè)環(huán)節(jié),這個(gè)環(huán)節(jié)會(huì)輕松很多。不過(guò)依然要注意,關(guān)于面試表現(xiàn)的問(wèn)題最好別問(wèn),因?yàn)閱?wèn)也問(wèn)不出來(lái)什么,至于待遇,那是HR的事情,技術(shù)面試官也無(wú)能為力。
最后根據(jù)自己的面試經(jīng)歷說(shuō)說(shuō)幾個(gè)細(xì)節(jié)的問(wèn)題
態(tài)度:記住你是去求職,證明自己的能力達(dá)到職位需求是你的首要任務(wù)。沒(méi)有必要和面試官抬杠,把面試官搞不爽對(duì)你一點(diǎn)好處都沒(méi)有。我在面試搜狗時(shí)就出過(guò)這問(wèn)題(直接表示對(duì)面試官的問(wèn)題的不屑),直接一面被砍掉。
著裝:盡管IT公司大多不需要西裝革履,但也別太拖沓,穿整齊些,至少給人很精神的感覺(jué)。我面試騰訊時(shí)直接搞了一件套頭衫+迷彩褲+機(jī)車(chē)帽,結(jié)果是面試官?gòu)念^到尾就沒(méi)正眼看過(guò)我,直接一面被砍掉。
交流:面試是一個(gè)交流的過(guò)程,不明白的一定要主動(dòng)詢(xún)問(wèn),面試的大忌就是面試官給了一個(gè)問(wèn)題,你一聲不吭的搞了一個(gè)小時(shí),最后發(fā)現(xiàn)搞的不是面試官問(wèn)的問(wèn)題,這時(shí)就算你很牛逼,面試結(jié)果往往也是悲劇。
7、國(guó)企
國(guó)內(nèi)的IT公司一共去了6家,拿到6個(gè)offer,面試19場(chǎng)。
百度(2輪面試+1輪終面)
百度的應(yīng)屆生面試分為3輪,2輪技術(shù)面和1輪終面,3輪面試連在一起進(jìn)行,如果搞到第1輪或第2輪就叫你回去,基本上不是悲劇就是備胎。如果進(jìn)了終面,只要不出岔子,一般問(wèn)題不大,因?yàn)榘俣让磕暾械娜朔浅6?#xff0c;印象里有1500人之多。
可能是招的人特別多從而導(dǎo)致面試官人數(shù)不夠,百度的面試在所有大公司里面幾乎是最隨意的,面試官往往都沒(méi)有經(jīng)過(guò)系統(tǒng)的面試培訓(xùn),出的題目也只是從網(wǎng)上東拼西湊,比如像C++的虛函數(shù)的實(shí)現(xiàn)機(jī)制此類(lèi)SB題目層出不窮。而且有些面試官缺乏對(duì)面試者最基本的尊重,我有幾個(gè)同學(xué)在百度面試時(shí)差點(diǎn)被面哭。
就我個(gè)人而言,我先后參加了百度的實(shí)習(xí)生面試和正式員工面試。正式員工面試給我感覺(jué)相當(dāng)不錯(cuò),流程很規(guī)范,面試官很nice,問(wèn)的問(wèn)題也說(shuō)的過(guò)去;然而實(shí)習(xí)生面試那兩個(gè)人就是翔,不但問(wèn)的問(wèn)題很二,而且不給我任何交流的空間,同時(shí)在面試過(guò)程中表現(xiàn)出一副非常不屑的神情,令人極度不爽。
此外,百度的員工(包括面試官)給我一種工作過(guò)度的感覺(jué),說(shuō)驚悚些就是印堂發(fā)黑。結(jié)合艷紅哥提到的狼性精神,我這號(hào)醬油男說(shuō)啥也不敢去。
搜狗(2輪面試)
搜狗的應(yīng)屆生面試分為4輪,2輪技術(shù)+1輪HR+一輪Manager,4輪面試是分開(kāi)的,所以會(huì)比較麻煩,畢竟來(lái)回跑來(lái)跑去的很費(fèi)時(shí)費(fèi)力。
我的搜狗面試經(jīng)歷比較詼諧,盡管面了2輪,但2輪都是一面,第一個(gè)一面是朋友幫忙推薦過(guò)去的面試,第二個(gè)一面是參加搜狗筆試獲得的面試機(jī)會(huì),從這里多少能看出搜狗招人是有點(diǎn)混亂的。
第一個(gè)一面非常囧,當(dāng)時(shí)面試官問(wèn)我C++,我表示很少用,接下來(lái)問(wèn)了若干智力題,由于被問(wèn)的有些拙計(jì),于是反問(wèn)“這種智力題有什么考察度,會(huì)做的人一下子做出來(lái),不會(huì)做的一天也搞不定”。估計(jì)這句話(huà)把面試官搞毛了,接下來(lái)的氣氛變的很緊張,后來(lái)面試官反問(wèn)我“那你覺(jué)得應(yīng)該怎么招人”,我回答“你們應(yīng)該學(xué)學(xué)微軟”。然后就沒(méi)有然后了,囧tz。
第二個(gè)一面感覺(jué)還成,因?yàn)槲夜P試的題目答得比較出彩。接下來(lái)是一個(gè)strcpy的紙上代碼和一個(gè)簡(jiǎn)單的OS生產(chǎn)者消費(fèi)者問(wèn)題,答得還算順利,可惜依然沒(méi)有然后,我懷疑可能是沒(méi)有Hire Count了。
搜狗面試給我一個(gè)很大的教訓(xùn),就是別裝逼,求職就是求職,別和面試官抬杠。在接下來(lái)的面試中,我收斂了很多。
創(chuàng)新工場(chǎng)(2輪面試+4輪終面)
創(chuàng)新工場(chǎng)本身是一個(gè)孵化公司,它的招聘流程是這樣的:工場(chǎng)進(jìn)行筆試和面試初選,然后由工場(chǎng)下面的子公司進(jìn)行復(fù)選,由于子公司眾多,因此工場(chǎng)有一個(gè)雙選會(huì),每個(gè)通過(guò)初選的求職者可以選擇3家工場(chǎng)的子公司,在這個(gè)雙選會(huì)上開(kāi)復(fù)哥很是鼓吹創(chuàng)業(yè),不過(guò)效果似乎不太理想 :-D
工場(chǎng)的初選面試有兩輪,然后是3個(gè)子公司的復(fù)選面試。和其它公司不一樣,工場(chǎng)的面試時(shí)間非常短,只有25分鐘:一個(gè)自我介紹,兩個(gè)無(wú)需寫(xiě)代碼的題目。有點(diǎn)拼人品,因?yàn)檫@么短的時(shí)間很難考察全面。復(fù)選面試大多是電面,比較簡(jiǎn)單,算法題目說(shuō)下思路就可以。順便推薦下友盟,感覺(jué)這些子公司里面這家的發(fā)展?jié)摿ψ畲蟆?br />
騰訊(1輪面試)
騰訊的應(yīng)屆生面試的組成我不太清楚,因?yàn)?輪就GG了。
騰訊的面試也讓人很火大,面試官直接拿一個(gè)laptop在那里給你放ppt,一個(gè)slide一個(gè)題目,答完下一個(gè)slide,結(jié)果是我說(shuō)的口干舌燥面試官還沒(méi)說(shuō)兩句話(huà)。題目五花八門(mén),從簡(jiǎn)歷到智力題再到為人處事,印象里答了不下七八道題目,累的一逼還沒(méi)通過(guò),尼瑪。
不過(guò)騰訊的面試中見(jiàn)到很多PLMM,目測(cè)有很多非技術(shù)崗。
人人(2輪面試+2輪終面)
人人的應(yīng)屆生面試一般是2輪面試+1輪終面,由于我的筆試和面試發(fā)揮不錯(cuò),因此又得到了一個(gè)加面的機(jī)會(huì),拿到了人人special offer,待遇非常給力。
人人的一面面試官非常nice,我當(dāng)時(shí)遲到了30分鐘,由于沒(méi)吃飯因此直接蹭了幾個(gè)面包,一邊吃一邊回答問(wèn)題一邊寫(xiě)代碼。由于一面主要考察紙上代碼,這個(gè)是我的強(qiáng)項(xiàng),因此很輕松的通過(guò)了。二面相對(duì)雜一些,數(shù)據(jù)結(jié)構(gòu),算法,設(shè)計(jì)模式,多線(xiàn)程等都有涉及,不過(guò)問(wèn)的都不深,也比較容易。
終面第一面由自我介紹+讀過(guò)的書(shū)+寫(xiě)一段代碼組成,正好剛剛讀過(guò)Sicence of programming,于是就海侃了一頓程序正確性證明的東西,并用這個(gè)證明了下自己的代碼的正確性,目測(cè)效果還不錯(cuò)。
終面第二面是一個(gè)大manager面試,這一輪主要是自己的職業(yè)發(fā)展路線(xiàn)等其它非技術(shù)問(wèn)題,聊的也比較順利,然后他直接告訴我我拿到了special offer。
人民搜索(2輪面試+1輪終面)
人民搜索的應(yīng)屆生面試由1輪算法面+1輪設(shè)計(jì)面+1輪終面組成,每一輪面試都是45分鐘,時(shí)間控制很?chē)?yán)。
和其它公司的面試不同,人搜的算法面試沒(méi)有自我介紹環(huán)節(jié),直接就是搞算法題目,至少要做兩道(難度一般,肯定會(huì)有一道動(dòng)態(tài)規(guī)劃),并在紙上寫(xiě)出完整的代碼。由于缺乏溝通,這輪面試略感生硬,不過(guò)還是比較順利的通過(guò)了。
設(shè)計(jì)面試多了一些溝通環(huán)節(jié),接下來(lái)大部分時(shí)間會(huì)討論一個(gè)系統(tǒng)的設(shè)計(jì),你需要給出這個(gè)系統(tǒng)的架構(gòu),接下來(lái)面試官會(huì)不斷的追問(wèn)如何改進(jìn)該系統(tǒng)以應(yīng)對(duì)大用戶(hù)量大數(shù)據(jù)量等極端情況。我這方面的知識(shí)不多,只會(huì)很土鱉的hash+cache,磕磕絆絆的把這輪過(guò)去了。
終面面試官是一個(gè)前google工程師,正巧當(dāng)時(shí)我在google面了好幾輪,比較了解google面試的套路,因此很順利的就通過(guò)了。
總之,人民搜索的待遇比較給力,而且能搞定戶(hù)口,如果想在北京長(zhǎng)待而且視戶(hù)口很重,那么人搜值得一試。
8、外企
國(guó)外的IT公司一共去了4家,拿到3個(gè)offer,面試16場(chǎng)。
微軟(2輪面試+1輪終面)
微軟從去年開(kāi)始大規(guī)模擴(kuò)招,印象里以前應(yīng)屆生招幾十人,現(xiàn)在一個(gè)STC(互聯(lián)網(wǎng)工程院)就能招二百余人,因此面試難度也有所下降,面試輪數(shù)由以前的5輪左右下降到現(xiàn)在的3輪左右。
這里多提一句,很多人把微軟和MSRA(微軟亞洲研究院)劃等號(hào),甚至有人認(rèn)為進(jìn)了微軟就等于進(jìn)了MSRA,其實(shí)微軟有很多部門(mén),包括STC、STB、MOD等部門(mén),MSRA只是其中一個(gè)研究性質(zhì)很濃的部門(mén)。不過(guò)MSRA要求極高,和其它部門(mén)不同,一般MSRA的FTE只招博士,很少招碩士,招聘需要進(jìn)行七輪甚至以上的嚴(yán)格面試,難度絲毫不亞于谷歌。而MSRA的實(shí)習(xí)生則容易很多,名校學(xué)生一般有內(nèi)部推薦就可以搞定。
我之前在微軟進(jìn)行過(guò)實(shí)習(xí),因此直接參加了實(shí)習(xí)生轉(zhuǎn)正面試,三輪面試分別由SDET,SDE和一名高級(jí)部門(mén)經(jīng)理進(jìn)行面試,面試的流程可以參考我之前提到的常規(guī)面試流程。與國(guó)內(nèi)IT公司不同,微軟不會(huì)問(wèn)語(yǔ)言細(xì)節(jié)或是OS細(xì)節(jié)之類(lèi)的人品問(wèn)題(就是那種上網(wǎng)搜一下就明白的題目,C++的虛函數(shù)實(shí)現(xiàn)機(jī)制是此類(lèi)非常典型的人品題),而會(huì)集中在算法設(shè)計(jì)和程序設(shè)計(jì)上,其中應(yīng)屆生面試又以紙上代碼最為嚴(yán)格,即使到了終面依然會(huì)有紙上代碼編寫(xiě)環(huán)節(jié),盡管不會(huì)考察特別復(fù)雜的算法,但對(duì)細(xì)節(jié)要求的非常嚴(yán)格。好在我之前有微軟幾位SDE的指導(dǎo),紙上代碼功夫還是不錯(cuò)的,并且實(shí)習(xí)期間獲得了不錯(cuò)的review,因此比較順利的通過(guò)了微軟實(shí)習(xí)轉(zhuǎn)正面試。
微策略(2輪面試)
微策略是一家進(jìn)入中國(guó)沒(méi)多久的外企,規(guī)模不大,工作內(nèi)容主要是大數(shù)據(jù)分析+數(shù)據(jù)可視化,面試一般由四輪到六輪面試組成。我比較悲催的直接掛在第二輪面試。
微策略是我面試的外企中唯一全程使用英語(yǔ)面試的公司,面試官給人的感覺(jué)是很smart,但不nice,具體原因我后面說(shuō)。
第一輪面試主要問(wèn)了些面向?qū)ο笙嚓P(guān)的內(nèi)容,接下來(lái)是一些智力題目,我有一道題目(高樓扔雞蛋)沒(méi)有說(shuō)清楚,盡管答案是正確的,但我的推導(dǎo)思路比較繁瑣,因此浪費(fèi)了大量的時(shí)間和面試官進(jìn)行溝通。事后回想下面試官還是很nice的,主要還是自己平時(shí)想問(wèn)題淺嘗輒止,才會(huì)敗在這道題上。
第二輪面試就讓我感到不爽了,我在自我介紹時(shí)直接被面試官打斷,以至于自己的亮點(diǎn)經(jīng)歷說(shuō)都說(shuō)不出來(lái),而且在后續(xù)的編程環(huán)節(jié)中,面試官拒絕和我進(jìn)行交流,我寫(xiě)完了題目他又說(shuō)這個(gè)和他要求的不太一樣,當(dāng)時(shí)我心里就開(kāi)始暗罵wtf了。估計(jì)是前一輪被評(píng)為weak hire以至于這一輪的面試就是走走形式吧。
雅虎(3輪面試+1輪終面)
雅虎的面試分為3輪技術(shù)面和1輪終面,在同一天完成。盡管雅虎公司一直給我一種搖搖欲墜的感覺(jué)(經(jīng)常有傳言雅虎可能會(huì)被收購(gòu)),但雅虎公司的員工給我感覺(jué)都很nice且很smart,而且比微軟的員工要有活力許多。
三輪技術(shù)面試有兩輪是典型的技術(shù)面,自我介紹+技術(shù)提問(wèn),由于我在簡(jiǎn)歷上提到“閱讀了120本以上的計(jì)算機(jī)經(jīng)典書(shū)籍”,因此被問(wèn)到了“看過(guò)最經(jīng)典的計(jì)算機(jī)書(shū)”這樣的問(wèn)題,我拿Brian Kernighan和Rob Pike的The practice of programming吹了一陣,算法題目相對(duì)微軟要難一些,除了動(dòng)態(tài)規(guī)劃,也涉及到了后綴數(shù)組等不太常見(jiàn)的數(shù)據(jù)結(jié)構(gòu),還好之前有所準(zhǔn)備,所以回答的還不錯(cuò)。
終面的面試官是一名移動(dòng)部門(mén)的老大,問(wèn)了一些數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)和職業(yè)規(guī)劃的問(wèn)題,并用英文進(jìn)行了一小段交流,由于這些問(wèn)題準(zhǔn)備的很充分,因此跟他聊的比較high,終面也很順利的通過(guò)了。
Google(7輪面試)
Google的面試輪數(shù)不定,如果表現(xiàn)良好,4輪面試就可以拿到offer,但如果有某輪面試表現(xiàn)一般,可能會(huì)進(jìn)行加面來(lái)進(jìn)行確認(rèn)面試者是否合格,拿我自己來(lái)說(shuō),進(jìn)行了7輪面試(據(jù)說(shuō)有進(jìn)行到10輪以上的,不過(guò)無(wú)法確認(rèn)可信性)。Google是典型的工程師文化工程師面試,沒(méi)有終面這個(gè)說(shuō)法,每個(gè)面試官都有一票否決權(quán),加上每個(gè)面試官考察的點(diǎn)都不一樣,因此Google面試是我經(jīng)歷過(guò)的難度最高的面試。
其實(shí)Google的面試我本來(lái)沒(méi)抱多大希望,因?yàn)镚oogle一直給我可望不可及的感覺(jué),因此面試時(shí)也很放松,這種“自暴自棄”的心態(tài)反而讓我發(fā)揮的不錯(cuò),一步一步走到最后,并拿到offer。
Google的面試每一輪大約45分鐘,時(shí)間卡的比較嚴(yán)格。面試題目肯定會(huì)包含算法和程序設(shè)計(jì)(一般體現(xiàn)為紙上代碼),同時(shí)包含其它各種各樣的問(wèn)題,我經(jīng)歷了策略題(設(shè)計(jì)一種策略從而在某個(gè)游戲中達(dá)到優(yōu)勝)、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)、系統(tǒng)設(shè)計(jì)、白盒/黑盒測(cè)試、項(xiàng)目介紹等五花八門(mén)的題目,題目的類(lèi)型視面試官的類(lèi)型而定:學(xué)術(shù)型的面試官(比如說(shuō)名校PHD)問(wèn)的題目偏重算法,工程型的面試官(大多是社招的Googler)問(wèn)的題目偏重項(xiàng)目經(jīng)歷。面試題目并不像網(wǎng)上傳說(shuō)的那么困難,但是面試官會(huì)拋出很多Probing question,讓你給出一個(gè)optimal solution,這著實(shí)讓我拙計(jì)了幾次,不過(guò)即便一時(shí)間想不到最優(yōu)解也不要緊,一邊保持和面試官的交流一邊試探各種可能的思路,這里再次推薦下Polya的How to solve it。
由于面試輪數(shù)很多,因此這里就不依次說(shuō)每輪面試的細(xì)節(jié),可以參考下面的Google面試經(jīng)歷鏈接。
http://blog.yxwang.me/2012/12/job-hunting-in-usa-1/
《面試體驗(yàn):Google 篇》
9、總結(jié)
筆試難度:微策略>人搜>人人>雅虎>搜狗>創(chuàng)新工場(chǎng)>騰訊
面試難度:Google>雅虎>人搜>微策略>微軟>人人>百度>騰訊=搜狗=創(chuàng)新工場(chǎng)
待遇:Google>人人>人搜>雅虎>微軟>百度>創(chuàng)新工場(chǎng)旗下子公司
毫不猶豫的選擇了Google,盡管我自己是.Net流,天天折騰VS和C#,linux和unix啥的都沒(méi)碰過(guò),但就前景來(lái)看,不得不承認(rèn)Google比微軟強(qiáng)太多了。
老實(shí)說(shuō)我自己進(jìn)Google感覺(jué)像做夢(mèng),畢竟不是搞ACM的,大學(xué)成績(jī)一般,什么獎(jiǎng)學(xué)金都沒(méi)拿過(guò)。
?
但回想一下,這也不全是靠運(yùn)氣:從07年(那時(shí)我大三,一行代碼沒(méi)寫(xiě)過(guò))掛科開(kāi)始,決心開(kāi)始搞計(jì)算機(jī)這行,編寫(xiě)自己的第一行靠譜代碼,獨(dú)立完成第一個(gè)編程作業(yè),閱讀書(shū)籍,不懂的就來(lái)D版詢(xún)問(wèn)各路大神(這里謝過(guò)FloridDong,UGLee等大神),然后一邊實(shí)習(xí)一邊讀書(shū)學(xué)習(xí),花了半年考研考到帝都,在考研結(jié)束的那段時(shí)間(四個(gè)月假期)精讀了數(shù)據(jù)結(jié)構(gòu),計(jì)算機(jī)組成等基礎(chǔ)經(jīng)典書(shū)籍,補(bǔ)習(xí)自己的基礎(chǔ)。到帝都之后,在一場(chǎng)即興技術(shù)口譯之后,獲得去微軟實(shí)習(xí)的機(jī)會(huì),然后在實(shí)習(xí)中學(xué)習(xí)編譯器知識(shí),創(chuàng)作了自己的編程語(yǔ)言和編譯器,加入朋友的創(chuàng)業(yè)團(tuán)隊(duì)并合作完成了AppStore TOP1的應(yīng)用,離開(kāi)團(tuán)隊(duì)獨(dú)立搞定Windows Phone 7上最火的撥號(hào)應(yīng)用、閱讀應(yīng)用和AV應(yīng)用并在移動(dòng)互聯(lián)網(wǎng)中賺到自己的第一桶金,通宵一周完成畢業(yè)小論文發(fā)表并推薦到核心期刊,為了求職寫(xiě)了三本紙上代碼,閱讀the Science of programming學(xué)會(huì)如何證明自己代碼的正確性,100%的簡(jiǎn)歷通過(guò)率+100%的筆試通過(guò)率,最后進(jìn)入Google。
總結(jié)
- 上一篇: Introduction to Algo
- 下一篇: 九大排序算法再总结