【轉】一個程序員的面試經驗之談

騰訊、百度、阿里面試經驗—(1)騰訊面經 【轉自】http://www.cnblogs.com/zy1987/p/3604958.htmlhtml

       本人IT屌絲一枚,畢業4年,5年經驗(大四在騰訊實習一年,實習生工資,工做內容同正式員工同樣)。很是幸運,前後收到過騰訊、百度和阿里的offer,在這裏跟你們分享下經驗,同諸君共勉。
   本人職業生涯的起點開始於騰訊,能入職騰訊其實很是偶然。09年騰訊校招的時候,在本人的學校(學校是2本就不說名字了)開宣講會,學院不少同窗都去 了,由於當時對騰訊興趣不大因此沒去,當時但願去中軟金蝶這樣的傳統軟件公司。一個宿舍的兄弟要去參加騰訊校招的筆試,我做爲親友團陪他一塊兒去。騰訊的 hr很nice給了我一張筆試題和意願表讓我填。原本我想從學校北門直接坐車回家,既然來了反正也沒什麼事就寫了,算是爲之後找工做熱身。筆試內容主要是 編程基礎和排序查找算法之類的題,還有用程序實現遞歸這樣的,具體的忘記了。
  筆試題感受很簡單,附加題也答上了(本人專業課學霸、其餘科學渣)。答完也沒檢查就坐車回家了,吃飯的時候收到騰訊叫我次日去一面的短信,恰好我爸爸媽媽在南山的同窗去我家作客,就乘阿姨的順風車回學校準備次日的面試。
   騰訊一面的面試官很是的nice也是我後來的組長,很是有人格魅力的一我的,我去的時候還特地給我倒了一杯水。主要問我瞭解的技術,我就介紹了下在大學 期間作的C++、.Net和J2EE項目,規則引擎、財務系統、學業預警系統、爬蟲引擎這些。由於徹底沒準備因此回憶起來有點吃力,還好面試官沒有刁難, 發揮還能夠。問了Java的內存機制,會不會致使內存泄漏,這個答的不太好;問了下hibernate的機制和做用都回答上了,讓寫了下爬蟲程序的核心代 碼和正則表達式。
  一面整整面了30分鐘感受有戲,就回去好好準備2面的內容,把當年工程代碼翻出來複習以避免再出現 忘記的尷尬。很快次日就通知去進行技術二面。技術二面就是傳說中的壓力面,被好一頓虐待。項目中的問題一個沒問,問的全是操做系統、數據結構的問題。還 好專業都是A+,大多數題都回答上了。問了下我樹轉二叉樹,這個小意思。還問了Java內存機制和是否會有內存泄漏什麼狀況下會泄漏,good這個在一面 回去以後就看了,回答的完美。最後一題是問的查找QQ號。小case,寫了個二分查找;他說你認爲我會滿意嗎,我想了想又寫了一個哈希查找,他說仍是不滿 意。這個時候我已經有點小不爽了,就說不知道。在有點尷尬的氣氛中結束了面試。當時以爲沒戲了,有點失落。回家看了下算法導論,原來有一個極爲高效的算法 是二叉查找,唉,人家已經提示了,可是還沒想到,有點小遺憾。
  過了一週收到騰訊的hr面試邀請的時候,說實話很是 的意外。據說咱們學校本科生全軍覆沒,就我一個過了2面,研究生只有3個過了2面。hr面沒問什麼特別的,此處不表。一週後收到騰訊的正式offer,還 是有點小激動的。薪水方面超過了個人預期,但最主要的是一面的面試官看起來很厲害的樣子,感受騰訊也是一家很厲害的公司。
   在騰訊幹了四年,正式三年,實習一年。後來開始負責招聘,咱們部門在選擇求職者的時候主要看聰明程度、視野、大局觀、氣場等軟實力。當時我負責面了一個 孩子,各方面挺不錯的,組長以爲也還行,可是被總監斃掉了,緣由是太軟不夠霸氣。還有一個哥們技術和基礎感受都還行,可是被組長斃掉了,緣由是視野和聰明 度不夠。
  因此準備面試騰訊的同窗,建議多留意近期的互聯網的最新動態,多練練表達。若是能在面試中批判一下近期騰 訊的決策失誤和產品缺陷,不管對錯都會認爲這個孩子不錯,那麼必定會加分的;可是也不能過了,徹底說的不對還侃侃而談會讓人以爲你這我的很浮誇也是會被斃 掉的。尺度的拿捏很重要。還有一點,語速快並且語氣堅定目光堅毅自信的比語速慢表達不流暢的同窗成功概率高。我面過一個哥們,後來他頂替了我領域負責人的 位置,這是後話。他在面試的時候就很是的自信,若是問一些「弱智」問題會被他反諷,當時你們就以爲這我的很厲害,面試也很順利,1天連續面了5面,當天就 發了offer。騰訊社招是電話面、技術一面、組長面、平臺總監面、部門經理面、hr面。總共6面,面談是5面。前端

  面試的時候首先要自信,若是能作到不卑不亢其實就已經成功了一半。我感受大多數程序員都不太自信,給人感受有點文弱,若是你本身都對本身不自 信,怎麼能奢求公司對你自信呢。可是也不能太自信,自信心爆棚就是自大,面過一個2年開發經驗的問他技術都不知道,就談項目。問他項目中作了什麼就談項目 是什麼。在我這就被斃掉了還問大家能不能開到30w,我只能讓他回家等消息了。
  要上班了,百度、阿里和其餘公司的面經,晚上再發。android

騰訊、百度、阿里面試經驗—(2)百度面經  http://www.cnblogs.com/zy1987/p/3605312.html

接上篇,剛加入騰訊的日子仍是很happy的,第一個項目就是獨立開發一個抽獎營銷項目,以後跟一個技術很厲害又有想法的前端牛人一塊兒負責比較重要 的項目,固然是他帶我(當時的目標就是超越他,惋惜到如今還沒實現。大牛當年教育我說,新人剛參加工做這幾年回家以後不要玩,要多學習這樣才能成長的快, 當時我還不覺得然;如今想一想真是金玉良言啊)。 在10年末的時候獲得了一個機會去負責全新的領域iOS開發和 Android開發,由於我我的對前端技術(JavaScript等)不怎麼感冒,仍是比較喜歡作編譯型語言的開發工做。當時組裏的幾個大牛對終端興趣不 大,老闆就把這個光榮而又艱鉅的任務交給了我。c++

  通過11年一年的艱苦奮戰,本人和另外一個一塊兒入職的兄弟從無到有分別開發了iOS和Android兩個應用(iOS是咱們一塊兒開發 的,android是我本身開發的)。雖然如今看來當時的成果不算什麼,但當時是在沒有什麼資料和經驗的狀況下摸索出來的,仍是至關的不易。惋惜當時的領 導以爲咱們作的並很差,一年下來才弄出這麼個小東西,這是他的原話。年末的時候基本上一天被領導當着全組的面罵一次,這個領導是新領導,不是當年面試個人 那個領導了。當時也是年輕不敢頂撞領導,可是不爽和負面情緒確定是有的。因此開啓了離職找工做的程序。程序員

  12年初的時候被獵頭推薦去北京的一家公司,後來才知道就是大名鼎鼎的百度。由於自信心爆棚,牛逼哼哼就去了。結果就是兵敗莫斯科。被大大的打擊了一頓。面試

  百度面試跟騰訊徹底不一樣,百度面試很是重視技術、重視應聘者的基本功、算法、數據結構、C++、操做系統、面向對象、軟件體系結構、系統設計和 模塊劃分上的能力,能夠說錙銖必較。這些東西在大學的時候本人能夠說駕輕就熟,可是面試的時候基本上一問三不知,連我本身都以爲很差意思。印象比較深入的 幾個題。ObjC基礎,這個就不說了,幹了1年iOS開發的都會;響應者鏈是什麼和原理,沒答上;堆棧;進程調度;查找算法、排序算法;面向對象設計的原 則;移動應用安全;c++指針運算,如何把一個數存到0x00這個位置。iOS性能調優。畫出你的項目的模塊圖。不少都沒答上來,面試官很nice說可能 是太長時間沒用了忘記了,機制沒回答上來就問我你不知道機制不要緊你能夠提出本身的見解,猜他是怎麼實現的,答對了同樣有分。算是幫我挽回了點面子。正則表達式

  此次面試失敗對個人打擊很是大,由於面試的內容並不難。想了一宿,其實加入騰訊只職業生涯的一個起點而已,並不表明你比別人優秀多少,不少比你 更優秀的人沒進來可能只是運氣沒你好而已。職業生涯跟長跑差很少,一開始你比別人領先一點,只要稍微放鬆,立刻就會有比你更努力的人追上並超過你,不一樣的 是,長跑更容易發現本身已經落後了,而職場上等你發現的時候可能已經晚了。程序員跟賽車手差很少,不是說你天天開車你的駕駛技術就能成爲職業賽車手,而是 必須通過專業的訓練,有針對性的訓練;同理不是你寫了幾萬行代碼你就是個技術專家,必須通過刻苦的學習才行。算法

  本人的缺點是容易忘乎所以,優勢是越挫越勇。通過此次打擊,天天最少用4個小時的時間學習iOS各類機制、數據結構、重拾C++。瘋狂寫代碼, 每個月5000行編碼量,用了1個月時間重構了2w行代碼。到了七、8月份的時候感受功夫已經到位了,就決定再找公司練練手,檢驗下這個階段的學習成果。編程

  此次獵頭又給我推薦到了百度,去的是深圳百度分公司。感受到百度好像很缺人,由於週一提交的簡歷週三就讓我去面試了,百度篩選簡歷出了名的慢。 一面仍是上回那些,難度加了些問了寫內存管理、線程調優的內存。小case,早就在我掌控之中。問了些Core Data、數據存儲的內存,問了下閉包block和block在內存中位置,同函數指針的區別。一面進行了一個多小時。完過後讓我等一下,看起來這把有 戲。json

  二面仍是技術面,難度感受比一面沒高多少,由於考察的都是面向對象、設計模式上的內容,呵呵,這個對我來講太簡單了,本人最大的愛好就是研究各類設計模式和軟件體系結構。問了下個人項目中的體系結構,問了下MVC的優劣,若是設計鬆耦合的模塊,組件化模塊化的之類的。

  三面主要是精神層次的, 問下將來的職業規劃,iOS和Android的差別性。你爲何不繼續作前端轉作iOS,如何看待iOS的生態系統。問爲何想跳槽,我回答說想專一 iOS,如今騰訊讓我又搞iOS又搞Android,又搞聯調有點雜。最後問有沒有什麼要問他的。其實本人當時根本沒有過檔的打算因此說沒有。接着hr 面,這個時候已經很晚了,雲了三個多小時,也不給一口水,有點小不爽。Hr面帶着情緒面的,看在妹子挺可愛的份上控制了本身的壞脾氣,hr可能也感受到了 個人抵觸情緒,草草收場讓回去等消息了。

  四輪面試都要自我介紹,說的我都有點噁心了,感受像失足介紹本身來自哪,等客人挑選。人格魅力感受都不如騰訊的組長。

  過了三天接到電話,問我這邊的意願,工資又遠遠高於的預期(本人就是這麼鼠目寸光,老婆罵了我好屢次)。當時身上有個很重要的公司級的項目,又以爲對不起騰訊的知遇之恩(由於這個老婆埋怨了我不少次),就拒絕了。

  可是對本身開發能力的訓練機制算是穩定了下來,仍是有收穫的,基本上天天都自學到10點11點。後來易迅(易迅被騰訊收購其實就是騰訊的一個部門)的總監讓我過去作iOS易迅客戶端,承諾說辦手續最多3個月。雖然機會很誘人,可是爲了報恩也好,責任感也好依然拒絕了。

      其實公司和我的之間本質上講就是商業關係沒什麼恩義,公司培養一我的也不是爲了這我的的發展仍是爲了本身。business just business,跟感情混爲一談吃虧的仍是本身。放棄了這兩個機會以後,半年後本人經歷了職業生涯中到目前爲止最大的危機。若是人有預知能力就不會有那 麼多苦惱了。

  整體上感受百度的面試要比騰訊容易些,由於騰訊注重的是軟實力,也就是說天賦,知識、技能、經驗均可之後天培養,可是天賦是天生的無法後天鍛 煉,只能經過努力拉近差距無法逾越。不過2011年後騰訊大擴張(不到一年狂招1w多人),招聘的門檻也沒有那麼高了。而百度更注重計算機技術和科學,這 些東西經過努力均可以得到。

        鄭重聲明:本人只是參加過以上幾家公司一兩個部門的面試,一個公司不一樣部門的面試風格是不同的,每位面試官的風格也是不一樣的,因此本人的觀點是很是片面的。徹底是我的的感悟和心路歷程,不承擔任何法律責任。

騰訊、百度、阿里面試經驗—(3)阿里面經 http://www.cnblogs.com/zy1987/p/3607255.html

接上篇,2012年能夠說至關的辛苦常常有加班到11點、凌晨的狀況,基本上是9點以後才能下班。爲了這個重要的項目你們都很努力,終端領域也終於向好的方向發展,直到年末。

  年末發生了一件不愉快的事情,內容就不說了跟主題無關。本人又開始了找工做之旅。

  一、第一次進軍阿里

  當時據說阿里在無線發力,taobao和tianmao都在招人,兩個部門都對我發出了邀請,可是集團規定只能面其中一家,本人就選的 tianmao。一面是組長面,電話面的,問了下項目,問了網絡通信協議,爲何用json不用xml,pb協議的好處和壞處。由於本人負責的是很是敏感 的業務,對安全有很高的要求,因此還問了些關於安全策略設計和構造。這個是本人的強項,由於當時在終端安全方面吃了大虧,通過好幾個不眠之夜以後設計的三 層換票加密算法,除非有內鬼,不然即便反編譯了咱們的代碼也沒法解析咱們的加密協議。感受不錯,就讓我保持手機暢通準備技術面。

  技術面應該是一個組員面的,問的全是基礎的問題。iOS runtime、多線程幾種實現方式、若是進行網絡通信、對於block的見解,基本上都回答上了。最後問了下我對iOS6的新特性的認識,這個回答的不 太好。由於本人當時忙一個大項目,基本天天搞到11點多,沒怎麼充電。面試完了查了下iOS6的新特性,也沒什麼特別的,有點遺憾。

  過了2天,那邊來電話讓我去一個酒店進行終面,他們的老大來深圳出差順手面我一下。面試整整持續了一個小時。問了我對微信的見解,問咱們有沒有 跟微信合做。若是縮減安裝包體積,這個問題我當時以爲本身回答的不錯。一年後回想起來,其實回答的不好,縮減安裝包的體積要從資源文件上下手,儘量用 Core Graphics自繪代替資源圖片。若是是用戶可能用不到的功能,那麼應該只把代碼合成進去而資源文件應該在用戶第一次使用的時候從服務器下載並緩存在本 地。裁剪第三方開源庫的代碼等等。面試進行了一個小時,面試官客氣的把我送出房間。

  過了一段時間沒消息,讓獵頭幫忙問下狀況,回覆是工做年限過短,沒戲了。仍是被小小的打擊了一下。若是面試管表現的特別客氣那麼你就要當心了,極可能被斃了。

  二、廣州之旅

  面試阿里失敗以後去了廣州一家互聯網公司,就不說公司名字了,由於對這家公司的怨念到如今本人還不能釋懷。不過這家公司好處是比較悠閒,因此本 人又開始了瘋狂學習計劃。老婆在深圳,我一我的在廣州反而能夠騰出時間充電,公司管飯又省去了覓食的麻煩。天天學到12點,常常看書到凌晨2點。除了 iOS開發外,還複習了C++ Primer紅寶書,這本書很是經典,強烈推薦。這家公司延了本人一個月的試用期,hr還讓我去簽字確認,我說如今是午休時間我不去,他說很快的,反正我 就不去她也沒辦法,延期我試用期的次日我向領導提出了辭職。領導居然敢說他很意外,挽留了我一下,可是我對這裏毫無好感,再三請求之下脫了1個月終於離 職成功。

  三、回到深圳

  回到深圳後就進了我如今這家公司,老闆是個技術很厲害的人,對本人也很是欣賞,負責了幾個重要模塊的設計和開發工做。一個是即時通信類的模塊、一個是視頻加工編解碼的模塊,就是憑着這兩個模塊的設計開發經驗本人跟阿里又一次產生了交集。

  四、第二次進軍阿里

  此次去阿里面試能夠說很是很是的偶然和戲劇性,由於本人根本沒投簡歷,以致於阿里hr給我電話的時候我一度認爲是詐騙電話。由於深圳這家公司不錯我還想在這裏幹個兩年左右再考慮考慮。

  這個時候的本人已經發生了很大的轉變,從剛進騰訊的浮躁、自大、害怕面試,已經轉變爲淡泊、謙虛,而且喜歡上了面試,感受每次面試就像楊過跟大雕過招同樣,武功都能精進很多。本着去看看技術面內容的心態去了福田東海大廈。

  一面沒有技術面直接就是組長面,首先是自我介紹,以後問了下項目內容。我就說了下即時通信和視頻加工兩個模塊。他讓我畫出模塊的架構圖,這個建 議你們準備一下,阿里和百度都有要求應聘者畫模塊圖考察應聘者的開發層次和思路。本人沒什麼準備,不過當時設計評審時的UML還記着,就把模塊圖和類圖畫 了下。面試官又問,有沒有遇到困難;我說有,性能瓶頸、卡頓的問題、瞬時信息量過大致使的UI卡死;他就問如何解決的:我說由實時刷新改成定時刷新。他問 還有沒有更好的實現方式,我回答有用任務隊列。咱們又爭論了下任務隊列的設計應該用先進先出仍是後進先出。這個時候本人已經徹底忘記是來面試的了,只想爭 贏。語速也愈來愈快、聲音也愈來愈大。他質疑我這個機制在效率調優上沒有意義,由於系統會進行cell緩存;我說在中間的時候系統緩存能夠生效,在最底部 的時候就失效了,就會卡頓。最後仍是我爭贏了,時間就這麼不知不覺中過了一個小時。問通信消息騰訊是如何作的,我說不知道我猜想是這麼作的巴拉巴拉。問了 下我濾鏡的使用和原理,如何美白,我說修改OpenGL的值就能夠了,問如何進行視頻合成,這個很簡單就是把視頻和音頻軌道抽出來再用 composition合成就能夠了。問了下加水印、也是從文件中把視頻軌道layer抽出再把圖片layer加在這個layer上就能夠了。把開始時間 和持續時間、幀率設置好就ok了。又問了下爲何來面試,本人說沒想過換檔,是大家叫我來面試的。一面官最後問了下,考不考慮杭州,本人很是堅定的說不考 慮。他又說其餘城市考慮嗎,本人說吉林就考慮。

  一面結束讓我去休息以後是二面,二面的面試官很nice。讓我作自我介紹以前居然先作了自我介紹。他負責的部門是個很核心的部門。面試的內容跟 一面差很少。讓我在白板上畫我設計的系統架構圖以後就是講解。問了下個人職業規劃,我說現階段仍是想寫代碼。他問多久,我說2年吧。他有問你對管理崗位怎 麼看,我說一個好的管理首先要能幫助組員解決問題,我如今水平還達不到這個境界,想多寫點代碼,代碼量上去後設計能更合理一些,像這個設計當時有幾個優化 點沒考慮到,有點遺憾。面試官問我有什麼問題以後我就詢問了下他們部門的狀況和企業文化。面試官好像比較滿意,就讓我去hr面,還特別強調就是跟hr聊聊 不算面試。

  hr面過程不表,就是問了下杭州房價問題。問我能不能來杭州發展,我說我考慮下,還不知道大家會不會錄用。閒扯了半個小時,就打道回府了。3天后收到阿里的offer通知介紹。給的薪水又一次超過了本人的心理預期。

  阿里的面試跟騰訊百度都不一樣,感受更注重項目實踐一些。總結來講BAT的技術面都差很少。只要把內功和外功都修煉好了再配合點實戰經驗基本上均可以應付三大的面試了。

  最後說一下,面試準確講不該該叫面試應該叫面談,就是interview。勞資雙方坐下來談談聊聊,互相瞭解。咱們程序員做爲技術工做者不是去求職的,只是去看看你的機會,你能夠保留你的職位,我保留個人作事方法。

相關文章
相關標籤/搜索