接上篇,2012年可以說相當的辛苦經常有加班到11點、凌晨的情況,基本上是9點之后才能下班。為了這個重要的項目大家都很努力,終端領域也終於向好的方向發展,直到年底。
年底發生了一件不愉快的事情,內容就不說了跟主題無關。本人又開始了找工作之旅。
1、第一次進軍阿里
當時聽說阿里在無線發力,taobao和tianmao都在招人,兩個部門都對我發出了邀請,但是集團規定只能面其中一家,本人就選的tianmao。一面是組長面,電話面的,問了下項目,問了網絡通訊協議,為什么用json不用xml,pb協議的好處和壞處。因為本人負責的是非常敏感的業務,對安全有很高的要求,所以還問了些關於安全策略設計和構造。這個是本人的強項,因為當時在終端安全方面吃了大虧,經過好幾個不眠之夜之后設計的三層換票加密算法,除非有內鬼,否則即使反編譯了我們的代碼也無法解析我們的加密協議。感覺不錯,就讓我保持手機暢通准備技術面。
技術面應該是一個組員面的,問的全是基礎的問題。iOS runtime、多線程幾種實現方式、如果進行網絡通訊、對於block的看法,基本上都回答上了。最后問了下我對iOS6的新特性的認識,這個回答的不太好。因為本人當時忙一個大項目,基本每天搞到11點多,沒怎么充電。面試完了查了下iOS6的新特性,也沒什么特別的,有點遺憾。
過了2天,那邊來電話讓我去一個酒店進行終面,他們的老大來深圳出差順手面我一下。面試整整持續了一個小時。問了我對微信的看法,問我們有沒有跟微信合作。如果縮減安裝包體積,這個問題我當時覺得自己回答的不錯。一年后回想起來,其實回答的很差,縮減安裝包的體積要從資源文件上下手,盡可能用Core Graphics自繪代替資源圖片。如果是用戶可能用不到的功能,那么應該只把代碼合成進去而資源文件應該在用戶第一次使用的時候從服務器下載並緩存在本地。裁剪第三方開源庫的代碼等等。面試進行了一個小時,面試官客氣的把我送出房間。
過了一段時間沒消息,讓獵頭幫忙問下情況,回復是工作年限太短,沒戲了。還是被小小的打擊了一下。如果面試管表現的特別客氣那么你就要小心了,很可能被斃了。
4、第二次進軍阿里
這次去阿里面試可以說非常非常的偶然和戲劇性,因為本人根本沒投簡歷,以至於阿里hr給我電話的時候我一度認為是詐騙電話。因為深圳這家公司不錯我還想在這里干個兩年左右再考慮考慮。
這個時候的本人已經發生了很大的轉變,從剛進騰訊的浮躁、自大、懼怕面試,已經轉變為淡泊、謙虛,並且喜歡上了面試,感覺每次面試就像楊過跟大雕過招一樣,武功都能精進不少。本着去看看技術面內容的心態去了福田東海大廈。
一面沒有技術面直接就是組長面,首先是自我介紹,之后問了下項目內容。我就說了下即時通訊和視頻加工兩個模塊。他讓我畫出模塊的架構圖,這個建議大家准備一下,阿里和百度都有要求應聘者畫模塊圖考察應聘者的開發層次和思路。本人沒什么准備,不過當時設計評審時的UML還記着,就把模塊圖和類圖畫了下。面試官又問,有沒有遇到困難;我說有,性能瓶頸、卡頓的問題、瞬時信息量過大導致的UI卡死;他就問如何解決的:我說由實時刷新改為定時刷新。他問還有沒有更好的實現方式,我回答有用任務隊列。我們又爭論了下任務隊列的設計應該用先進先出還是后進先出。這個時候本人已經完全忘記是來面試的了,只想爭贏。語速也越來越快、聲音也越來越大。他質疑我這個機制在效率調優上沒有意義,因為系統會進行cell緩存;我說在中間的時候系統緩存可以生效,在最底部的時候就失效了,就會卡頓。最后還是我爭贏了,時間就這么不知不覺中過了一個小時。問通訊消息騰訊是如何做的,我說不知道我猜測是這么做的巴拉巴拉。問了下我濾鏡的使用和原理,如何時圖片更鮮亮,我說修改OpenGL中的RGB值,做個差值運算就可以了;問如何進行視頻合成,這個很簡單就是把視頻和音頻軌道抽出來再用composition合成就可以了。問了下加水印、也是從文件中把視頻軌道layer抽出再把圖片layer加在這個layer上就可以了。把開始時間和持續時間、幀率設置好就ok了。又問了下為什么來面試,本人說沒想過換檔,是你們叫我來面試的。
一面結束讓我去休息之后是二面,二面的面試官很nice。讓我做自我介紹之前竟然先做了自我介紹。他負責的部門是個很核心的部門。面試的內容跟一面差不多。讓我在白板上畫我設計的系統架構圖之后就是講解。問了下我的職業規划,我說現階段還是想寫代碼。他問多久,我說2年吧。他有問你對管理崗位怎么看,我說一個好的管理首先要能幫助組員解決問題,我現在水平還達不到這個境界,想多寫點代碼,代碼量上去后設計能更合理一些,像這個設計當時有幾個優化點沒考慮到,有點遺憾。面試官問我有什么問題之后我就詢問了下他們部門的情況和企業文化。面試官好像比較滿意,就讓我去hr面,還特別強調就是跟hr聊聊不算面試。
hr面過程不表,就是問了下杭州房價問題。問我能不能來杭州發展,我說我考慮下,還不知道你們會不會錄用。閑扯了半個小時,就打道回府了。3天后收到阿里的offer通知介紹。給的薪水又一次超過了本人的心理預期,還有本人一直夢寐以求的期權。實在是沒法拒絕。
阿里的面試跟騰訊百度都不同,感覺更注重項目實踐一些。總結來說BAT的技術面都差不多。只要把內功和外功都修煉好了再配合點實戰經驗基本上都可以應付三大的面試了。
面試的核心流程都是:
技術一面、技術二面(組長面)、總監面、hr面。騰訊會多一個經理面。但是一般總監認為可行的人,9成的應聘者都會通過經理面的,除非發現嚴重的撒謊行為。hr面就是走過場,刷人的機率基本上為零。以前招聘過一個同學,hr想刷掉,理由是沒有大公司經驗,被我們組長抱怨,說這個人各方面都很適合又踏實,如果你們覺得這個不行你們就要負責招一個你們認為行的,否則我們工作做不下去了,hr就軟了。后來事實證明,這個同事工作完成的相當好,人的能力跟公司大小沒關系。最難的就是二三面,人也基本上是這兩面中刷下去的,大家一定要小心。我個人的經驗來看,總監越嚴肅通過的機率越大,越客氣就越危險。
最后說一下,面試准確講不應該叫面試應該叫面談,就是interview。勞資雙方坐下來談談聊聊,互相了解。我們程序員作為技術工作者不是去求職的,只是去看看你的機會,你可以保留你的職位,我保留我的做事方法。