1如何準(zhǔn)備一份「工程師范兒」的簡歷?
定制簡歷
我自己的經(jīng)驗是,每個崗位的具體要求都不同,因此大家不要用一個通用的簡歷去應(yīng)付所有的崗位,最好是根據(jù)特定公司的特定崗位來定制簡歷。當(dāng)然這并不是讓大家編故事,而是突出與目標(biāo)崗位匹配的經(jīng)驗和能力。大家去應(yīng)聘一個開發(fā)或者測試工程師,和去應(yīng)聘一個 Team Leader 或者技術(shù)經(jīng)理的角色是完全不一樣的。比如,如果我要去應(yīng)聘一個有管理性質(zhì)的崗位,我就會在簡歷里適當(dāng)突出我曾經(jīng)從 0 組建了一個 10 人的技術(shù)團隊,里邊有多少資深 Java 開發(fā)工程師,多少數(shù)據(jù)庫工程師等等,這樣就會更有說服力;同理,不同的技術(shù)崗位的需求也是有區(qū)別的。大家寫簡歷的第一個目標(biāo),就是讓簡歷在篩選階段生存下來。因為往往一個崗位會收到大批簡歷,如果簡歷不能寫得很清晰,讓 HR 覺得很適合,很有可能在開始就被刷掉了,沒有機會去面試。
突出亮點
我見過很多簡歷都會寫自己既會 Java,又會 JavaScript,還會 Python,一下寫十幾行。這個本身沒有錯,但最好能突出自己的核心技能,比如,“我有 8 年 Java 開發(fā)經(jīng)驗,很擅長 Java 并發(fā)或者 Java 安全”。但要注意的是,我們在突出亮點的時候,也不要過分浮夸,因為有時候當(dāng)我們發(fā)現(xiàn)一個簡歷有太多“精通”、“深度掌握”這類詞,第一感覺是懷疑,而不是覺得這個人很牛,所以要適當(dāng)?shù)陌盐粘潭龋聦嵤腔A(chǔ)。另外,項目經(jīng)驗上,我建議按時間順序由近到遠(yuǎn)排序,最好體現(xiàn)目標(biāo)崗位的匹配度,突出自身項目的難度和價值,以及自己在項目中的作用。這樣就能進(jìn)一步幫助面試官判斷候選人的能力和在團隊中的位置。
用事實和數(shù)據(jù)說話
對于工程師,定量比定性更重要,因此要讓面試官和 HR 體會到大家的經(jīng)歷或亮點是可度量的事實。比如在簡歷中強調(diào)“我非常善于快速學(xué)習(xí)”固然有幫助,但如果配上一句“我在兩個星期之內(nèi)就學(xué)會了 Clojure 語言,做了一個撮合系統(tǒng)”,更能體現(xiàn)出“快速學(xué)習(xí)”能力。還有很多人會表述比較含糊,比如在簡歷中寫“我大幅度提高了系統(tǒng)性能”,但作為面試官,我可能不清楚這個“大幅度”到底是什么概念。因此大家最好寫的明確一些,比如“我在一個四核 8G 的配置上,把吞吐量從 2000 QPS 提高到 8000 QPS,平均的請求是 100K bytes 等等”,這樣就會非常有說服力。
公開成果很加分
比如是開源項目的貢獻(xiàn)者,有一個很有內(nèi)容的博客,在 Github 上提供了很多被采納的 PR,發(fā)表過哪些技術(shù)論文,在 QCon 或者 ArchSummit 上做過分享,或者寫過哪些著作等等。像這些公開可見的成果,遠(yuǎn)比自己評價自己更有效果。
簡歷形式
在形式上,最好參考一些優(yōu)秀簡歷,借鑒它們的模版。要注意的是,中國人和外國人的習(xí)慣不一樣,如果是去應(yīng)聘歐美公司,最好去 Google 上查英文簡歷模板,而不要把直接把中文簡歷翻譯成英文。
簡歷篇幅
最好控制在 1~2 頁,既不要顯得單薄,也不要顯得過于冗長,段落之間要條理清晰。
2如何在面試中體現(xiàn)代碼能力
有的面試者,平時很認(rèn)真工作,但面試前沒有時間準(zhǔn)備充分,就會比較吃虧,因為很多面試時考察的算法和數(shù)據(jù)結(jié)構(gòu)在平時工作中未必用得到,面試時如果有點生疏,就會給面試官留下不好的印象。所以大家在準(zhǔn)備技術(shù)面試時,在代碼方面一定要事先做個熱身,至少讓自己對基礎(chǔ)知識的掌握處于一個良好的狀態(tài)。
還有,在面試編碼的時候,面試官會逐步深入,考察面試者是否對算法的理解達(dá)到了預(yù)期的深度,是否能夠很好的溝通,是否能夠理解面試官的主要目的,以及是否能夠把不清晰的東西通過探討逐漸清晰化。具體到代碼的編寫,至少要體現(xiàn)出良好的編碼的習(xí)慣,讓面試官覺得你是一個能夠思考全面,寫出高質(zhì)量代碼的人。包括在命名和結(jié)構(gòu)上,最好參考業(yè)界比較好的實踐,因為這些小的地方,恰恰也是代碼質(zhì)量的體現(xiàn)。
另外,很多時候面試者都需要在白板上編寫代碼。這一點,我發(fā)現(xiàn)很多人并不是很適應(yīng),例如 Java 開發(fā)者,絕大部分是用 Eclipse 或者 IDEA 這些 IDE 去進(jìn)行開發(fā),以至于有的面試者,甚至連 main 函數(shù)的一些細(xì)節(jié)都不確定,這個是很可怕的。因此,大家要記住比如主要的 API 結(jié)構(gòu)等等。
最后,關(guān)于刷題,我覺得仁者見仁,智者見智。我自己沒有刷過,但必須承認(rèn)刷題網(wǎng)站是有效的,所以,我并不反對求職者去類似 LeeCode 這樣的刷題網(wǎng)站學(xué)習(xí)一下,當(dāng)然,區(qū)分刷題高手是面試官的能力。
3Face to Face 面試必考 Java 知識點
首先,大家要仔細(xì)閱讀招聘需求。因為招聘需求往往就體現(xiàn)出了面試官對我們的期望和未來工作的主要范圍。比如,一個普通的 Java 后端工程師崗位,可能會寫明需要應(yīng)聘者懂高并發(fā)、懂 JVM 基礎(chǔ)、熟悉 Spring 或者 Netty 這些開源框架,大家就可以有針對性的去做準(zhǔn)備,因為誰也不能保證自己還能清楚的記得一、兩年前做的項目用到的知識點。
關(guān)于 Java 面試核心知識點,大家可以參考我在極客時間推出的《Java 核心技術(shù) 36 講》專欄,這個專欄的設(shè)計,就是針對的這方面的需求。極客時間團隊在內(nèi)容和選題上充分參考了主流互聯(lián)網(wǎng)大廠在 Java 面試中的問題域,選取了其中的典型問題,一定會對大家有幫助。在專欄中,內(nèi)容設(shè)計的目的都是為了讓大家對 Java 語言的核心基礎(chǔ)特性可以非常的熟悉,掌握主要的知識點。比如,并發(fā)的容器和基礎(chǔ)的容器,最常見的 ConcurrentHashMap 或者 HashMap,各種并發(fā)的基礎(chǔ)元素,Synchronized 底層機制,或者 ReentrantLock、線程池等等,都是 Java 面試中的長期熱點。還有 JVM,它是一個很龐大的范圍,它分為 Runtime、GC、編譯器等模塊,包括所謂的 Serviceability 的一些特性,這每一個方面實際上都有可能被面試官刨根問底,雖然可能我們整個中國做 JVM 開發(fā)的團隊連一只手都不到,但是不妨礙 Java 面試中會去考 JVM,大家還是要在這些知識點上面深入了解。
另外,現(xiàn)在 Java 開發(fā)越來越廣泛的應(yīng)用到各種開源框架,包括像微服務(wù)這種新的軟件架構(gòu)形式,所以大家對主流的開源框架也要有充分的認(rèn)識。比如,做普通業(yè)務(wù)開發(fā)時,Spring 或 Mybatis 這類框架可能是業(yè)務(wù)開發(fā)的一個標(biāo)配,那對 Spring 里的一些機制,比如 Bean 的生命周期、AOP 等基礎(chǔ)概念,就要有深入的認(rèn)識。如果大家應(yīng)聘的崗位是大數(shù)據(jù),那對 Hadoop、Spark 這類開源框架就必須要有深入的理解。
關(guān)注熱點也非常重要,我們技術(shù)人也要時常抬頭看這個世界。比如曾經(jīng)有段時間,面試就會被問哈希碰撞之類,就是因為當(dāng)時有些大廠發(fā)生了這種攻擊。再比如前兩年,非常多的人在面試中被問到類似搶購、秒殺這樣的場景等等。如果大家完全沒有關(guān)注這些熱點,等面試中被問到才去思考,時間有限加上緊張,很難考慮的充分。這兩年,微服務(wù)似乎變成了一個必考的題目,比如對用 Dubbo 還是用 Spring Cloud,就需要有基礎(chǔ)性的理解,以免被問到的時候沒有準(zhǔn)備。除了熱點,特定領(lǐng)域都有特定的專業(yè)知識,例如,深度學(xué)習(xí)、推薦算法等,只有準(zhǔn)備充分才能保證大家在面試時的表現(xiàn)完美。
4大廠面試實例分析
下面,我就以自身的經(jīng)驗來介紹一下作為面試官,我在面試中會考察哪些方面,有哪些側(cè)重點。不同的公司、不同團隊,面試風(fēng)格會有區(qū)別。我聽到個別朋友說過,在一些公司面試完了,感覺經(jīng)歷很痛苦,我的團隊不會這么苛刻的對待候選人。因為本質(zhì)上,我們面試的目的并不是要表現(xiàn)面試官自己有多厲害,而是為了找出合格的候選人。有時我在面試中,也會刨根問底,但目的絕不是為了為難面試者,而是想看一下對方深度到底是在哪里,以及遇到挑戰(zhàn)的時候,會有什么樣的反應(yīng)。
其次,就是考察面試者是否“適合”,對于不同的崗位,“適合”的定義是很不同的。
比如說像 JDK 團隊,因為是一個非常基礎(chǔ)的、底層的軟件,最在乎的是性能、質(zhì)量、可靠性等,所以對底層和基礎(chǔ)技術(shù)的把握程度很重要。候選者可能是一個很棒的業(yè)務(wù)開發(fā)工程師,但是經(jīng)驗和技能可能不適合。
為了公平起見,我們也不會特別隨意的問候選人各種問題,當(dāng)然也會即興發(fā)揮,但總體上是有固定的套路和節(jié)奏的,因為只有用同一標(biāo)準(zhǔn)去考察不同面試者,才能保證候選人的判斷沒有太多主觀因素。
再有,面試者的興趣和態(tài)度也非常重要,如果面試者對編程語言沒有什么興趣,那以我們的工作,他可能會做的非常痛苦。對于我們團隊來說,我們招人的標(biāo)準(zhǔn)就比較特別,我們甚至不要求候選人精通 Java,只要你敢說自己很擅長某種編程語言。比如,我們這有個很資深的工程師,他在加入 Java 團隊之前是不懂 Java 的,基本完全沒有用過 Java,但是我們團隊有足夠的耐心,去讓他發(fā)揮他的能力,構(gòu)建自己的強項。不是每個團隊都會這樣,我覺得這也沒有對錯,得看具體的需求。
我們也會很在乎候選人過去的背景,如果跳槽過于頻繁,就會有所疑慮。因為太頻繁的跳槽可能意味著你的耐心和態(tài)度有一點問題(當(dāng)然也可能是一些被動原因),這樣的話,招聘成本就會很高。因此,這里也有一個建議,如果大家有選擇,盡量不要過于頻繁的跳槽。同樣,我們也會看面試者在過去崗位中的表現(xiàn),一個基本的判斷就是,如果一個人在前一個崗位非常優(yōu)秀,那他在下一個崗位繼續(xù)優(yōu)秀的可能性也會非常大。
具體流程
下面,我介紹一些具體的流程。一般來說,開始的時候我不會直接問特別嚴(yán)肅的問題,會讓面試者做一下自我介紹,或者從輕松的話題開始,比如像前兩天西二旗這邊發(fā)大水了等等,讓面試者先放松下來。
然后,我一般會問的一個問題是“談?wù)勀阕鲞^的最有挑戰(zhàn)的項目”,例如,難度很大、在這個項目中起到的作用比較大、能力表現(xiàn)最充分的項目。從答案里,我就可以看到很多方面,一方面是面試者是不是對自己的項目了解的很透徹,因為如果一個項目做了幾年,還對它了解不很透徹,就會反映出一定的問題;另一方面就是面試者能不能清晰的表達(dá)出他所做的東西。因為在工作中,我們彼此之間交流的場景會非常多,尤其是像 JDK,有相當(dāng)一部分要進(jìn)行互相交互的 Review,或者在開源社區(qū)進(jìn)行討論。能不能清楚的表達(dá)問題,就決定了能不能完成任務(wù)。在介紹過程中,我也會選擇性的問一些項目的細(xì)節(jié),看下面試者對細(xì)節(jié)的態(tài)度,也防止面試者在講故事。我會側(cè)重考察面試者做事情的態(tài)度,解決問題的思路和能力,以及在遇到難點的時候采取什么方法,這些角度都很有參考價值。
這之后,對于 Java 工程師崗位來說,我就會考一些算法和數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)知識,因為好的基礎(chǔ)是成功的一半。我一般會從很基礎(chǔ)的題目開始,甚至如類似鏈表之類的數(shù)據(jù)結(jié)構(gòu)??疾旌唵蔚臄?shù)據(jù)結(jié)構(gòu),可以看出面試者寫程序是否很 hands-on。如果上來就問一個很難的題目,很多時候,即使是很資深的工程師也未必寫的出來,這樣就會很尷尬,甚至導(dǎo)致談不下去了。然后,就會考一些相對深入的問題,類似把簡單的數(shù)據(jù)結(jié)構(gòu)進(jìn)行組合達(dá)到一個新的功能,或者在一個常規(guī)的算法上面進(jìn)一步優(yōu)化,計算算法復(fù)雜度等等。這時候通過面試者給出的思路,我再來看他是不是能夠體會到一些常見的,比如空間換時間這些變通的思路和方法。在面試過程中,我也會觀察面試者和我之間的交流是否流暢、準(zhǔn)確、完整,也能體現(xiàn)出我們之間是不是可以很好的合作。因此,建議面試者即使遇到比較難的題目,也要盡量表現(xiàn)出積極溝通的態(tài)度。
最后,我在面試時并不會去死摳特別復(fù)雜的算法,或者特定的知識點,也不會選擇刷題網(wǎng)站上的那種題目,以免招聘到面試高手,真實的業(yè)務(wù)能力未必和刷題能力相關(guān)。知識點和能力可能是兩碼事,考住一個人很容易,準(zhǔn)確判斷他的能力才是重點。其實我們工作中解決的絕大部分問題,只要有好的基礎(chǔ)和好的態(tài)度,基本上就能做得到,畢竟我們不是在解決過于艱深的科學(xué)問題,也不是在做原子彈。以上這些,就是我在面試中比較看重的一些方面。
-
工程師
+關(guān)注
關(guān)注
59文章
1565瀏覽量
68408
發(fā)布評論請先 登錄
相關(guān)推薦
評論