最近雅虎北研解散的消息觸動了各大互聯(lián)網(wǎng)公司 HR 的神經(jīng)。公司里一下子面試的任務(wù)多了起來。正好借機會總結(jié)一下自己畢業(yè)后作面試官以來參與若干場技術(shù)面試的一點心得,分享一下。
當(dāng)好一個面試官其實也很不容易,不但要練就一雙火眼金睛,把優(yōu)秀的人才和水貨在短短的面試的幾十分鐘里分辨出來,同時面試官本身就是候選人觀察公司的一個窗口。在面試中,面試官還要注意很多接人待物的細(xì)節(jié),既能彰顯公司求賢若渴、對人才的尊重,又能將公司的技術(shù)水平和文化氛圍展露一二,以求給候選人留下良好的印象。
社招某種意義上比校園招聘更困難。面對形形色色的社招候選人,首先一個要想清楚的問題就是我們到底該招什么樣的人?簡單的說就一句話,適合自己公司的人。每個公司都有獨特的文化和特定的業(yè)務(wù)需求,更有各自的業(yè)務(wù)發(fā)展階段。就算同樣是招程序員,也應(yīng)該因地制宜,有所側(cè)重。拿我現(xiàn)在所在的公司(某大型外企駐華研發(fā)機構(gòu))、所在的行業(yè)(瞬息萬變的互聯(lián)網(wǎng))來說,我覺得最重要的就是下面幾點:
第一,聰明。作為大公司,尤其是外企,總部的制約總是一定程度的存在,互聯(lián)網(wǎng)行業(yè)更是一個日新月異的行業(yè)。這時,項目背景和知識遠(yuǎn)沒有能力靠譜。如果一個人的工作業(yè)績,是來自無數(shù)歲月一脈相承而延續(xù)下來的知識體系,是積累到某種程度的知識土壤上很自然的發(fā)芽、開花、結(jié)果,那么在這種充滿未知、充滿變化的行業(yè)和工作中,一旦項目發(fā)生較大變化,那么你在適應(yīng)新任務(wù)、新角色、新挑戰(zhàn)時就會出現(xiàn)很大的落差甚至困難,最后的結(jié)果通常是工作效率顯著下降,嚴(yán)重的甚至只能一拍兩散。公司花這么大的力氣招聘和培養(yǎng)人才,如果僅僅因為項目變化就發(fā)生大規(guī)模的離職,想來從公司角度是非常不劃算的。所以,在我參與的面試中,我最提倡招聰明人,要招比自己聰明的人,招能適應(yīng)各種新技術(shù)、新行業(yè)、接受新挑戰(zhàn)的人,招和自己不一樣的人。當(dāng)然,這也是由公司的特點決定的。我們公司的特點是組織機構(gòu)調(diào)整、項目變化頻繁,公司規(guī)模很大、業(yè)務(wù)范圍很寬,對正式員工相對較負(fù)責(zé),內(nèi)部培訓(xùn)較完善,裁人比較慎重,發(fā)生各種變化時內(nèi)部換崗機會多。其他公司未必可以參考,但可以結(jié)合自己的需求和特點對號入座。
為了測試一個人的聰明程度,我通常會給他一道算法類的題目,讓候選人嘗試給出一個經(jīng)過優(yōu)化的解。選題時,我通常會選擇那些不同思路、不同水平的解非常多的題目。我一般并不指望候選人一下子把最優(yōu)解做出來(實際上也有個別能做到的特別優(yōu)秀的候選人,但同時也要小心他以前做過類似的題)。我會通過交流去嘗試?yán)斫馑膬?yōu)化思路,然后適時的沿著他的思路給點提示,看看他能不能有什么進(jìn)展。在交流中,我主要觀察一個人的邏輯思維的嚴(yán)密性、考慮問題是否全面,思考是否迅捷,能不能突破既有思路的框框。我還要觀察候選人能否在解題過程中很好的理解問題,對問題能否進(jìn)行系統(tǒng)性的有條理的分析。俗話說文無第一、武無第二,其實任何最優(yōu)解都有一些充分限定的條件或假設(shè)作為前提,除非用數(shù)學(xué)公式的風(fēng)格嚴(yán)謹(jǐn)?shù)某鲱},常規(guī)意義的完美解是很少存在的。一個人,如果能突破常規(guī),能對問題有很好的分析,取得一定進(jìn)展,我覺得在有限的時間和面試的壓力下,能做到這些已經(jīng)難能可貴了,面試官也并不一定有必要盲目的追求最優(yōu)解。
在這里,也要順道提醒參加面試的候選人。解題時,要留意面試官的問題和提示(如果有的話)。我記得見過一些候選人在面試中完全封閉在自己的世界里,從面試官的角度來說,他們完全沒有任何進(jìn)展的憋在那里,甚至在面試官主動幫助他的時候也沒有取得任何有意義的反饋。縱使候選人天賦異稟、聰明絕頂,但如果在面試中與面試官都無法順利協(xié)作,那么實際工作中又會如何呢?面試官既然花費時間參加面試,從內(nèi)心深處都是非常希望找到合適候選人的,面試官也希望被面試的你通過面試。所以,從心態(tài)上不要簡單的把面試當(dāng)作一個非黑即白、相互對立的考試。從某種意義上說,我更不僅僅是一次考試,他更像相親,呵呵。
第二,技術(shù)深度。作為軟件工程師,畢竟還是一個技術(shù)性崗位。不管你有多聰明,如果你的個性和主觀意愿上決定了,你并沒有在技術(shù)上鉆研到一定深度的意愿或能力,那么公司派你沖鋒陷陣的時候就要考慮一下了。畢竟就算對你來說是新領(lǐng)域,從互聯(lián)網(wǎng)公司的需求來說,公司通常要你在最短的時間幫助他們提高產(chǎn)品技術(shù)水平,以便有機會能在殘酷的市場上取得有利的競爭地位。并非公司沒有耐心等你慢慢成長,而是外部環(huán)境、那些虎視眈眈的競爭者不允許。如果你個人沒有追求卓越的習(xí)慣,不能在有限時間將你學(xué)習(xí)和掌握的技術(shù)鉆研到足夠的深度,那么公司將無法在殘酷的市場競爭中生存,公司雇傭你、留住你的意義又何在?所以,我覺得公司需要的人才是這樣的,他們有追求卓越的意愿,有獨立探索、不斷學(xué)習(xí)和自我進(jìn)步的能力,他們哪怕從事的是全新的領(lǐng)域,只要給他一點合理的適應(yīng)和探索的時間,他都可以做的比很多人、比其他公司更好。
在技術(shù)深度的面試中,我通常會通過候選人以前做的項目、讀過的書或者熟悉的編程語言,圍繞著這些話題來出題。面試官當(dāng)然不可能什么都懂得很深,所以面試題也不需要過于刁鉆、古怪。拿以項目背景為主的話題為例,可以通過不斷深入的去了解對方的角色和職責(zé),看看他對項目中的各種技術(shù)、架構(gòu)和具體實現(xiàn)是否熟悉。如果發(fā)現(xiàn)系統(tǒng)設(shè)計上的瑕疵或挑戰(zhàn),還可以更深入的探討,看看候選人的反應(yīng)。有些候選人號稱是核心開發(fā)人員或者項目主管,但實際上問他很多細(xì)節(jié)問題根本回答不出來,這種候選人或許浮在上面做管理工作太多、技術(shù)上不是特別擅長,要么就是簡歷中水分太大并沒有多少真金白銀。談?wù)勈煜さ木幊陶Z言或技術(shù)書籍也是不錯的選擇,但要注意別考很偏的問題,因為那是在考知識,不是考能力。知識對于聰明人來說是可以學(xué)習(xí)的,面試中要側(cè)重對知識的運用。很多技術(shù)涉獵不深的程序員,常常是知其然不知其所以然,更談不上活學(xué)活用。當(dāng)然實際上知其然恐怕有不少候選人都做不到,這類人特別是工作年限很長的就算了,說明他缺少對技術(shù)的理解還是很淺,難以承擔(dān)重任。很遺憾在這里不能通過面試題舉例一二,以后方便的時候再跟大家交流吧。
第三,技術(shù)溝通能力。排除個性和常規(guī)的溝通技巧等因素,很好的技術(shù)溝通能力實際上在日常工作中非常重要。我們需要優(yōu)秀的工程師不但能孤軍奮戰(zhàn),也能團(tuán)隊協(xié)作。這就要求大家能抓住問題要旨,在交流和對話中完全沒有溝通障礙的可以并肩戰(zhàn)斗的伙伴。而良好的技術(shù)溝通能力,實際上需要很多素質(zhì),包括即時反應(yīng)能力、很強的技術(shù)理解力、系統(tǒng)性的思考和分析能力、總結(jié)和概括能力以及具象化的展示和表達(dá)能力,實際上當(dāng)真是很難得的。在面試中要格外關(guān)注候選人在交流中所表現(xiàn)出來的種種行為特征和模式,比如木訥、啰嗦、跑題、搶話、傲慢等等。對有比較嚴(yán)重的溝通缺陷的候選人,縱使其它各項面試表現(xiàn)良好,也要格外慎重,否則極有可能會拖累團(tuán)隊的效率。
第四,代碼。歸根到底,程序員特別是基層是用代碼說話的職業(yè)。我很難想象一個事業(yè)上成功的優(yōu)秀的程序員,居然不能再面試中寫出清晰、嚴(yán)謹(jǐn)、高效的代碼。我個人是建議算法題和代碼題分開,最好混在一起。我的代碼題一般重點考察兩點:候選人的代碼風(fēng)格如何,包括函數(shù)和變量的命名,包括程序邏輯是否存在大量的冗余,包括一些個人的編程習(xí)慣如何;此外,還會考察候選人的程序邏輯上是否嚴(yán)密,對輸入有無斷言或正確性驗證,對各種邏輯上的邊界條件能否正確處理,特別是寫好程序后有沒有自我測試的過程,通過合適的測試用例驗證程序的正確性。即便對于那些面向基層管理職位和架構(gòu)師職位的人我也是一視同仁的,在我看來沒能力用代碼說話的技術(shù)人員,是很難做好基層的項目管理、研發(fā)管理等職位的,除個別妖孽外我也很難想象一個沒能力寫好代碼的人能做好架構(gòu)層面的設(shè)計。歸根到底,這一切都是相通的,是程序員的基本功,說的或許不貼切,但至少我沒見過初等數(shù)學(xué)一團(tuán)糟但微積分非常出色的人。
第五,品味和興趣。通常我開始了解一個候選人的技術(shù)品味的時候,他已經(jīng)通過了面試,而且我對他的面試成績一定是非常滿意的。在這個層面,我會問問他最近在業(yè)余時間讀了什么技術(shù)書籍,探索了什么有趣的新技術(shù),或者經(jīng)常去什么網(wǎng)站學(xué)習(xí)。一方面,一個人的技術(shù)水平的提高除了來自工作時間公司項目里身邊的這些同事,也來自他業(yè)余時間自己的個人涉獵,這時候他的興趣和品味會為他選擇最適合他的渠道。如果一個候選人足夠優(yōu)秀,我常常會問他這方面的問題,一方面我可以借機學(xué)習(xí),多多參考他公司之外的學(xué)習(xí)之道;另一方面,也可以更全面掌握他的知識結(jié)構(gòu)和興趣愛好,看看有沒有給面試加分的或者適配于工作需要的地方。
好了,今天先分享到這。有什么不當(dāng)和疏漏在所難免,歡迎業(yè)界朋友多多指教!
掃碼二維碼 獲取免費視頻學(xué)習(xí)資料
- 本文固定鏈接: http://www.wangchenghua.com/post/3187/
- 轉(zhuǎn)載請注明:轉(zhuǎn)載必須在正文中標(biāo)注并保留原文鏈接
- 掃碼: 掃上方二維碼獲取免費視頻資料