很早以前就想寫一篇和面試相關(guān)的文章了凤覆,之前在網(wǎng)絡(luò)上看到一篇關(guān)于如何去面試程序員的英文文章,發(fā)現(xiàn)其中有很多和我共鳴的東西酿愧,所以仿照其標(biāo)題通過(guò)自己的經(jīng)歷寫下了這篇文章挺狰。
工作這么多年來(lái),既被面試過(guò)廷区,也面試過(guò)他人唯灵,對(duì)于程序員的面試,經(jīng)歷過(guò)很不錯(cuò)的面試隙轻,很專業(yè)的面試埠帕,也經(jīng)歷過(guò)一些SB和令人不爽的面試垢揩。我個(gè)人覺得一個(gè)好的面試,面試官是很重要的敛瓷。所以叁巨,本文想從“面試官”的角度來(lái)闡述一下,于是呐籽,有了下面這樣一篇的文章锋勺,希望本文對(duì)你的職場(chǎng)經(jīng)歷有用,特別是那些正在招聘和面試程序員的朋友狡蝶,我覺得這篇文章會(huì)對(duì)大家有很多啟示宙刘。
對(duì)于招聘方來(lái)說(shuō),在招聘程序員的時(shí)候牢酵,我估計(jì)面試應(yīng)聘者時(shí)悬包,最主要想知道的是下面三件事:
這個(gè)程序員的是否夠聰明?
這個(gè)程序員能否把事情搞定馍乙?
這個(gè)程序員能和我的團(tuán)隊(duì)在一起工作嗎布近?
我相信,這是所有團(tuán)隊(duì)經(jīng)理招人要考慮的三個(gè)問題丝格,所有的問題也基本上圍繞著這三個(gè)問題撑瞧。有些時(shí)候,你也許覺得程序員的技術(shù)技能可以同時(shí)解決這三個(gè)問題显蝌,一個(gè)技術(shù)能力優(yōu)秀的人必然是一個(gè)聰明的预伺,可以搞定事情的人,當(dāng)然也就能和團(tuán)隊(duì)一起工作了曼尊。是的酬诀,感覺看起來(lái)是這個(gè)樣子,但其實(shí)并不是這樣的骆撇。
有些人的確很聰明瞒御,但卻不能處理好工作上的事情,這樣人應(yīng)該是你的朋友神郊,你的顧問肴裙,但不應(yīng)該是你的雇員。有的人為人很不錯(cuò)涌乳,和團(tuán)隊(duì)所有人都合得來(lái)蜻懦,但并不是很聰明,但工作很刻苦很努力夕晓,這樣的人可以成為你的下屬宛乃,比如某個(gè)下屬骨干的助手,或是整個(gè)團(tuán)隊(duì)的助手。如果某個(gè)人不能和團(tuán)隊(duì)一起工作烤惊,無(wú)論其有多聰明乔煞,解決問題的能力有多強(qiáng)吁朦,你都不應(yīng)該和他在一起工作柒室。人個(gè)認(rèn)為,團(tuán)隊(duì)的和諧是一切事情的前提逗宜。
對(duì)于傳統(tǒng)的面試招聘過(guò)程雄右,基本上來(lái)說(shuō)都是下面這樣的樣子的:
閱讀應(yīng)聘者的簡(jiǎn)歷,讓應(yīng)聘者做個(gè)自我介紹纺讲。
問一些比較難的非常細(xì)節(jié)的技術(shù)問題擂仍,以一問一答的形式。
給面試者一些和幾個(gè)編程難題熬甚。(比如某些怪異的算法題)
我個(gè)人覺得這種面試方法很可笑逢渔,也很糟糕,尤其是后面兩點(diǎn)乡括。通常來(lái)說(shuō)肃廓,這樣的面試只會(huì)讓你面試到一些“書呆子”或是一些“技術(shù)癡迷者”,下面讓我來(lái)一條一條地剖析一下這幾條的弊端诲泌。
你很難從一個(gè)人的簡(jiǎn)歷或是自我介紹上了解一個(gè)人盲赊。因?yàn)檫@些都是當(dāng)事人自己寫的。所以敷扫,這并不是很準(zhǔn)確的哀蘑。而在面試的開始,讓應(yīng)聘者做自我介紹葵第,只會(huì)讓面試者以很正式的態(tài)度來(lái)面對(duì)整個(gè)面試绘迁。一旦面試過(guò)程很正式,很嚴(yán)肅卒密,就會(huì)讓人很拘禁脊髓,其實(shí),這并不是我們想要的栅受,我要的是應(yīng)聘者真實(shí)和自然的表現(xiàn)将硝,從而才能了解到最真實(shí)的東西。
問幾個(gè)技術(shù)細(xì)節(jié)的問題屏镊。比如:我個(gè)人經(jīng)歷過(guò)的——“ps的-a參數(shù)是什么意思依疼?”,“vi中刪除換行符的命令是什么而芥?”律罢,“C++的關(guān)鍵字explict,mutable是用來(lái)干什么?”等等。以前做為一個(gè)應(yīng)聘者來(lái)說(shuō)误辑,我非常討厭這樣的問題沧踏,因?yàn)檫@樣的問題查一下手冊(cè)就知道。難道他要招的是一個(gè)字典手冊(cè)巾钉?不是一個(gè)人翘狱?對(duì)于這方面,重要的不是知識(shí)砰苍,重要的是其查找知識(shí)的能力潦匈。
給應(yīng)聘者一個(gè)或幾個(gè)很難的算法題,給上十幾分鐘赚导,然后讓面試者把偽代碼或是代碼寫下來(lái)茬缩。這樣的做法是相當(dāng)可笑的,不能討論不能查資料吼旧,讓人在一種壓力狀態(tài)下作答凰锡,這根本就不是實(shí)際工作中的狀態(tài),而面試也就成了一種刁難(我最變態(tài)的經(jīng)歷是圈暗,當(dāng)我把寫在兩頁(yè)紙上的代碼上交上去后掂为,面試官把其交給旁邊程序員輸出電腦做校驗(yàn),結(jié)果程序員說(shuō)厂置,編譯出錯(cuò)菩掏。于是,面試官說(shuō)昵济,“很遺憾智绸,可能你寫的程序還不多”,相當(dāng)可笑)访忿。
我以前經(jīng)歷過(guò)很多的面試瞧栗,當(dāng)技術(shù)人員來(lái)和我做面試的時(shí)候,我發(fā)現(xiàn)海铆,“技術(shù)人員的思維”對(duì)于某些人來(lái)說(shuō)根本分不清面試和考試迹恐,在潛意識(shí)里,他們?cè)诤芏鄷r(shí)候不是在面試這個(gè)人卧斟,而是在刁難這個(gè)人并以此展示自己的技能殴边。我個(gè)人認(rèn)為我是一個(gè)好的程序員,但我無(wú)法通過(guò)那樣的面試珍语,因?yàn)槟菢拥拿嬖囀菫樗麄冏约簻?zhǔn)備的锤岸,而不是為應(yīng)聘者準(zhǔn)備的。
那么板乙,我又是怎樣去面試的呢是偷?
一、確認(rèn)簡(jiǎn)歷
首先,閱讀一下別人的簡(jiǎn)歷是需要的蛋铆。工作經(jīng)歷馋评,項(xiàng)目經(jīng)歷,技術(shù)技能這三個(gè)事情是你需要了解的刺啦。一般來(lái)說(shuō)留特,你可以先通過(guò)電話確定一下他的工作經(jīng)歷,項(xiàng)目經(jīng)歷和技術(shù)技能洪燥,然后磕秤,如果他和你需要的人條件相符的話乳乌,可以叫到公司做面對(duì)面的面試捧韵。千萬(wàn)不要把別人叫來(lái),你又說(shuō)你的經(jīng)歷和我們的工作有差距之類的話汉操。
我有過(guò)一次面試經(jīng)歷再来,公司我不說(shuō)了,反正是那個(gè)號(hào)稱需要有良好溝通的公司磷瘤,面試了我9次左右芒篷,從一般的程序員,PM采缚,經(jīng)理针炉,到總經(jīng)理,而最后一次直接告訴我扳抽,我以前的經(jīng)歷和他們的要求差距很大篡帕。我不禁要問了,前面若干次的面試他們都在干什么呢贸呢?
二镰烧、面試開場(chǎng)
其次,把人邀請(qǐng)來(lái)公司面試楞陷,應(yīng)聘者到了公司來(lái)面試怔鳖,有一點(diǎn)很重要,那就是你一定要讓整個(gè)面試過(guò)程變得很隨意固蛾,很放松结执,就像普通的聊天和一般朋友間的交流一樣。這樣應(yīng)聘者才會(huì)放松并拿出真實(shí)的樣子來(lái)和你談話和聊天艾凯,你才能在很短的時(shí)間內(nèi)了解得更多献幔。讓應(yīng)聘者放下心理負(fù)擔(dān),讓其表現(xiàn)得自然一些览芳,這是招聘方的責(zé)任斜姥。千萬(wàn)不要說(shuō),別人太緊張發(fā)揮的不好,有時(shí)候铸敏,招聘方得想想自己的問題缚忧。
面試開場(chǎng)的時(shí)候,不要讓應(yīng)聘者介紹自己杈笔。因?yàn)樯了瑧?yīng)聘者早就給你發(fā)過(guò)簡(jiǎn)歷了,而你也給其打過(guò)電話了蒙具。另外球榆,應(yīng)聘者對(duì)這個(gè)面試慣例通常都會(huì)準(zhǔn)備得非常不錯(cuò)的,另一方面禁筏,這會(huì)讓整個(gè)面試過(guò)程太正式太嚴(yán)肅了持钉。所以,不妨問問應(yīng)聘者是怎么過(guò)來(lái)的篱昔?最近怎么樣每强?還可以和應(yīng)聘者談一個(gè)大眾話題,比如喜歡什么體育州刽,音樂空执,電影,社會(huì)熱點(diǎn)什么的穗椅,自己也別板著個(gè)臉辨绊,說(shuō)說(shuō)笑笑,試圖讓大家都放松下來(lái)匹表。另外门坷,通過(guò)這些閑聊,你可以知道他/她的與人交往能力和一些性格桑孩。另外拜鹤,不要讓桌子放在你和應(yīng)聘者之間,把環(huán)境搞得隨意一些流椒。
三敏簿、多讓應(yīng)聘者說(shuō)說(shuō)他的經(jīng)歷
接下來(lái),如果你要覺得這個(gè)應(yīng)聘者是否是一個(gè)可以解決問題宣虾,是一個(gè)可以把事情搞定的人惯裕,不用問他/她會(huì)做什么,直接問問其做過(guò)什么绣硝?干過(guò)什么事蜻势?對(duì)于一個(gè)好的程序員來(lái)說(shuō),很難想像其沒有相關(guān)的實(shí)踐鹉胖,就算你是在大學(xué)里握玛,你也應(yīng)該做過(guò)什么够傍。如果你有解決問題的能力,那么挠铲,很顯然冕屯,今天你應(yīng)該解決了很多問題,也搞定了很多事情拂苹,聽聽?wèi)?yīng)聘者說(shuō)一說(shuō)他的那些事安聘。(不要使用一問一答這種方式,應(yīng)該讓應(yīng)聘者多說(shuō)瓢棒,而多聽浴韭,多想)
在他講他的項(xiàng)目的時(shí)候,通常來(lái)說(shuō)你要注意下面幾點(diǎn):
溝通表達(dá)能力脯宿。應(yīng)聘者能不能把一個(gè)事情講清楚念颈。如果這個(gè)人聰明的話,他就可以用最簡(jiǎn)單的語(yǔ)言把一個(gè)復(fù)雜的事情講清楚嗅绰。而且舍肠,這是一個(gè)好的程序員最基本的能力搀继。而且窘面,你可以在應(yīng)聘者一邊描述其經(jīng)歷的時(shí)候,你可以和應(yīng)聘者有一些的良好的來(lái)來(lái)回回的交談叽躯,這樣就可以知道财边,他的溝通能力和溝通方式,從而了解他的性格点骑。
角色和位置酣难。也許他參與了一個(gè)很大的項(xiàng)目,但只是做了一個(gè)很簡(jiǎn)單的模塊黑滴。所以憨募,了解其在項(xiàng)目中的擔(dān)任的角色和位置是非常必要的。當(dāng)應(yīng)聘者說(shuō)到“我們”或者“大家”之類的詞匯時(shí)袁辈,一定要向下細(xì)化和明確菜谣。
做出的貢獻(xiàn)和解決了什么的問題。這個(gè)很重要晚缩,通過(guò)了解這個(gè),你可以知道面試者是否聰明,是否有能力解決問題憨攒,是否有好的技術(shù)底子昂羡。
演示。如果可能鸣皂,你可以讓應(yīng)聘者展示一些其寫過(guò)的代碼抓谴,做過(guò)的設(shè)計(jì)暮蹂,或是直接給你看看他寫的程序的演示。(從設(shè)計(jì)上癌压,代碼的風(fēng)格椎侠,重用性,維護(hù)性上你可以了解很多很多)
基礎(chǔ)知識(shí)措拇。了解該項(xiàng)目中應(yīng)聘者使用的技術(shù)的一些基礎(chǔ)知識(shí)我纪,比如,通過(guò)整個(gè)過(guò)程丐吓,你可以問一些網(wǎng)絡(luò)浅悉,語(yǔ)言,面象對(duì)象券犁,系統(tǒng)的一些基礎(chǔ)知識(shí)术健。基礎(chǔ)知識(shí)是非常重要的粘衬,這直接關(guān)系到了他的能力荞估。
流程和工具。了解應(yīng)聘者所熟悉的項(xiàng)目的流程(銀彈稚新,瀑布勘伺,敏捷,……)褂删,還有流程中的一些工件(如:需求文檔飞醉,設(shè)計(jì)文檔,測(cè)試方檔等)屯阀,以及在開發(fā)過(guò)程中使用的工具(內(nèi)存測(cè)試缅帘,代碼檢查,BUG報(bào)告难衰,版本維護(hù)钦无,開發(fā)調(diào)試……)
有人會(huì)說(shuō),應(yīng)聘者的經(jīng)歷可以被他自己編出來(lái)的盖袭,他可以把一些不是他做的事說(shuō)成是他做的失暂。是的,的確是有這種可能苍凛。不過(guò)趣席,不要忘了,一個(gè)謊言背后需要用更多的謊言來(lái)圓謊的醇蝴,所以宣肚,你不必?fù)?dān)心這個(gè)問題,只要你在應(yīng)聘者的描述過(guò)程中逐步求精悠栓,細(xì)化問題霉涨,你會(huì)知道應(yīng)聘者是否是在編故事的按价。
千萬(wàn)記住下面幾點(diǎn):
談話風(fēng)格要隨意和自然,不要正式笙瑟。
在了解應(yīng)聘者以前做過(guò)的事的時(shí)候楼镐,不要太投入了。因?yàn)檎衅阜揭彩羌夹g(shù)人員往枷,所以有時(shí)候框产,招聘者自己會(huì)因?yàn)閼?yīng)聘者所做的項(xiàng)目中的技術(shù)太過(guò)迷人而被吸引了。
要注意引導(dǎo)應(yīng)聘人错洁。相信我秉宿,應(yīng)聘的程序員十個(gè)人有八個(gè)人講不清楚以前做的是什么。因?yàn)樗麄冎苯犹^(guò)了項(xiàng)目背景和要解決什么樣的問題屯碴,而直接進(jìn)入具體實(shí)現(xiàn)描睦。
不要一問一答,應(yīng)該多讓應(yīng)聘者說(shuō)导而,這樣才能多全方位了解一個(gè)人忱叭。
了解一個(gè)人的過(guò)去,了解一個(gè)人做過(guò)的事情今艺,比其會(huì)做什么更重要韵丑。
了解一個(gè)人的性格,想法洼滚,思維和行為埂息,比了解其技術(shù)技能更重要。
溝通能力遥巴,表達(dá)能力,語(yǔ)言組織能力享幽,理解能力铲掐,等方面的能力,關(guān)系到了是否能和別人一起工作值桩。
基礎(chǔ)知識(shí)比知識(shí)的點(diǎn)滴要重要得多摆霉。你可能不知道其個(gè)C++的關(guān)鍵字,但你應(yīng)該要知道C++的繼承和多態(tài)奔坟。
技術(shù)技能固然很重要携栋,但比其更重要的是這個(gè)人獲取知識(shí)的能力,學(xué)習(xí)能力是在計(jì)算機(jī)這樣變化飛快行業(yè)中必需具備的咳秉。
是否可以進(jìn)行培養(yǎng)婉支,比掌握的技能更重要。
四澜建、實(shí)際參與
這一步可能是很不好實(shí)施的向挖。因?yàn)轵蛞裕@需要一些應(yīng)聘者付出一定的時(shí)間,如果是畢業(yè)生何之,那沒有問題跟畅,先讓他來(lái)實(shí)習(xí)一段時(shí)間。但如果別人有工作溶推,就不好了徊件。也許你會(huì)說(shuō),這就是試用期的用處了蒜危。不過(guò)庇忌,我個(gè)人覺得,你得要尊重應(yīng)聘者舰褪,人家把那邊的工作辭了皆疹,來(lái)你這邊工作,三個(gè)月試用期間占拍,如果沒有什么原則上的問題略就,你作為一個(gè)招聘方又反悔了,這樣做很是相當(dāng)?shù)牟缓没尉啤H绻l(fā)現(xiàn)這樣的事表牢,只能是招聘者自己的問題。
在面試過(guò)程中贝次,一些招聘者會(huì)讓應(yīng)聘者們一起做個(gè)游戲崔兴,或是搞個(gè)辯論比賽,或是現(xiàn)場(chǎng)組個(gè)團(tuán)隊(duì)干個(gè)簡(jiǎn)單的事情蛔翅,有的甚至讓應(yīng)聘者請(qǐng)一天假到自己的公司里來(lái)和自己的團(tuán)隊(duì)一同工作一天敲茄,并要完成某個(gè)事情(甚至給其設(shè)置上deadline),并通過(guò)這些來(lái)考量應(yīng)聘者的實(shí)際參與能力山析。
是的堰燎,如果沒有一起工作過(guò),沒有一些實(shí)際的事情發(fā)生笋轨,單靠幾個(gè)小時(shí)的面試很難了解一個(gè)人的秆剪。設(shè)置上這些面試的環(huán)節(jié),在最短的時(shí)間內(nèi)來(lái)了解應(yīng)聘者的一切爵政,對(duì)于招聘方來(lái)說(shuō)無(wú)可厚非仅讽。而且有的時(shí)候也能得到不錯(cuò)的效果。在這里钾挟,我只提一點(diǎn)洁灵,有時(shí)候這樣的周期拉得很長(zhǎng),讓應(yīng)聘者付出了很多等龙,反爾會(huì)讓應(yīng)聘者產(chǎn)生反感和厭煩情緒处渣,從某種意義上來(lái)說(shuō)伶贰,這實(shí)在是對(duì)應(yīng)聘者的不尊重。
對(duì)于這一點(diǎn)罐栈,我一直持疑問的態(tài)度黍衙,所以,我在其后打了兩個(gè)問號(hào)荠诬。老實(shí)說(shuō)琅翻,對(duì)于實(shí)際參與這一環(huán)節(jié),我個(gè)人的意見是適可而止柑贞,因?yàn)闀r(shí)間太短了方椎,無(wú)論你怎么做都無(wú)法了解完整。即然無(wú)法了解完整钧嘶,那就獲取你最需要的吧棠众,就是本文開頭的那三個(gè)問題,以及上面所述的“第三點(diǎn)”(了解應(yīng)聘者的以往經(jīng)歷)有决。
擴(kuò)展閱讀
不談面試題闸拿,談?wù)務(wù)衅笗r(shí)面試官喜歡見到的特質(zhì)!
程序員如何在“小公司成長(zhǎng)”和“大公司學(xué)習(xí)”
作者:陳皓
來(lái)源:https://coolshell.cn/articles/1870.html