臨近年關(guān)爷光,今年面試跳槽的人特別多垫竞,關(guān)注我的朋友都知道我不輕易做分享,因?yàn)檫@沒(méi)有標(biāo)準(zhǔn)答案蛀序,看法也因人而異欢瞪。但我發(fā)現(xiàn)有些面試問(wèn)題還挺普遍的,今天就說(shuō)說(shuō)我做面試官這幾年的經(jīng)驗(yàn)徐裸,從面試官的角度去看面試遣鼓,希望對(duì)在準(zhǔn)備面試以及想要提升的程序員們有點(diǎn)啟發(fā),以下僅是個(gè)人經(jīng)驗(yàn)總結(jié):
? ? 如何閱讀候選人簡(jiǎn)歷
閱讀候選人的簡(jiǎn)歷重贺,這是招聘流程中的第一項(xiàng)工作。候選人的簡(jiǎn)歷各式各樣,工程師們一般都比較忙端辱,如何快速的閱讀簡(jiǎn)歷又不失重點(diǎn)呢醋火?我根據(jù)自己的經(jīng)驗(yàn)總結(jié)了幾點(diǎn),供大家參考:
首先潜圃,對(duì)于候選人來(lái)講缸棵,大公司的工作經(jīng)歷是很重要的能力,而且級(jí)別越高可以粗略等同認(rèn)為越優(yōu)秀谭期,雖然也會(huì)有個(gè)例堵第,但一般情況下,阿里 P8 要比 P7 技術(shù)能力優(yōu)秀隧出,百度的 T7 要比 T6 優(yōu)秀踏志。但是這種情況只針對(duì)大公司,對(duì)于一些小公司鸳劳,Title 并不與能力劃等號(hào)狰贯,小公司技術(shù)總監(jiān)的技術(shù)能力不如大公司的一個(gè)普通的資深工程師的情況也是常有的事情。
其次赏廓,有比較有技術(shù)含量的項(xiàng)目經(jīng)歷涵紊,我發(fā)現(xiàn)有很多工作年限比較長(zhǎng)的候選人,簡(jiǎn)歷十幾頁(yè)幔摸,項(xiàng)目大大小小幾十個(gè)摸柄,而很多項(xiàng)目都是 3,5 個(gè)月就做完既忆,用到的技術(shù)也比較重復(fù)驱负、淺顯嗦玖。對(duì)于候選人的技術(shù)積累來(lái)說(shuō),10 年的經(jīng)驗(yàn)跟一年的經(jīng)驗(yàn)差不多跃脊,所以項(xiàng)目不在多宇挫,而在于能提現(xiàn)候選人的技術(shù)能力。
還有酪术,有高質(zhì)量的開(kāi)源項(xiàng)目器瘪;項(xiàng)目背景比較切合;有在技術(shù)網(wǎng)站發(fā)表過(guò)文章或高質(zhì)量的技術(shù)博客绘雁;做過(guò)一些業(yè)余項(xiàng)目等橡疼,都可以作為加分項(xiàng)。
? ? 少問(wèn)記憶性問(wèn)題和太理論性問(wèn)題
有些 JAVA 面試官逢人便問(wèn) JVM 幾種垃圾回收算法優(yōu)劣對(duì)比庐舟,這種文科題目在我看來(lái)是沒(méi)有太大意義的欣除,一方面沒(méi)有區(qū)分度,另一方便容易突擊準(zhǔn)備挪略,往往考察不出候選人的真實(shí)能力历帚。所以我面試不直接問(wèn)記憶性問(wèn)題,也不直接問(wèn)理論性問(wèn)題瘟檩,而是換個(gè)問(wèn)法抹缕,將這些記憶性的、理論性的知識(shí)融入實(shí)踐墨辛。
比如卓研,有些面試官為了考察候選人多線程方面的知識(shí),經(jīng)常會(huì)問(wèn)到的題目比如 ConcurrentHashMap 的實(shí)現(xiàn)原理睹簇,volatile 關(guān)鍵詞的作用等奏赘,我之前也多次拿這些題目當(dāng)做過(guò)面試題,但總結(jié)下來(lái)發(fā)現(xiàn)太惠,大部分候選人都能答得七七八八磨淌,區(qū)分度很低。我之后換了一種問(wèn)法凿渊,要求候選人將一個(gè)線程不安全的類(lèi)改寫(xiě)成線程安全的類(lèi)梁只,這期間涉及到 volatile,lock, 并發(fā)容器,Atomic 原子操作埃脏,CAS 無(wú)鎖編程等搪锣,發(fā)現(xiàn)只有極少部分候選人給出鎖粒度小,并發(fā)度高的代碼彩掐,部分候選人在提示下可以解決构舟,一些候選人則僅能寫(xiě)出一把 synchorinzed 大鎖的并發(fā)度很低的代碼。
事實(shí)很明顯堵幽,那些能夠給出優(yōu)秀答案的候選人狗超,必定是有著實(shí)踐經(jīng)驗(yàn)弹澎,并且深入思考過(guò),真正理解的人努咐,而相反苦蒿,其他人可能只是臨時(shí)看了幾篇技術(shù)博客而已。
? ? 白板編程真的有必要嗎
白板編程外企面試比較流行麦撵,國(guó)內(nèi)有些候選人不怎么接受刽肠,特別是工作年限較長(zhǎng)的,一說(shuō)要寫(xiě)個(gè)代碼免胃,求職者就覺(jué)得是在“羞辱”他,覺(jué)得不應(yīng)該從這么基礎(chǔ)的問(wèn)起惫撰。
不過(guò)根據(jù)我的面試經(jīng)驗(yàn)發(fā)現(xiàn)羔沙,這種拒絕寫(xiě)代碼的大齡碼農(nóng),滿(mǎn)嘴架構(gòu)厨钻,高可用扼雏,高性能,分布式夯膀,往往一寫(xiě)代碼就抓瞎诗充,代碼寫(xiě)的慘不忍睹。
白板編程一般會(huì)問(wèn)哪種類(lèi)型的題目呢诱建?舉一個(gè)我之前經(jīng)常用的例子:
“寫(xiě)一個(gè)函數(shù)將 ipv4 地址字符串 (僅包含數(shù)字蝴蜓,點(diǎn),空格) 轉(zhuǎn)化成 32 位整數(shù)俺猿,另外茎匠,數(shù)字和點(diǎn)之間的空格是合法的,其他情況均為非法地址押袍,要求輸出合法地址的 32 位整型結(jié)果诵冒。”
這個(gè)題目不需要任何的算法背景和技巧谊惭,純粹考察候選人的基本編程素質(zhì):邏輯思維是否清晰汽馋,細(xì)節(jié)是否考慮全面,是否能寫(xiě)出 bug free 的代碼圈盔,是否有計(jì)算機(jī)思維能關(guān)注時(shí)間空間復(fù)雜度等豹芯。而且在候選人完成代碼之后,我還會(huì)要求候選人將代碼講給我聽(tīng)药磺,當(dāng)然不是因?yàn)槲铱床欢孀椋沁@樣還能順帶考察候選人的表達(dá)能力,溝通能力癌佩,畢竟講給別人聽(tīng)讓別人理解要比單純自己理解難很多木缝。
? ? 智力問(wèn)題為什么會(huì)收到青睞
我們經(jīng)常在網(wǎng)上看到說(shuō)谷歌便锨,微軟等大外企經(jīng)常會(huì)面試智力題目,我認(rèn)為智力問(wèn)題不在于候選人最終是否能提出標(biāo)準(zhǔn)答案我碟,而在于提供一個(gè)話題跟面試者討論放案。考察候選人是否是一個(gè)有想法的人矫俺,思路是否清晰吱殉,邏輯推理能力是否夠強(qiáng),總結(jié)能力是否夠強(qiáng)等等基本素質(zhì)厘托。
智力問(wèn)題最好是比較開(kāi)放性的問(wèn)題友雳,一定不要太難的問(wèn)題,也不要是抖機(jī)靈的問(wèn)題铅匹。有很多面試官拿數(shù)學(xué)難題考候選人押赊,希望 45 分鐘答出來(lái)標(biāo)準(zhǔn)答案,這本身就是不可能包斑,除非之前候選人已經(jīng)看過(guò)流礁,這樣的問(wèn)題也就沒(méi)有意義了。
當(dāng)然罗丰,智力問(wèn)題也并不是適合所有的公司神帅。一般成熟型的大公司,對(duì)候選人可以接受比較長(zhǎng)的培養(yǎng)時(shí)間萌抵,而且默認(rèn)聰明的人學(xué)習(xí)能力都很強(qiáng)找御,所以對(duì)過(guò)往技術(shù)經(jīng)驗(yàn)并非特別的看中,所以一般喜歡面試算法谜嫉,智力問(wèn)題萎坷。對(duì)于一些創(chuàng)業(yè)型公司,更看重候選人的工作經(jīng)驗(yàn)沐兰,青睞技術(shù)多面手哆档,來(lái)了就能產(chǎn)出,所以就不適合在智力問(wèn)題上浪費(fèi)太多的面試時(shí)間住闯。
? ? 把面試當(dāng)做一場(chǎng)技術(shù)討論
篩選候選人就是篩選將來(lái)與你共事的人瓜浸,所以為了更準(zhǔn)確的反應(yīng)候選人在以后的工作中的表現(xiàn),不妨把面試當(dāng)做一場(chǎng)與未來(lái)同事的技術(shù)討論比原,在討論的過(guò)程中感受候選人的技術(shù)能力插佛。
技術(shù)面試就好比打乒乓球,一來(lái)一往中感受彼此的技術(shù)實(shí)力量窘,面試的過(guò)程切忌類(lèi)似與筆試一樣的一問(wèn)一答單向溝通雇寇。特別是一些開(kāi)放性問(wèn)題,架構(gòu)設(shè)計(jì)的問(wèn)題,本身就沒(méi)有標(biāo)準(zhǔn)答案锨侯,背景又過(guò)于復(fù)雜開(kāi)放嫩海,如果只是丟給候選人回答,中間沒(méi)有任何溝通交流和引導(dǎo)囚痴,候選人是很難抓住重點(diǎn)展現(xiàn)出面試官心里期望的表現(xiàn)叁怪。
比如我們面試過(guò)程中經(jīng)常會(huì)讓候選人介紹某個(gè)項(xiàng)目的架構(gòu)設(shè)計(jì),如果面試官能一語(yǔ)中的的提出設(shè)計(jì)中的缺陷深滚,或者追問(wèn)架構(gòu)中的技術(shù)難點(diǎn)奕谭,深入的跟候選人討論,這樣一方面能給候選人充分發(fā)揮的機(jī)會(huì)痴荐,另一方面血柳,也會(huì)贏來(lái)候選人對(duì)公司技術(shù)的認(rèn)可。
? ? 技術(shù)水平才是根本
相信很多工程師隨著面試經(jīng)驗(yàn)的積累生兆,即便沒(méi)有經(jīng)過(guò)培訓(xùn)混驰,面試工作也可以做的非常好,因?yàn)楫吘箖?yōu)秀的工程師都邏輯清晰思維敏銳皂贩,而對(duì)于正在進(jìn)階學(xué)習(xí)的程序員們,則需要通過(guò)系統(tǒng)地梳理來(lái)提高自己的技術(shù)水平和形成架構(gòu)思維昆汹。
針對(duì)當(dāng)前互聯(lián)網(wǎng)公司的技術(shù)需求以及結(jié)合主流技術(shù)明刷,我自己整理了一套系統(tǒng)的架構(gòu)技術(shù)體系。不少公司都很重視高并發(fā)高可用的技術(shù)满粗,特別是一線互聯(lián)網(wǎng)公司辈末,分布式、JVM映皆、spring源碼分析挤聘、微服務(wù)等知識(shí)點(diǎn)已是面試的必考題,這些東西可能你們平時(shí)在工作中接觸過(guò)捅彻,但是缺少的全面系統(tǒng)的學(xué)習(xí)组去,后臺(tái)私信回復(fù)“架構(gòu)”,免費(fèi)領(lǐng)取架構(gòu)資料步淹,希望本文能給大家在成長(zhǎng)的過(guò)程提供一點(diǎn)幫助从隆。
一、工程化專(zhuān)題
二缭裆、性能優(yōu)化專(zhuān)題
三键闺、源碼分析
四、分布式專(zhuān)題
大家可以通過(guò)掃碼進(jìn)群澈驼,或是關(guān)注微信公眾號(hào):Java資訊庫(kù)辛燥,回復(fù)“架構(gòu)”,免費(fèi)領(lǐng)取架構(gòu)資料。其實(shí)我自己也比較喜歡技術(shù)挎塌,群里有一些阿里大牛徘六,也有一線互聯(lián)網(wǎng)的資深HR,最近在面試的朋友或者在找工作的可以進(jìn)來(lái)看看哦勃蜘!