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