本人從事在線教育c++十年工作經(jīng)驗現(xiàn)在精心整理了一套從小白到項目實踐開發(fā)各種學(xué)習資料如果你想學(xué)想加入我們請關(guān)注我在私信回復(fù)“編程”就可以領(lǐng)取學(xué)習資料V⒏拧S住但荤!
首先說說我拿到的offer情況:
微軟,3面->終面涧至,搞定
百度腹躁,3面->終面,口頭offer
搜狗南蓬,2面纺非,悲劇
騰訊,1面赘方,悲劇
布丁移動烧颖,3面,搞定
涂鴉游戲窄陡,3面炕淮,搞定
友盟,3面->CEO面泳梆,搞定
雅虎鳖悠,4面->終面,搞定
微策略优妙,2面,悲劇
人民搜索憎账,3面->終面套硼,搞定
人人,2面+終面+Special面胞皱,搞定
Google邪意,7面,搞定
求職經(jīng)歷分為定位反砌、準備雾鬼、簡歷、筆試和面試這五個部分宴树,大家挑感興趣的看就成策菜。
我的求職經(jīng)歷適用但不限于碼農(nóng),不適用與企事業(yè)單位(據(jù)說是完全不同的考察標準和流程)。廢話比較多又憨,大家耐心忍受翠霍,有什么問題可以跟帖提問。
2蠢莺,定位
教育經(jīng)歷:本科在大連某工科院校寒匙,由于GPA比較慘烈+掛科,所以沒保成研躏将,畢業(yè)后修了一年英語雙學(xué)位锄弱,然后到帝都計算機職業(yè)教育學(xué)院接受再教育。
技術(shù)能力:屬于半碼農(nóng)半產(chǎn)品的類型祸憋,代碼編的過去(搞過compiler)棵癣,也有一些拿的出手的產(chǎn)品(幾十w的用戶量),一句話描述:幾十w代碼+幾十w用戶的Coder夺衍。
專業(yè)能力:非ACM出身狈谊,算法拙計但基礎(chǔ)扎實。由于單身所以看了N多書(CS+心理+經(jīng)管+歷史)沟沙,扯淡能力強大河劝,碰到非專業(yè)的各種秒殺,碰到專業(yè)各種拙計矛紫。
實習經(jīng)歷:大四在一家ds公司實習過一年赎瞎,攢了不少代碼量;后來在MS斷斷續(xù)續(xù)的待了一年多颊咬,雖說是打醬油务甥,但在眾大神的光環(huán)籠罩下,水平至少提了三個檔喳篇。
目標公司:由于百度給我的印象實在很差敞临,而MS給我的印象又實在很好,所有就有了下面的排名:
外企(Google麸澜、MS挺尿、Yahoo等)>國內(nèi)互聯(lián)網(wǎng)(阿里、騰訊炊邦、百度编矾、網(wǎng)易等)>企事業(yè)單位(基本不考慮)
3,準備
經(jīng)常在論壇里看到各種求職抱怨貼馁害,其實在抱怨前應(yīng)該仔細想一想窄俏,為了求職,你付出了多少碘菜?看到人家找工作找的順找的爽凹蜈,有沒有想過人家背地里付出了多少努力和心血限寞?別拿官二代和富二代啥的說事,真ds只會拿一堆自身以外的理由掩飾自己的懶惰踪区。
不要認為求職就是發(fā)個簡歷等面試通知昆烁,對于大神來說不用發(fā)簡歷牛逼公司也會圍著你轉(zhuǎn),對于ds來說就是預(yù)則立不預(yù)則廢缎岗,中國缺什么就是不缺人静尼,不下功夫準備很有可能連個P都沒有。
其實很多ds就是怕預(yù)也廢所以干脆不準備直接上传泊,這樣搞不定的話鼠渺,就有借口說不是自己蠢而是自己沒準備,可以捍衛(wèi)自己的智商高地不被侵犯眷细。身邊有不少這樣的實例拦盹,典型的死要面子活受罪,活該你找不到工作溪椎。
我的微軟mentor曾提到過普舆,我的實習面試表現(xiàn)一般,但后來表現(xiàn)出的動手能力大大超出之前面試的預(yù)估校读,而有些面試表現(xiàn)很出色沼侣,問題對答如流的選手,入職之后反而不是很理想歉秫,至少沒有達到面試時發(fā)揮出的水準蛾洛。
這說明一個問題,就是筆試面試雁芙,準備和不準備會差異很大轧膘。如果你的簡歷不是那么NB,那就只能靠筆試和面試的加分撐場面兔甘。身邊經(jīng)常有同學(xué)納悶這樣代碼都編不利索的傻屌都能進MS為什么我不能進谎碍,答案往往很簡單:人家比你多準備了一個月。平時電腦上寫程序可能很利索裂明,筆試面試時在紙上寫寫試試你就知道什么叫拙計椿浓。
IT公司的筆試和面試的題量都不大(相對于企事業(yè)單位和銀行動輒上百道選擇題的題量,算是很少)闽晦,一般十幾道選擇題,三四道大題就算題量很大提岔。但計算機的東西實在又是太多仙蛉,程序設(shè)計、數(shù)據(jù)結(jié)構(gòu)碱蒙、算法設(shè)計荠瘪、操作系統(tǒng)夯巷、體系結(jié)構(gòu)、編譯原理哀墓、數(shù)據(jù)庫趁餐、軟件工程等分支,編譯的話太難(一千個碼農(nóng)里也沒幾個人能在紙上寫一個最基礎(chǔ)的遞歸下降LLParser)篮绰,軟件工程后雷、體系結(jié)構(gòu)、數(shù)據(jù)庫這些太水(不是說這些分支沒用吠各,而是它們很難考察臀突,尤其對應(yīng)屆生來說這些都是些文字游戲,比如說面向?qū)ο蟮娜匚逶瓌t贾漏,有個鳥用)候学,這么一排除,再把數(shù)據(jù)結(jié)構(gòu)和算法設(shè)計一合并纵散,就剩下程序設(shè)計梳码、算法和操作系統(tǒng)。沒錯伍掀,這三項搞定掰茶,國內(nèi)外IT公司通殺。
因此我的筆試和面試準備很簡單硕盹,就是重溫+突擊程序設(shè)計符匾、算法和操作系統(tǒng)。下面是我的筆試+面試準備內(nèi)容:
程序設(shè)計:
1瘩例,把基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu)的C語言實現(xiàn)在紙上寫三遍以上啊胶,用我能想到的最精簡最優(yōu)化的方法
2,閱讀CARM和TCPL垛贤,確保不會遺漏C語言的每個細節(jié)
3焰坪,重溫之前自己做過的靠譜項目,并總結(jié)里面的關(guān)鍵難題和解決思路
4聘惦,重讀Writing Solid Code某饰、Elements of Programming、Practice of programming
5善绎,閱讀Science of Programming黔漂,做到可以證明自己的程序的正確性(前條件+后條件+不變式)
算法:
1,重讀Algorithm Design Manual禀酱,重點閱讀Dynamic Programming和Backtraverse
2炬守,重讀Programming Pearls和More Programming Pearls,并完成所有課后題
3剂跟,獨立解決編程之美里面的題目(國內(nèi)不少企業(yè)選題用的這本書)
4减途,完成Careercup里Amazon酣藻、Google和Microsoft這三個分類下面的前20頁面試題
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)鍵點
從七月底開始一直到十一月怕轿,花了接近四個月,很多東西都是一邊面試一邊準備:面試->發(fā)現(xiàn)盲點->修復(fù)盲點砖第。
此外列出一些面試筆試題的資源撤卢,此外感謝基友@codewarrior之前的推薦:
1,Crack over the code interview
很靠譜的筆試面試指導(dǎo)手冊
2梧兼,CareerCup
集齊了大量的真實筆試面試題放吩,去外企的一定得看
3,TopCoder
如果不是ACM羽杰,練這個就夠渡紫,其實面試也不會問太難的算法,哪怕是google
4考赛,編程之美
盡管題目有些過時惕澎,但依然很實用,三星題目適合一個人仔細想
此外也說下一些不靠譜的資源:
1颜骤,IT公司面試100題
這個恐怕是國內(nèi)傳的最多的IT面試題
題目本身還可以唧喉,但那個出題人本身代碼功底一般,給出的答案包含大量錯誤和缺陷忍抽,導(dǎo)致參考價值驟降
2八孝,程序員面試寶典
翔一樣的書,各種錯誤概念的堆積鸠项,如果一個錯誤給我一塊錢干跛,我能從這本書搞成萬元戶。如果去正規(guī)公司拿這本書準備祟绊,包你被黑出翔楼入。
4,簡歷
在MS時牧抽,老大曾讓我?guī)兔φ袔讉€靠譜的實習生嘉熊,因此我收到了幾百封簡歷,過了一把HR的癮扬舒。這里說說自己在看簡歷時發(fā)現(xiàn)的幾點:
1记舆,可讀性。不要用Word或壓縮包呼巴,用PDF泽腮。此外在郵件里面用純文本加上自己的簡介,簡化對方閱讀的操作衣赶。要記住HR一天看的簡歷海的去了诊赊,壓縮包是HR最痛恨的格式,因為解壓了就不知道扔哪去了府瞄,有時干脆就不看碧磅;Word有版本問題,10的docx到了07往往被黑出翔遵馆。還有就是對方有可能不在PC上讀郵件鲸郊,因此純文本的簡介非常有必要。
2货邓,群發(fā)秆撮。不要給人群發(fā)的嫌疑,看清楚目標職位和目標公司换况,我發(fā)的工程院招聘貼职辨,收到的幾百封簡歷里面有十余封是投到微軟亞洲研究院,有幾個干脆寫“敬愛的某領(lǐng)導(dǎo)”戈二,尼瑪這不找抽么舒裤。
3,設(shè)計觉吭。特別提一下設(shè)計腾供,很多電工的簡歷就是翔,丑的一逼鲜滩,對齊沒有伴鳖,字體拙計,要點不明绒北。再放到幾百份幾千份簡歷里面黎侈,活該你被忽略。建議所有電工投簡歷前閱讀《給大家看的設(shè)計書》闷游,至少搞明白里面的C.R.A.P四原則峻汉。不要小看設(shè)計的威力,在簡歷內(nèi)容接近的情況下脐往,良好的設(shè)計會大大加分休吠。
4,篇幅业簿×鼋福控制在一頁以內(nèi)。倒不是說不能寫兩頁梅尤,而是HR沒時間看兩頁這么多柜思。而且就我看過的幾百封簡歷而言岩调,凡是超過兩頁的沒一個靠譜,有這么高的先驗概率赡盘,HR才沒工夫一個個篩号枕,反正中國有的是人。
5陨享,重點葱淳。一定要有重點,做到讓HR通過簡歷在20秒內(nèi)確定你靠不靠譜抛姑≡薏蓿可以用加黑字體進行視覺引導(dǎo)。
6定硝,措辭皿桑。甭搞“渴望得到這份工作”、“期待在xxx的工作機會”這樣的句式喷斋,除了顯得你低端唁毒,其它毛用沒有。
7星爪,別字浆西。千萬不要出現(xiàn)錯別字,別字簡歷一般直接干掉顽腾。一頁的簡歷都能出問題近零,一般不會靠譜。
因為看了很多不靠譜的簡歷抄肖,我對簡歷重要性的理解要比其他人深刻很多久信。首先花了一周把原來兩頁半的紙縮到一頁內(nèi),然后找UI朋友幫忙調(diào)整了版式漓摩、縮進和字體裙士,并找UX朋友幫忙進行重點調(diào)整以進行視覺引導(dǎo),然后在PC和手機上進行了簡歷可讀性測試管毙。從而獲得了100%的簡歷通過率腿椎。
此外,優(yōu)先走內(nèi)部推薦夭咬,這樣最有效率啃炸,所以結(jié)識各個公司的朋友是非常有必要的。
海投簡歷既沒必要也沒效率卓舵,有這個時間不如改改簡歷來的實在南用。
相關(guān)書目:
1,給大家看的設(shè)計書,讓你的簡歷看起來不像一坨翔裹虫。
2肿嘲,Google Resume烟逊,如何寫出靠譜的簡歷,進行靠譜的求職昧识。
5诅诱,筆試
如之前所說,IT公司的筆試相對單純(程序設(shè)計蜒茄、算法和操作系統(tǒng)),而且范圍較窄,有不少題目被出了一遍又一遍耸采。因此市面上存在大量面試/筆試寶典之類的書籍和題集。
準備國內(nèi)的小公司工育,這些面試/筆試題集還靠的住虾宇,因為小公司往往不會在招人環(huán)節(jié)上下太大的成本,因此他們的試卷一般就是東拼西湊的網(wǎng)上題目如绸;對于大型公司來說嘱朽,這些題庫或是寶典就顯的不夠用了,尤其是外企怔接。
所以不要把希望放在運氣或是臨陣磨槍上搪泳。就我自己而言,筆試準備了一個多月扼脐,盡管這個時間并不算多岸军,但由于自己平時一直在閱讀CS的基礎(chǔ)書籍,并做了大量的紙上代碼練習瓦侮,因此筆試通過率也達到了100%(實際上是由于我筆試的公司題目都略簡單艰赞,據(jù)說EMC和網(wǎng)易游戲的筆試難度很高,但當時由于時間沖突沒有去成肚吏,因此搞出了這個數(shù)據(jù))方妖。
多說無益,這里拿搜狗罚攀、騰訊党觅、微軟和雅虎這四家公司的筆試試卷為例,簡單的介紹下IT公司的筆試題型和題目組成坞生。
搜狗:
題型由十余道不定項選擇題和三道算法題目組成仔役,要求在兩個小時完成。選擇題難度一般是己,比較雜又兵,也有一些原題;三道算法題目有點意思,至少網(wǎng)上是很難找到沛厨,需要一定的算法設(shè)計能力(主要是動態(tài)規(guī)劃)才能給出解決宙地。
搜狗的筆試試題按職位分的很細,從C++開發(fā)工程師到iOS開發(fā)工程師再到數(shù)據(jù)挖掘研究工程師十余個職位逆皮,每個職位的題目都有一套獨立的試卷宅粥。但是研發(fā)的算法題是一樣的,最后一道算法題很有意思电谣,我花了一個多小時才想到利用組合數(shù)學(xué)里面的知識(多元一次方程非負解)給出設(shè)計方案秽梅,后來和面試官聊這道題時他們也挺吃驚,因為我的方案比他們的答案還要優(yōu)化剿牺。
騰訊:
題型由二十道單項選擇題企垦、六道填空題和兩道算法題組成,其中兩道算法題是二選一晒来。難度比較簡單钞诡,題型很廣,既有程序設(shè)計語言的細節(jié)也有概率統(tǒng)計的基本知識湃崩,甚至還有C語言的創(chuàng)始人是誰這樣的搞笑問題荧降,從選擇題上能看得出騰訊在筆試題上還是下了點功夫的,但算法題就太簡單了點攒读,至少我認為考不出什么區(qū)分度朵诫。
騰訊的筆試試題也是按職位劃分的,但就沒有搜狗那么細了整陌,研發(fā)類筆試題目是統(tǒng)一的拗窃,要求一個半小時完成,印象里自己四十分鐘就搞定收工泌辫,很多人都提前交了試卷随夸,因為確實很簡單。
微軟:
題型只有二十道不定項選擇題震放,難度較難宾毒,要求在一小時四十分鐘完成。難度較難殿遂,覆蓋面非常廣诈铛,從設(shè)計模式,算法分析墨礁,代碼閱讀到C++語言特性幢竹,甚至連冷門的函數(shù)式程序設(shè)計語言都有涉及。
微軟的筆試題目BT之處在于其獨特的積分機制:答對了加分恩静,不答無分焕毫,答錯了倒扣蹲坷。這就使得很多ds答完試卷感覺自我良好但實際已經(jīng)被倒扣出翔。以最后一道題為例邑飒,答對了加7分循签,答錯倒扣13分,相當于一下子損失20分疙咸。所以微軟的筆試題會做就得做對县匠,不會做就別蒙,要不更慘撒轮。
此外乞旦,微軟的筆試題是英文的,加上時間比較短腔召,有些人題都讀不完杆查,有些ds連functional language是什么都不知道,自然敗的很慘臀蛛。
雅虎:
題型由十余道單項選擇題,一道設(shè)計題目和六道算法題目組成崖蜜,其中六道算法題目是六選二浊仆,要求在兩個小時完成。難度尚可豫领,主要考察編程能力和算法設(shè)計能力抡柿。由于時間充裕,盡管是六選二等恐,為了炫技洲劣,我直接答了里面的五道題目。然而面試時發(fā)現(xiàn)面試官判卷子時并沒有把多答的題目考慮在內(nèi)课蔬,囧tz囱稽。
相對于微軟,雅虎的題目覆蓋面就窄了許多二跋,沒有一道題目跳出程序設(shè)計战惊、算法和操作系統(tǒng)這個圈的,只要勤加準備扎即,很容易通過吞获。
雅虎的筆試題也是英文,因此英語作答較為合適谚鄙,此外各拷,由于算法題目簡單,給出optimal solution是必須的闷营,比如說在logN的時間內(nèi)算fibonacci number是必備的知識烤黍,能寫binary search就不要寫sequential search等等。
從筆試題可以明顯看出,國外的大型IT公司(比如雅虎蚊荣,微軟和谷歌等)并不在意你現(xiàn)在的skill set初狰,而更看重你的potential,因此題目大多很基礎(chǔ)互例,并具備相當?shù)纳疃壬萑耄源_保你對CS有深刻的理解并能夠走的很遠;而國內(nèi)的IT公司(比如百度媳叨、搜狗和人人等)更看重你現(xiàn)在的skill set腥光,因此會出現(xiàn)不少語言特性,OS操作之類的具體題目糊秆,以確保你能夠以盡快的速度上手干活武福,至于能發(fā)展到啥程度他們就不care了。
因此痘番,準備筆試題的時候要確定自己的目標公司:主攻國內(nèi)公司的話捉片,C++的語言特性、linux基本命令操作這些細節(jié)也得準備汞舱,因為會有大量此類題目伍纫;主攻國外公司的話,良好的英文閱讀能力必不可少昂芜,此外優(yōu)秀的代碼理解和代碼編寫能力也不可或缺莹规。
此外,不要在筆試題目里犯低級錯誤泌神,不要抄襲(面試時經(jīng)常會問到筆試題)良漱,保持書寫的工整(尤其是代碼題目和問答題目)。
考慮到幾乎所有的公司都有編程題目欢际,也就是在紙上寫代碼母市,這里推薦幾本相關(guān)書籍:
1,Elements of programming style 2nd幼苛,寫出良好風格的代碼窒篱。紙上代碼一般不長,但短短幾行代碼往往可以看出這個人的水準舶沿,風格很差的代碼往往會被pass掉墙杯。
2,Algorithm design manual 2nd括荡,作為非ACM出身的碼農(nóng)高镐,這本書比算導(dǎo)實用很多,課后題也很實在畸冲,對回溯嫉髓,動態(tài)規(guī)劃這些編程技巧講的非常清楚观腊。
3,C interfaces and implementation算行,無論是面試還是筆試梧油,一般都會用C寫程序,這本書包含大量的工業(yè)級C代碼州邢,絕佳的參考和模仿素材儡陨。
最后推薦下Elements of programming和Structure and interpretation of computer programs,這兩本書難度很搞量淌,需要大量的時間閱讀骗村,不適合臨場閱讀準備,但讀過后呀枢,寫出的代碼絕逼會上兩個層次胚股,這里我就不多介紹了。
6裙秋,面試
之前有人PM我關(guān)于海投簡歷的問題琅拌。我個人不建議海投簡歷。因為對能力弱的人來說摘刑,海投簡歷只會讓他信心更差财忽,沒有任何效果,有投簡歷的時間還不如精心準備少數(shù)幾個好公司泣侮;而對能力強的人來說,海投簡歷之后會有大量的筆試和面試紧唱,筆試很耗體力活尊,面試更很耗體力,不但需要打車或坐地鐵在各個公司間穿梭漏益,而且需要在面試時保持精神的高度集中蛹锰,一般面下來都會精疲力盡,導(dǎo)致接下來的發(fā)揮不好绰疤。所以還是之前所說铜犬,優(yōu)先內(nèi)部推薦,然后再根據(jù)自己的情況和職業(yè)發(fā)展路線選擇公司轻庆,選擇職位癣猾,不用選太多,集中精力攻破領(lǐng)域內(nèi)的TOP3即可余爆。就我自己而言纷宇,求職期間,我一共投了12封簡歷蛾方,參加了12家公司的面試像捶,一共面了35輪上陕。說多不多,說少不少拓春,因為自己投簡歷時也是本著互聯(lián)網(wǎng)公司為主释簿,小公司和企事業(yè)單位壓根沒有投,精準投放的好處在于可以集中精力準備同一類型的公司硼莽,從而達到不錯的效果庶溶。
關(guān)于簡歷海投的問題就說到這里,接下來講講IT公司的面試沉删。需要注意的是我這里聊的都是應(yīng)屆生面試渐尿,社會招聘面試可能會有所區(qū)別,但整體流程不會有太大差異矾瑰。
盡管筆試題會有所差別砖茸,但IT公司面試的流程大同小異:標準的技術(shù)面試一般有45分鐘到60分鐘,大約分為三個階段:
1殴穴,自我介紹(5~10分鐘):
這個環(huán)節(jié)的主要目的在于建立面試官和求職者之間的溝通凉夯,面試官已經(jīng)掃過你的簡歷,但需要對你有進一步的了解采幌,以便建立一個初步印象劲够,并便于進行接下來的技術(shù)提問,所以這個環(huán)節(jié)最常見的問題無外乎“進行一下自我介紹”休傍,有時會加上3分鐘或是5分鐘的時限征绎,有時會詢問“說說你最得意的項目/作品”之類的變體問題。
由于這個環(huán)節(jié)相對固定磨取,因此準備起來相對容易人柿,但即便如此,面試初期時我在自我介紹環(huán)節(jié)也犯過不少錯誤忙厌。這里以我的經(jīng)歷簡單的總結(jié)下這個環(huán)節(jié)的要點:
1凫岖,言簡意賅,突出亮點
面試初期時逢净,我犯的一個很大的問題就是自我介紹廢話太多哥放,諸如“出生自xx省xx市”,“自我評價xxx”之類的屁話連篇爹土。要知道技術(shù)面試不是相親甥雕,這里的自我介紹不是相親里面的查戶口本,而是要了解你這個人靠不靠譜着饥,牛逼不牛逼犀农。如何在3分鐘內(nèi)讓別人覺得你牛逼呢?很簡單宰掉,說且僅說你最牛逼的事跡呵哨,讓對方留下深刻印象赁濒。就技術(shù)面試而言,牛逼的事跡包含三方面:做過的項目孟害,讀過的書拒炎,認識的人。
如果實在想不出來有啥牛逼事跡挨务,那就比較難辦击你。說實話,換做你是面試官谎柄,招一個履歷毫無亮點的人進來有何用丁侄?
2,緊貼簡歷
面試官了解你的另外一個途徑就是簡歷朝巫,然而短短一兩頁的簡歷很難說明白你簡歷項目中的亮點和難點鸿摇。就算你不提及,面試官也會在簡歷中挑他感興趣的點進行提問劈猿,因此自我介紹的內(nèi)容應(yīng)該是簡歷的補充拙吉。這樣既能留給面試官不錯的印象,也能有效節(jié)省時間揪荣,留出更多的時間進行技術(shù)提問環(huán)節(jié)和問答環(huán)節(jié)筷黔。
此外,千萬不要搞出自相矛盾仗颈,比如說簡歷講的做了A你在自我介紹中又說是B佛舱,這就不是拙計的問題了。
3挨决,了解公司需求
不要試圖用一套自我介紹來搞定所有公司名眉,除非你的簡歷只有一句話(”Exhausted graphic programming”或是”I wrote python”等)。不同的公司有不同的需求凰棉,在Google面前大談.net技術(shù)顯然不是什么好的選擇(我在google一面中就做過這種挫事)。面試之前要進行詳細的調(diào)研陌粹,了解公司和職位的需求撒犀,然后根據(jù)他們的需求定制自己的自我介紹和簡歷,效果會更好掏秩。
2或舞,技術(shù)提問(35~45分鐘):
通過自我介紹環(huán)節(jié),面試官會對你有一個大概的評估蒙幻,接下來會通過一系列深入的問題考察你的項目經(jīng)歷和技術(shù)能力映凳。所以自我介紹環(huán)節(jié)不要吹牛逼,技術(shù)面試是很實在的東西邮破,你有幾斤幾兩問幾下就出來诈豌,根本忽悠不過去仆救。
按照MS的分類,技術(shù)面試問題分為三類:
1矫渔,Behavior questions:此類問題針對面試者的過往經(jīng)歷彤蔽,一方面考察面試者的表達能力和實際經(jīng)驗,一方面也可以排除掉一堆在簡歷上吹牛逼的真ds:
“說說你最牛逼的項目庙洼?”
2顿痪,Hypothetical questions:此類問題會假設(shè)出一些場景,讓面試者進行作答油够,主要考察面試者的應(yīng)變能力和實際經(jīng)驗:
“給你三天蚁袭,你會如何把xx項目做得很牛逼?”
3石咬,Probing questions:如果前兩類問題答的不錯揩悄,面試官往往會追加一些問題,以探測面試者能夠走多遠碌补,此類問題的出現(xiàn)也是一個標志虏束,面試官對你之前的表現(xiàn)感覺還不錯:
“你會如何改進你做過的最牛逼的項目?”
就具體技術(shù)問題而言厦章,考察題目視你的應(yīng)聘職位和你的過往經(jīng)歷而定镇匀,開發(fā)崗會側(cè)重代碼編寫和系統(tǒng)設(shè)計,測試崗會更注重測試用例的編寫等細節(jié)袜啃,產(chǎn)品崗要對線框圖汗侵,交互設(shè)計有了解。不過算法設(shè)計和代碼編寫這兩塊是肯定有的群发,畢竟這是程序員的看家功夫晰韵,這個搞不定就沒有然后了。
算法設(shè)計這塊我就不多說了熟妓,不搞ACM的碼農(nóng)沒啥發(fā)言權(quán)雪猪。代碼編寫的話這里多說兩句:和平時的開發(fā)不同,面試時的代碼往往是在紙上搞的起愈,而非IDE只恨。很多代碼寫的還不錯的選手往往會在紙上代碼這個環(huán)節(jié)被虐的翔尿齊飛,限于篇幅原因我就不多介紹紙上代碼的技巧了抬虽,還是那句話官觅,多練習。我自己把Software Tools阐污、Elements of programming和C interface and implementation中的代碼在紙上寫過幾遍休涤,又把常見的面試題目練習了三遍,因此紙上代碼環(huán)節(jié)從來沒出過問題笛辟。
3功氨,問答環(huán)節(jié)(5~10分鐘):
如果前兩個環(huán)節(jié)進展順利序苏,就會進入最后的問答環(huán)節(jié)。這個環(huán)節(jié)面試官一般會讓面試者提幾個感興趣的問題疑故,以增進相互的了解杠览。
相對于前兩個環(huán)節(jié),這個環(huán)節(jié)會輕松很多纵势。不過依然要注意踱阿,關(guān)于面試表現(xiàn)的問題最好別問,因為問也問不出來什么钦铁,至于待遇软舌,那是HR的事情,技術(shù)面試官也無能為力牛曹。
最后根據(jù)自己的面試經(jīng)歷說說幾個細節(jié)的問題
態(tài)度:記住你是去求職佛点,證明自己的能力達到職位需求是你的首要任務(wù)。沒有必要和面試官抬杠黎比,把面試官搞不爽對你一點好處都沒有超营。我在面試搜狗時就出過這問題(直接表示對面試官的問題的不屑),直接一面被砍掉阅虫。
著裝:盡管IT公司大多不需要西裝革履演闭,但也別太拖沓,穿整齊些颓帝,至少給人很精神的感覺米碰。我面試騰訊時直接搞了一件套頭衫+迷彩褲+機車帽,結(jié)果是面試官從頭到尾就沒正眼看過我购城,直接一面被砍掉吕座。
交流:面試是一個交流的過程,不明白的一定要主動詢問瘪板,面試的大忌就是面試官給了一個問題吴趴,你一聲不吭的搞了一個小時,最后發(fā)現(xiàn)搞的不是面試官問的問題侮攀,這時就算你很牛逼史侣,面試結(jié)果往往也是悲劇。
7魏身,國企
國內(nèi)的IT公司一共去了6家,拿到6個offer蚪腐,面試19場箭昵。
百度(2輪面試+1輪終面)
百度的應(yīng)屆生面試分為3輪,2輪技術(shù)面和1輪終面回季,3輪面試連在一起進行家制,如果搞到第1輪或第2輪就叫你回去正林,基本上不是悲劇就是備胎。如果進了終面颤殴,只要不出岔子觅廓,一般問題不大,因為百度每年招的人非常多涵但,印象里有1500人之多杈绸。
可能是招的人特別多從而導(dǎo)致面試官人數(shù)不夠,百度的面試在所有大公司里面幾乎是最隨意的矮瘟,面試官往往都沒有經(jīng)過系統(tǒng)的面試培訓(xùn)瞳脓,出的題目也只是從網(wǎng)上東拼西湊,比如像C++的虛函數(shù)的實現(xiàn)機制此類SB題目層出不窮澈侠。而且有些面試官缺乏對面試者最基本的尊重劫侧,我有幾個同學(xué)在百度面試時差點被面哭。
就我個人而言哨啃,我先后參加了百度的實習生面試和正式員工面試烧栋。正式員工面試給我感覺相當不錯,流程很規(guī)范拳球,面試官很nice审姓,問的問題也說的過去;然而實習生面試那兩個人就是翔醇坝,不但問的問題很二邑跪,而且不給我任何交流的空間,同時在面試過程中表現(xiàn)出一副非常不屑的神情呼猪,令人極度不爽画畅。
此外,百度的員工(包括面試官)給我一種工作過度的感覺宋距,說驚悚些就是印堂發(fā)黑轴踱。結(jié)合艷紅哥提到的狼性精神,我這號醬油男說啥也不敢去谚赎。
搜狗(2輪面試)
搜狗的應(yīng)屆生面試分為4輪淫僻,2輪技術(shù)+1輪HR+一輪Manager,4輪面試是分開的壶唤,所以會比較麻煩雳灵,畢竟來回跑來跑去的很費時費力。
我的搜狗面試經(jīng)歷比較詼諧闸盔,盡管面了2輪悯辙,但2輪都是一面,第一個一面是朋友幫忙推薦過去的面試,第二個一面是參加搜狗筆試獲得的面試機會躲撰,從這里多少能看出搜狗招人是有點混亂的针贬。
第一個一面非常囧,當時面試官問我C++拢蛋,我表示很少用桦他,接下來問了若干智力題,由于被問的有些拙計谆棱,于是反問“這種智力題有什么考察度快压,會做的人一下子做出來,不會做的一天也搞不定”础锐。估計這句話把面試官搞毛了嗓节,接下來的氣氛變的很緊張,后來面試官反問我“那你覺得應(yīng)該怎么招人”皆警,我回答“你們應(yīng)該學(xué)學(xué)微軟”拦宣。然后就沒有然后了,囧tz信姓。
第二個一面感覺還成鸵隧,因為我筆試的題目答得比較出彩。接下來是一個strcpy的紙上代碼和一個簡單的OS生產(chǎn)者消費者問題意推,答得還算順利豆瘫,可惜依然沒有然后,我懷疑可能是沒有Hire Count了菊值。
搜狗面試給我一個很大的教訓(xùn)外驱,就是別裝逼,求職就是求職腻窒,別和面試官抬杠昵宇。在接下來的面試中,我收斂了很多儿子。
創(chuàng)新工場(2輪面試+4輪終面)
創(chuàng)新工場本身是一個孵化公司瓦哎,它的招聘流程是這樣的:工場進行筆試和面試初選,然后由工場下面的子公司進行復(fù)選柔逼,由于子公司眾多蒋譬,因此工場有一個雙選會,每個通過初選的求職者可以選擇3家工場的子公司愉适,在這個雙選會上開復(fù)哥很是鼓吹創(chuàng)業(yè)犯助,不過效果似乎不太理想
工場的初選面試有兩輪,然后是3個子公司的復(fù)選面試维咸。和其它公司不一樣剂买,工場的面試時間非常短扑媚,只有25分鐘:一個自我介紹,兩個無需寫代碼的題目雷恃。有點拼人品,因為這么短的時間很難考察全面费坊。復(fù)選面試大多是電面倒槐,比較簡單,算法題目說下思路就可以附井。順便推薦下友盟讨越,感覺這些子公司里面這家的發(fā)展?jié)摿ψ畲蟆?/p>
騰訊(1輪面試)
騰訊的應(yīng)屆生面試的組成我不太清楚,因為1輪就GG了永毅。
騰訊的面試也讓人很火大把跨,面試官直接拿一個laptop在那里給你放ppt,一個slide一個題目沼死,答完下一個slide着逐,結(jié)果是我說的口干舌燥面試官還沒說兩句話。題目五花八門意蛀,從簡歷到智力題再到為人處事耸别,印象里答了不下七八道題目,累的一逼還沒通過县钥,尼瑪秀姐。
不過騰訊的面試中見到很多PLMM,目測有很多非技術(shù)崗若贮。
人人(2輪面試+2輪終面)
人人的應(yīng)屆生面試一般是2輪面試+1輪終面省有,由于我的筆試和面試發(fā)揮不錯,因此又得到了一個加面的機會谴麦,拿到了人人special offer蠢沿,待遇非常給力。
人人的一面面試官非常nice细移,我當時遲到了30分鐘搏予,由于沒吃飯因此直接蹭了幾個面包,一邊吃一邊回答問題一邊寫代碼弧轧。由于一面主要考察紙上代碼雪侥,這個是我的強項,因此很輕松的通過了精绎。二面相對雜一些速缨,數(shù)據(jù)結(jié)構(gòu),算法代乃,設(shè)計模式炭菌,多線程等都有涉及颈渊,不過問的都不深班缎,也比較容易。
終面第一面由自我介紹+讀過的書+寫一段代碼組成吭历,正好剛剛讀過Sicence of programming,于是就海侃了一頓程序正確性證明的東西擂橘,并用這個證明了下自己的代碼的正確性晌区,目測效果還不錯。
終面第二面是一個大manager面試通贞,這一輪主要是自己的職業(yè)發(fā)展路線等其它非技術(shù)問題朗若,聊的也比較順利,然后他直接告訴我我拿到了special offer昌罩。
人民搜索(2輪面試+1輪終面)
人民搜索的應(yīng)屆生面試由1輪算法面+1輪設(shè)計面+1輪終面組成哭懈,每一輪面試都是45分鐘,時間控制很嚴茎用。
和其它公司的面試不同遣总,人搜的算法面試沒有自我介紹環(huán)節(jié),直接就是搞算法題目绘搞,至少要做兩道(難度一般彤避,肯定會有一道動態(tài)規(guī)劃),并在紙上寫出完整的代碼夯辖。由于缺乏溝通琉预,這輪面試略感生硬,不過還是比較順利的通過了蒿褂。
設(shè)計面試多了一些溝通環(huán)節(jié)圆米,接下來大部分時間會討論一個系統(tǒng)的設(shè)計,你需要給出這個系統(tǒng)的架構(gòu)啄栓,接下來面試官會不斷的追問如何改進該系統(tǒng)以應(yīng)對大用戶量大數(shù)據(jù)量等極端情況娄帖。我這方面的知識不多,只會很土鱉的hash+cache昙楚,磕磕絆絆的把這輪過去了近速。
終面面試官是一個前google工程師,正巧當時我在google面了好幾輪堪旧,比較了解google面試的套路削葱,因此很順利的就通過了。
總之淳梦,人民搜索的待遇比較給力析砸,而且能搞定戶口,如果想在北京長待而且視戶口很重爆袍,那么人搜值得一試首繁。
8作郭,外企
國外的IT公司一共去了4家,拿到3個offer弦疮,面試16場夹攒。
微軟(2輪面試+1輪終面)
微軟從去年開始大規(guī)模擴招,印象里以前應(yīng)屆生招幾十人胁塞,現(xiàn)在一個STC(互聯(lián)網(wǎng)工程院)就能招二百余人芹助,因此面試難度也有所下降,面試輪數(shù)由以前的5輪左右下降到現(xiàn)在的3輪左右闲先。
這里多提一句,很多人把微軟和MSRA(微軟亞洲研究院)劃等號无蜂,甚至有人認為進了微軟就等于進了MSRA伺糠,其實微軟有很多部門,包括STC斥季、STB训桶、MOD等部門,MSRA只是其中一個研究性質(zhì)很濃的部門酣倾。不過MSRA要求極高舵揭,和其它部門不同,一般MSRA的FTE只招博士躁锡,很少招碩士午绳,招聘需要進行七輪甚至以上的嚴格面試,難度絲毫不亞于谷歌映之。而MSRA的實習生則容易很多拦焚,名校學(xué)生一般有內(nèi)部推薦就可以搞定。
我之前在微軟進行過實習杠输,因此直接參加了實習生轉(zhuǎn)正面試赎败,三輪面試分別由SDET,SDE和一名高級部門經(jīng)理進行面試蠢甲,面試的流程可以參考我之前提到的常規(guī)面試流程僵刮。與國內(nèi)IT公司不同,微軟不會問語言細節(jié)或是OS細節(jié)之類的人品問題(就是那種上網(wǎng)搜一下就明白的題目鹦牛,C++的虛函數(shù)實現(xiàn)機制是此類非常典型的人品題)搞糕,而會集中在算法設(shè)計和程序設(shè)計上,其中應(yīng)屆生面試又以紙上代碼最為嚴格能岩,即使到了終面依然會有紙上代碼編寫環(huán)節(jié)寞宫,盡管不會考察特別復(fù)雜的算法,但對細節(jié)要求的非常嚴格拉鹃。好在我之前有微軟幾位SDE的指導(dǎo)辈赋,紙上代碼功夫還是不錯的鲫忍,并且實習期間獲得了不錯的review,因此比較順利的通過了微軟實習轉(zhuǎn)正面試钥屈。
微策略(2輪面試)
微策略是一家進入中國沒多久的外企悟民,規(guī)模不大,工作內(nèi)容主要是大數(shù)據(jù)分析+數(shù)據(jù)可視化篷就,面試一般由四輪到六輪面試組成射亏。我比較悲催的直接掛在第二輪面試。
微策略是我面試的外企中唯一全程使用英語面試的公司竭业,面試官給人的感覺是很smart智润,但不nice,具體原因我后面說未辆。
第一輪面試主要問了些面向?qū)ο笙嚓P(guān)的內(nèi)容窟绷,接下來是一些智力題目,我有一道題目(高樓扔雞蛋)沒有說清楚咐柜,盡管答案是正確的兼蜈,但我的推導(dǎo)思路比較繁瑣,因此浪費了大量的時間和面試官進行溝通拙友。事后回想下面試官還是很nice的为狸,主要還是自己平時想問題淺嘗輒止,才會敗在這道題上遗契。
第二輪面試就讓我感到不爽了辐棒,我在自我介紹時直接被面試官打斷,以至于自己的亮點經(jīng)歷說都說不出來牍蜂,而且在后續(xù)的編程環(huán)節(jié)中涉瘾,面試官拒絕和我進行交流,我寫完了題目他又說這個和他要求的不太一樣捷兰,當時我心里就開始暗罵wtf了立叛。估計是前一輪被評為weak hire以至于這一輪的面試就是走走形式吧。
雅虎(3輪面試+1輪終面)
雅虎的面試分為3輪技術(shù)面和1輪終面贡茅,在同一天完成秘蛇。盡管雅虎公司一直給我一種搖搖欲墜的感覺(經(jīng)常有傳言雅虎可能會被收購),但雅虎公司的員工給我感覺都很nice且很smart顶考,而且比微軟的員工要有活力許多赁还。
三輪技術(shù)面試有兩輪是典型的技術(shù)面,自我介紹+技術(shù)提問驹沿,由于我在簡歷上提到“閱讀了120本以上的計算機經(jīng)典書籍”艘策,因此被問到了“看過最經(jīng)典的計算機書”這樣的問題,我拿Brian Kernighan和Rob Pike的The practice of programming吹了一陣渊季,算法題目相對微軟要難一些朋蔫,除了動態(tài)規(guī)劃罚渐,也涉及到了后綴數(shù)組等不太常見的數(shù)據(jù)結(jié)構(gòu),還好之前有所準備驯妄,所以回答的還不錯荷并。
終面的面試官是一名移動部門的老大,問了一些數(shù)據(jù)結(jié)構(gòu)設(shè)計和職業(yè)規(guī)劃的問題青扔,并用英文進行了一小段交流源织,由于這些問題準備的很充分,因此跟他聊的比較high微猖,終面也很順利的通過了谈息。
Google(7輪面試)
Google的面試輪數(shù)不定,如果表現(xiàn)良好凛剥,4輪面試就可以拿到offer黎茎,但如果有某輪面試表現(xiàn)一般,可能會進行加面來進行確認面試者是否合格当悔,拿我自己來說,進行了7輪面試(據(jù)說有進行到10輪以上的踢代,不過無法確認可信性)盲憎。Google是典型的工程師文化工程師面試,沒有終面這個說法胳挎,每個面試官都有一票否決權(quán)饼疙,加上每個面試官考察的點都不一樣,因此Google面試是我經(jīng)歷過的難度最高的面試慕爬。
其實Google的面試我本來沒抱多大希望窑眯,因為Google一直給我可望不可及的感覺,因此面試時也很放松医窿,這種“自暴自棄”的心態(tài)反而讓我發(fā)揮的不錯磅甩,一步一步走到最后,并拿到offer姥卢。
Google的面試每一輪大約45分鐘卷要,時間卡的比較嚴格。面試題目肯定會包含算法和程序設(shè)計(一般體現(xiàn)為紙上代碼)独榴,同時包含其它各種各樣的問題僧叉,我經(jīng)歷了策略題(設(shè)計一種策略從而在某個游戲中達到優(yōu)勝)、數(shù)據(jù)結(jié)構(gòu)設(shè)計棺榔、系統(tǒng)設(shè)計瓶堕、白盒/黑盒測試、項目介紹等五花八門的題目症歇,題目的類型視面試官的類型而定:學(xué)術(shù)型的面試官(比如說名校PHD)問的題目偏重算法郎笆,工程型的面試官(大多是社招的Googler)問的題目偏重項目經(jīng)歷谭梗。面試題目并不像網(wǎng)上傳說的那么困難,但是面試官會拋出很多Probing question题画,讓你給出一個optimal solution默辨,這著實讓我拙計了幾次,不過即便一時間想不到最優(yōu)解也不要緊苍息,一邊保持和面試官的交流一邊試探各種可能的思路缩幸,這里再次推薦下Polya的How to solve it。
由于面試輪數(shù)很多竞思,因此這里就不依次說每輪面試的細節(jié)表谊,可以參考下面的Google面試經(jīng)歷鏈接。
《王遠軒:北美求職記》
《面試體驗:Google 篇》
9盖喷,總結(jié)
筆試難度:微策略>人搜>人人>雅虎>搜狗>創(chuàng)新工場>騰訊
面試難度:Google>雅虎>人搜>微策略>微軟>人人>百度>騰訊=搜狗=創(chuàng)新工場
待遇:Google>人人>人搜>雅虎>微軟>百度>創(chuàng)新工場旗下子公司
毫不猶豫的選擇了Google爆办,盡管我自己是.Net流,天天折騰VS和C#课梳,linux和unix啥的都沒碰過距辆,但就前景來看,不得不承認Google比微軟強太多了暮刃。
老實說我自己進Google感覺像做夢跨算,畢竟不是搞ACM的,大學(xué)成績一般椭懊,什么獎學(xué)金都沒拿過诸蚕。
但回想一下,這也不全是靠運氣:從07年(那時我大三氧猬,一行代碼沒寫過)掛科開始背犯,決心開始搞計算機這行,編寫自己的第一行靠譜代碼盅抚,獨立完成第一個編程作業(yè)漠魏,閱讀書籍,不懂的就來D版詢問各路大神(這里謝過FloridDong妄均,UGLee等大神)蛉幸,然后一邊實習一邊讀書學(xué)習,花了半年考研考到帝都丛晦,在考研結(jié)束的那段時間(四個月假期)精讀了數(shù)據(jù)結(jié)構(gòu)奕纫,計算機組成等基礎(chǔ)經(jīng)典書籍,補習自己的基礎(chǔ)烫沙。到帝都之后匹层,在一場即興技術(shù)口譯之后,獲得去微軟實習的機會,然后在實習中學(xué)習編譯器知識升筏,創(chuàng)作了自己的編程語言和編譯器撑柔,加入朋友的創(chuàng)業(yè)團隊并合作完成了AppStore TOP1的應(yīng)用,離開團隊獨立搞定Windows Phone 7上最火的撥號應(yīng)用您访、閱讀應(yīng)用和AV應(yīng)用并在移動互聯(lián)網(wǎng)中賺到自己的第一桶金铅忿,通宵一周完成畢業(yè)小論文發(fā)表并推薦到核心期刊,為了求職寫了三本紙上代碼灵汪,閱讀the Science of programming學(xué)會如何證明自己代碼的正確性檀训,100%的簡歷通過率+100%的筆試通過率,最后進入Google享言。
現(xiàn)在回想峻凫,感慨萬千。
本人從事在線教育c++十年工作經(jīng)驗現(xiàn)在精心整理了一套從小白到項目實踐開發(fā)各種學(xué)習資料如果你想學(xué)想加入我們請關(guān)注我在私信回復(fù)“編程”就可以領(lǐng)取學(xué)習資料@缆丁S怼!