最近有幾篇關于科技公司面試的新聞,這篇格外受矚目,因為竟然有公司力壓Google,成了面試最難的公司,而這個公司居然是ThoughtWorks。
這個結果真的讓我有些驚訝,不妨在此分享一下我的“面經”。
先來說說,招聘流程。ThoughtWorks的招聘流程大抵分成如下幾個部分,以社招開發人員為例:
電話面試,稱為Phone Screen,由負責招聘的同事了解候選人基本情況
技術電話面試,稱為Techinial Phone Interview,TPI,這個環節通常是針對遠在外地的候選人
代碼作業,稱為Homework,動手寫代碼對程序員的考核而言是不可或缺的。
通過上面流程,候選人就可以進入到辦公室。一般說來,候選人要來辦公室兩次,第一次會做一些測試題:
邏輯和英語測試
通過之后,才是真正的重頭戲,也是稱為“面試”的部分。一般說來,這些環節會在一個下午的時間完成:
結對編程面試,稱為Pair Programming
面談,稱為Office Interview,在我們招聘同事的口中,它有一個更復雜的名字:Overall Technical Interview and Culture Interview
這是主要的流程,有些情況會因人而異稍做調整。一般情況下,整個流程需要3周左右時間。我個人參與較多的主要是后兩個環節,我的“面經”也主要在這里。
結對編程面試,是候選人和面試官一起寫代碼。所用的代碼就是候選人之前在代碼作業環節所寫的代碼。這是個真刀實槍的環節,想作弊是不可能的。之前曾經發生過這樣的事情,候選人找人代寫代碼,結果,一到這個環節就完全暴露。
在這個近距離一起工作的面試中,候選者對代碼的理解、開發習慣和與人交流的方式等等就全部展現在面試官面前。有些人之前習慣于窩在一個角落里寫代碼,像這樣,寫程序時身邊還有人交流,對他們來說是一個巨大的挑戰。我曾經看到很多面試者在這個環節緊張得不能正常思考,導致實力打了折扣。
之所以采用這樣的方式進行面試,因為這就是日常的工作方式。希望了解候選人的情況,同樣,也希望他們能夠最真實地體驗我們的工作方式、交流方式和思考方式。不僅僅要寫程序,還要彼此交流,降低項目中出現“關鍵人物”的風險。以之前的一個項目為例,這是一個總規模在十人左右的項目,一年半的時間里,這個項目先后下了四個團隊lead,離開項目的開發主力也有五六個,但項目一直順利進行,未受太大影響,就是因為通過交流,知識得到了充分地分享,避免了“關鍵人物”帶來的風險,也讓更多的同事得到了充分地鍛煉。
不可否認的是,不是所有人都喜歡這種工作方式。有了這樣的環節,候選人在體驗之后也會有個新的評估:ThoughtWorks是不是他在找的工作,這樣的工作是不是他喜歡的。
透露一個秘密,如果在結對過程中,候選人能夠展現出他對快捷鍵和命令行的熟練,會在面試官心目中有加分的。
接下來是面談環節,面試官和候選人坐下來,聊聊候選人的一些經歷。了解了候選人過往的經歷之后,挑一個自己最想講的項目,做一個介紹。聽起來很容易,但接下來,根據他介紹的內容,會做進一步挖掘。比如,候選人說自己做過某個設計,我會問他為什么這么做,而不是那么做,對比不同方案之間的差異。這是一個說難不難的環節,如果在做設計決策的過程中,候選人經過了深入思考,回答出這些問題簡直易如反掌,但對于那種直奔結果而去的候選人而言,這個問題卻并不容易,當初決定的草率會在這個環節暴露無疑。這是整個面試的重頭戲,候選人完全可以在這個環節將自己對技術的深入理解體現出來。
所有的問題都是開放的,沒有正確答案可言,通過這樣的交流過程,我們可以看到候選人更多方面的能力:思考方式、分析能力、表達方式等等。當然,也有一些人讓人遺憾,他們應該是做了很多出色的工作,但完全沒有辦法清晰地表述出來。我喜歡聽到的介紹方式是,層次清晰的講述,當然,如果有激情就更好了。如果你看到過對技術真的有熱情的人講技術,你會知道,與那樣的人交流簡直是就是一種享受。
之后,了解候選人的本職工作之外的努力,因為所謂的工作,并不能阻止一個真正熱愛寫程序的人求知的心:即便他只是Java程序員,并不妨礙他了解Ruby;即便工作再忙,他也會抽空學點東西。如果候選人曾經利用時間做過一些東西,那是我們樂于見到的,如果再能涉獵更多的東西,那簡直太好了,當然,會問一些問題,了解他是“聽說、了解、用過,還是深入研究過”。
單就面試過程而言,ThoughtWorks的面試并沒有特別的。但為什么還有很多人會覺得這個過程很難。或許,這就是他們習慣的工作方式與我們工作方式的差異所在。
眾所周知,ThoughtWorks在“如何做軟件”方面是走得很靠前的。當客戶還在考慮ClearCase是否要切換成SVN時,我們已經拋棄了SVN,擁抱了git;當很多公司開始做持續集成時,我們已經開始了持續交付;當許多人開始擁抱敏捷時,我們正逐步地“去敏捷”。
在ThoughtWorks工作,要找的是真正熱愛技術的人,喜歡刨根問底的人,那種為了完成而完成的人不是想要的。在公司里,經常會聽到這樣的話:我們不只要實現功能,更要以正確的方式來做。追求是無止境的,所以,要找的就是具備深入思考的能力/潛力的人,這樣,才能不斷向前。
在很多的人印象中,ThoughtWorks有一群特別能說的人,沒錯,在我們的工作里,溝通占了很大的比例,無論是我們在交付項目中,還是咨詢項目里;無論是與自己人,還是與客戶。所以,在面試中,我們也特別重視一個人的表達能力,肚子有貨的人是否能夠清晰地表達出來,而表達能力往往是一面反映多方面能力的鏡子:分析能力、組織話題的能力、對技術的理解等等。
以個人觀察而言,在程序員這個悶騷遍地的行業里,所謂不擅與人溝通的程序員只是沒有找到合適的環境。其實,表達能力完全是可以鍛煉出來的。還記得我第一次在東軟給別人講東西的時候,緊張得手心里全是汗。在公司內部主動講講東西,在社區活動做一些分享,多講幾次,什么問題就都沒有了。
其實,所謂ThoughtWorks面試難,在我看來,只不過與其他公司只重視技術能力而言,我們更注重全方位的工作能力而已。因為在ThoughtWorks,我們是程序員,但我們不只是程序員。
ThoughtWorks面試感悟分享
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
- 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
推薦閱讀更多精彩內容
- Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
- 招人,是困擾絕大多數創業公司的世界級難題;就連雷軍這樣的大佬,不是都說:“我用80%的時間招人”么 在創業的18個...
- 2014.9.16 北京 國話先鋒劇場 曾經懷有疑問:肢體劇存在的意義為何?前有戲劇擬真而接地氣的表演系統,后有舞...