記得我剛作技術面試官的時候,還比較單純,別人說什麼就信什麼。這原本也沒多大的錯,雖然有些候選人會誇張本身的技能,但畢竟大多數候選人都是比較誠實的,相信絕大多數的技術面試官也像我這樣,會以君子之心度人的。html
但我面試了一陣後,有項目經理向我反映,經我手面試經過的一些候選人有存在實際技能與簡歷上描述不符的狀況,好比簡歷上寫的是熟悉Linux操做,但實際也就會幾個命令,又如簡歷上寫的是熟悉Spring Cloud,也有實際項目經驗,但後來發現他其實沒作過Spring Cloud的實際項目,簡歷上的項目是從網上下載的。 java
項目經理還說,像我還算好,經我面試進來的人好歹只是能力上的問題,並且能力的誤差尚在能夠接受的範圍,像有些面試官甚至會讓一些沒法正常和別人溝通溝通,幹活偷奸耍滑得過且過等的刺頭經過面試。linux
因而我對面試別人的方法和技巧作了總結,在這方面也和其它資深面試官作了溝通。在本文裏,不只會講到如何甄別一我的真實能力的方法,還會在此基礎上對你們提些面試方面的建議。nginx
其實,我從接到候選人這一刻起,面試就開始了。在面試過程當中,團隊協做能力和溝通表達能力甚至比技能還重要,若是候選人出現以下的狀況,我是必定要在評估報告裏寫上對候選人很是不利的評價。面試
1 候選人遲到,且沒主動說明,或很是輕飄地把遲到歸結成客觀緣由。數據庫
若是候選人預期會遲到,應當事先打個電話來講明,好比確實是由於交通等因素,這不會成爲扣分因素。或者在遲到後,主動說明緣由並表示歉意,這也沒什麼。設計模式
但若是候選人遲到,但就當沒事人同樣大大咧咧地直接來面試,我就會寫上,「候選人遲到且沒說明,沒時間觀念」。或者候選人雖然有說明,但一口把遲到緣由歸結成交通等客觀緣由,同時不表達歉意的,那對不起了,我估計就得寫上「候選人沒擔當,平時工做中有可能會推卸責任」。多線程
2 候選人談吐舉止不穩重框架
說通俗點就給人感受輕飄飄,好比說話很隨意,得理不讓人,或者在交流時隨意打斷別人,或者交流時自說自話引導話題,或者交流時抖腿等。這類人有可能會和組內成員溝通有問題,因此狀況嚴重的,甚至會無視技術亮點直接排除。不過話說回來,候選人的面試時間估計也就半小時,在這半小時裏,裝得職業化些穩重些,這應該不難吧。分佈式
3 過於以自我爲中心
好比候選人目中無人或者說話很「虧」(太自我),好比通過屢次深刻發問後會不耐煩,或者大談特談本身的優點,或者太「做」。其實有時候,候選人的能力比面試官確實要強,資歷也要比面試官豐富,但哪怕在這樣的場景下,也得作到從語氣和舉止上尊重面試官,哪怕面試官反覆問到同一個問題,或者問的問題在你看來很簡單,你也得態度好地認真回答。
其實大多數IT技術人員都是老員工了,並且平時哪怕有缺點,在面試時也會盡可能隱瞞,因此我在面試過程當中,在上述第1方面淘汰掉的候選人雖然有,但很少。在大多數狀況下,候選人會在簡歷上有所誇張,甚至做假,下面來看些具體的狀況。
1 候選人把不是相關的經驗寫成相關的經驗。
好比候選人雖然有3年工做經驗,但前兩年是作測試的,第三年才作java。但在簡歷中,他把3年經驗都寫成Java相關的。
這樣的話,他前兩年的java經驗看上去會很是像學習項目,而非商業項目。並且,他在簡歷上所寫掌握的技能,必定很膚淺,無法看到有工做3年的程度。
2 候選人的項目描述看上去像畢業設計或課程設計
真實公司裏的項目,多少會用到當前比較熱門的技術,好比Java項目裏可能會用到Redis或Dubbo等組件,並且公司通常不會作個明顯沒商業前景的項目。
因此若是我在簡歷中看到有候選人寫,xx教務系統,xx財務系統或人事系統之類的,(它們通常和網上能下載到的案例名很類似),這就很明顯是課程設計的項目,由於這類系統都有現成成熟的,公司通常不會開發。或者是xx電商系統,除非是某公司虧錢推廣本身的產品,不然通常不會自行開發,這類項目我也會在面試時着重甄別。
3 在項目中提到的技術都是過期的,並且出現明顯會虧本或應用場景明顯不符合的技術.
好比還在用Struts MVC,或者明明流量比較大須要分佈式部署的系統,在項目裏還僅僅用到Spring MVC,沒有用到Redis等分佈式組件。又如,一個明明工期比較短並且訪問量不大的維護項目,還大量用到了Spring Cloud等成本比較高的技術。
4 在某個時間點,某培訓學校有大批學生畢業時,我就常常會看到很多簡歷裏的項目描述很類似,這每每是培訓學校裏的學習項目,而不是商業項目。
我會承認該候選人在培訓學校裏的學習經歷,但畢竟學習項目的含金量要比商業項目裏要小,因此我會把這部分的項目經驗排除在實際的相關技術年限以外。
5 簡歷上的項目經驗裏,描述某個技術的文字和上下文很是不匹配,感受像是後來加上去的,這類技術我就要詳細問些細節,由於有可能候選人其實沒在項目裏作過,而是隻有學習經驗,但拼接在現有的項目裏。
在我面試前,我通常會通讀候選人的簡歷,在發現有第2部分所述的可疑點的時候,會經過以下的問題來確認。
1 針對候選人的相關技術年限,好比java 3年,我會預先給候選人劃定個應該達到的程度,好比得熟悉虛擬機熟悉多線程等,而後在面試時,就圍繞這個尺度來問,通常來講,能甄別出誇大相關技術年限的狀況。
2 若是候選人在簡歷中出現相似學習項目,我就會問些在項目裏必定會用到的技能,好比項目如何經過ant等工具打包,如何經過jenkins等來打包和部署,或者問項目的細節,好比多少我的作了多久?客戶是誰?而後再提出本身的質疑:這個產品市面上有現成的,爲何大家公司還要掏錢再開發?若是候選人想用學習項目來冒充商業項目經驗,這些細節必定答不上來。
3 若是我看到候選人簡歷上的某些項目裏,出現了比較突兀的技術,那麼我就會盯着這個技術問,好比明明用單個Oracle實際便可完成的項目候選人說用了集羣,那我就會首先覈實集羣的配置細節,而後再問,爲何要用集羣?這時候,候選人每每只能尷尬地說,這是由項目經理安排的,他也說不上。
除了上述狀況以外,若是候選人在簡歷中寫了一些比較熱門的技術,或者是亮點,我就會對此深刻提問,若是問題也回答很是好,那絕對是個加分項,反之就還不如不寫了。
好比,某候選人在簡歷上寫,掌握數據庫性能調優的技能,也在項目裏用過,那麼我就問怎麼用的,採用了哪些技術,用的先後大概能提高多少性能。也有候選人能很好地回答上,好比說用執行計劃看性能耗在哪方面,而後對應地改,或者分庫分表,或者用with等語法改善SQL語句,這就能證實他確實掌握這塊技術。但有些候選人只能停留在建索引的層次,那麼這就不能說是熟悉數據庫調優了。
又如,有些候選人在簡歷上寫,在某某項目裏用到了Kafka作消息中間件,這也是個亮點,這時我就會問,kakfa如何作消息持久,如何實現消息分組等問題,總之只要作過kafka,必定能知道。這時就有些候選人說不上了,再一細問是隻配置過,沒用過。也有些候選人只會泛泛而談,無法結合項目說,這樣的話,只能證實候選人有理論經驗,而沒在實際項目裏用過。
1 千萬別在學歷年齡等關鍵因素造假,在入職時會提交學歷證身份證等,這類造假很容易看出。
2 我知道有些候選人若是照直寫,估計連面試的機會都沒,這裏只能說,好比你把前幾年的測試經驗寫成java開發經驗,你就得後果自負的,假設你是3年測試加2年java,但你寫成了5年java,面試官在沒法查證的狀況下,是按5年經驗來問的,你就的自行承擔風險了。
3 在寫簡歷時,必定得了解市場上對你這個工做年限所必備的技能,若是不知道,本身去看招聘廣告上你這個年限的職位要求,再不清楚的話,本身經過面試去試錯。
若是你的簡歷給面試官的感受是,達不到你這個工做年限,那麼面試的機會就不多。這裏倒也不是讓你們不切實際地寫,而是請你們得挖掘本身的項目經驗,其實有不少技能,你用過,但沒注意,因此沒往簡歷上寫。好比數據庫調優,你必定改寫過SQL,也或多或少用過執行計劃查看性能,這類容易忽視的但很是值錢的經驗得寫上。
4 寫簡歷時,必定得準備些亮點,好比精通linux,能在linux上部署程序或查看日誌,或者用過些分佈式中間件,又若有過大數據的經驗等等,這類經驗,最好結合實際項目寫,好比在xx項目的xx模塊裏,我用到了消息中間件RabbitMQ,它是怎麼部署的,如何發消息等,而後,你得事先準備好針對該技術的相關問題。
5 在寫簡歷上的項目時,能夠一筆帶過客戶方是誰,用了多久,這樣就能顯出這個項目是商業項目,而不是學習項目,尤爲這個項目看上去很像學習項目。
在準備簡歷方面,我根據個人一些經驗,總結出了一本書,Java Web輕量級開發面試教程,尤爲在最後一章,寫了如何準備簡歷和麪試,自認爲還算詳細,你們感興趣的話能夠看下。
1 針對你工做過的公司以及項目經驗,你得很是清楚,說的時候別和簡歷上不一致,好比具體某個項目的時間段以及用到的技術框架,用到的數據庫等,畢竟這個是你作過的,你再說錯就有些說不過去了,若是說錯,面試官會懷疑你簡歷的真實性。
2 針對你簡歷上提到的技術框架,尤爲是亮點,你必定得逐一準備,首先,你得講清楚這個技術是如何在項目裏用到的(結合項目的實例講解技術,能夠講些配置參數的細節),其次,你能夠到網上看下這個技術的相關描述,加深對這個技術的理解。好比nginx,你能夠了解配置反向代理的細節,以及如何在其中寫lua腳本,最後,你能夠說下對這個技術的理解,好比引入這個技術後,對你的項目有什麼幫助,或者在使用這個技術時,你遇到過哪些坑,而後是怎麼逐一解決的。
3 而後能夠刷題,刷題的時候,最好能結合底層代碼來講,好比你被問到Spring裏的IOC,你能夠事先閱讀些底層代碼,在面試時經過紙筆向面試官講述,這樣面試官就會認爲對這個技術很精通(你都深刻底層代碼去看了,怎麼可能不精通)。
4 在簡歷上你能夠寫一些亮點,而後在面試前準備說辭, 在我另外一本書Java核心技術及面試指南裏,我寫了關於虛擬機和設計模式方面的準備說辭,並在最後一章給出了拋出這些說辭的技巧,本身感受,也是我面試別人和本身面試的經驗之談。
5 最好了解下你平時用到的項目打包部署測試等的工具,好比用ant打包,用jenkins部署,用Sonar作代碼質量管理,用哪一種技術作性能壓測等,這類技術一旦你說出來,那麼第一能向面試官證實這個項目是商業項目,另外,還能證實除了代碼開發以外,你還有項目實施部署的相關經驗。
本文歡迎轉載,轉載前請和本人說下,請全文轉載並用連接的方式指明原出處。
本人自認爲,上述經驗是根據面試了大量技術人員總結而來,對你們多少有些幫助,雖然有些泛,但裏面不乏能夠實施的改進點。若是你們在面試方面想了解哪一個細節,請和我說,我會在後繼博文裏介紹。
感謝你們讀完本文,祝你們十一愉快,我是不可能出去玩了,我有一大堆事,好比準備書的大綱,完成我另外一本書等,不過這些都是我自找的,因此我也會很愉快。
若是你們感受本文多少有幫助,請點擊下方的推薦按鈕,您的推薦是我寫博客的最大動力。