臨近金三銀四面試跳槽黃金季们镜,最近面試跳槽的人特別多币叹,關(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)熔任,滿嘴架構(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í)费奸,希望本文能給大家在成長(zhǎng)的過(guò)程提供一點(diǎn)幫助弥激。
一、分布式專(zhuān)題
二愿阐、性能優(yōu)化專(zhuān)題
三微服、源碼分析
四、工程化專(zhuān)題
最后
覺(jué)得內(nèi)容有幫助可以關(guān)注下我的簡(jiǎn)書(shū)號(hào)缨历,這里會(huì)第一時(shí)間更新我的所有文章以蕴。
并且除了文章以外,還會(huì)記錄我平時(shí)學(xué)習(xí)的一些內(nèi)容辛孵。
另外:需要我整理的這套架構(gòu)技術(shù)體系詳細(xì)知識(shí)點(diǎn)的小伙伴丛肮,也可以后臺(tái)簡(jiǎn)信私聊我“架構(gòu)”免費(fèi)獲取。