1. 程式人生 > >簡歷上如果出現過於高大上的專案,反而過猶不及:再論如何通過專案引出技術

簡歷上如果出現過於高大上的專案,反而過猶不及:再論如何通過專案引出技術

    我看了前幾天些的博文,分析若干沒面試機會和沒體現實力的簡歷,就想起了做技術面試官時的一些往事。

    我見過有些簡歷,上面列出的專案描述非常高大上,比如用到了xx機器學習技術,或者在一個專案裡基本用全了分散式元件,或者是專案名是xx金融量化系統。再看工作經歷,往往就3年經驗。而工作經驗在5年左右的候選人,在簡歷中的專案描述往往就是比較樸實,一般見不到這類情況。

    在簡歷中,乃至在面試過程中,專案描述往往僅僅是個載體,第一用來證明自己在專案裡確實用到相關經驗,第二可以用專案描述打下伏筆,在面試過程中進一步展示自己的亮點。而專案本身的業務,面試官不關心。在本文裡,就講針對這些高大上的專案描述,來看下專案經歷該怎麼寫,在面試中如何通過專案引出值錢技術。

1 描述專案案例時的誤區

    可能有些候選人認為,在簡歷中,專案描述越接近當前熱點(比如機器學習),就越能說明自己的實力,一些培訓學校可能也用這些看似高大上的專案以及專案技術來包裝優選人,但這屬於過猶不及。大家可以換位思考一下。

    第一,如果就本科學歷(有些甚至還是大專),工作經驗3年左右,接觸到機器學習量化分析之類的模組可能性大不大?

    第二,好吧,話不能說死,如果有機會接觸,比如這個專案裡用到了機器學習演算法,能否有盈利點?給客戶用的時候會不會給客戶帶來風險?或者說,用這些模組需要踩不少坑,成本不會少,在這個專案裡能不能收回成本?

    第三,如果上述兩點都能想辦法解釋通,那麼在得到面試機會的時候能不能自圓其說,或者能否把相關技術講清楚?不少候選人會卡在這塊,比如我見過有人寫了專案裡用全了spring cloud元件,但問下來矛盾百出,甚至連eureka能幹嘛都講不清楚,或者確實用到了機器學習的庫,但僅僅是簡單地呼叫了其中若干方法。總之,在面試中的表現和簡歷中的描述相差甚遠。

    比如某個外派崗位只要有找個能幹活的程式設計師,哪怕經驗只有2年,哪怕經驗是從培訓班裡學到的也行,但如果簡歷上出現過於高大上而面試時卻說不清楚,那麼後果就是:存在虛假簡歷,這屬於態度問題,可能會導致直接被fail。

    再說一次:簡歷中的專案經驗只要能反應能力即可,可以適度誇張,但誇張的程度得在自己的實踐範圍和能力範圍內。 

2 簡歷上出現高大上技術後得做得準備工作

    有些同學確實很勤奮,瞭解過一些值錢的技術,這些能力也超越了平均水平,不寫在簡歷裡確實有些可惜,為了打消面試官的疑慮,同時進一步證明自己,那麼可以準備如下方面的回答。

    第一,這個技術(比如分散式技術等)為什麼要用在專案裡?不用有什麼後果,或者是為了解決哪些痛點?

    第二,引入這個技術後,給專案帶來哪些好處?比如能提高併發性,能提升資料庫訪問效能等。

    第三,結合專案需求,說下這個技術是怎麼引入的,比如用到了哪些方法,做了哪些配置。

    第四,得全面介紹相關技術,比如引入了MyCat分庫分表,那麼就得說下它的框架,重要類,重要配置,以及踩過的坑。

3 值錢技術是加分項,更重要的是證明自己的基本功

    可能有些候選人想通過高大上的專案來證明自己的能力,但事實上會適得其反,因為在面試中更看重的是候選人的能力。而一些值錢的技術是加分項,能幫助候選人在可上可下的情況下面試成功,也能幫助候選人多要點工資,但僅此而已。

    那麼哪些是基本功呢?基本功有很多,這裡我列些java後端高階開發必備的基本功。

    1 Java核心,SQL資料庫開發,框架,Linux之類的必備知識點。

    2 從日誌裡分析問題和解決問題的能力。

    3 通過 maven管理專案,通過Jenkins釋出專案,通過sonar提升程式碼質量,諸如此類和專案業務無關但和專案釋出管理有關的技能。

    4 必要的效能調優的技能,必要的專案部署技能。

    5 一些基於分散式元件的技能,比如netty,dubbo之類的。

    可能講到這裡大家感覺有些抽象,我通過一個面試中的例項來說下基本功和加分項的關係。

    有位候選人其實很上進,本科2年,計算機專業,專門報了培訓班,從簡歷上看,之前專案裡,用到多種分散式元件和大資料元件,比如dubbo,nginx,kafka,spark,面試時,在介紹專案經驗時,也是信心十足,說業務,說技能,還丟擲不少亮點,專等我來問,應該是得到了很好的面試輔導。

    我先問亮點,比如spark在專案裡怎麼用的,如何同業務結合,用好以後能帶來什麼好處?這位候選人也能說得頭頭是道,而且還能通過畫圖寫程式碼來說明。不過在問java核心和SQL之類的基本問題時,回答不怎麼好,比如hashcode方法就說不上,而且資料庫方面只會增刪改查,索引優化都沒掌握好,更別提事務了。我有些不死心,畢竟亮點說得比較好,我又問了他們的專案是怎麼釋出的,他甚至說就在本地啟動,用localhost訪問,jenkins就聽說過,沒用過。這類候選人就屬於華而不實了,後面我讓我領導來面,最後結果我就不得而知了。 

4 如何結合專案引出技術

   上文的主要內容是,別在簡歷中寫一些超越自己能力的專案以及技能,而且專案不宜太花哨,這屬於“不該做”。如果本文僅僅給出“不該”,而不推薦些“應該”的做法,文章的立意就低了,所以這裡說下如何結合專案實際引出自己技能的方法。

    專案不用高大上,能證明自己的能力就行,在簡歷上寫專案經歷這應該問題不大,把用到的技術列上去即可,但別僅僅寫好簡歷就什麼都不準備了。

    最近面試java後端開發的感受:如果就以平時專案經驗來面試,通過估計很難——再論面試前的準備,在這篇博文裡,我列了一些準備工作。口說無憑,最好是結合專案業務說下你掌握某技術,下面給出些結合專案的說辭,供大家參考。

   1 比如虛擬機器記憶體調優,理論誰都會,但如果某位候選人說,在xx專案的收單業務裡,我們通過zabbix監控工具發現記憶體用量居高不下,我們就看了一些dump檔案,也據此review了程式碼,發現存在Connection連線物件用好沒關的情況,最後關掉後記憶體用量就降低了。

    技能不算難,專案也不高大上,甚至我已經忘了專案名,但一旦結合業務講了,可信度就大大提升了,而且說這話也就三言兩語,不到一分鐘。

    2 比如專案部署釋出方面,某候選人說,我們專案是基於spring boot,釋出在3臺linux系統上,專案是用maven管理,我們是通過jenkins打包,是用nginx做負載均衡,nginx的大致配置是xx,日誌策略是一天一個檔案,第二週把前一週的檔案打成壓縮包。在這種說辭裡,是結合專案說明了專案釋出部署的技能,專案和技能也非常樸實,專案裡也只用到了一兩種分散式元件,也沒用全,但卻能非常好地體現候選人的實力。

    3 也可以通過一些專案裡遇到的坑,來說明自己掌握的技術乃至分析解決問題的能力,比如我聽到某位候選人說,spring cloud元件裡的服務治理eureka,如果一臺機器down了,服務就找不到了,在專案裡出現了這個問題,(結合實際說下),於是就引入了健康檢查,然後再用兩臺eureka專案註冊,再結合專案實際略微說下程式碼和配置的方式。用這種方式就能很好證明自己在專案裡用過。

    總之,面試時應該掌握哪些技術,這個大多數人應該都知道,我之前的一些博文也寫了不少這方面的內容。刷些基本的面試題,這個也不難,但通過刷題只能證明自己掌握某種技術,而一旦結合專案說出,這就屬於有實戰經驗,這兩者的分量差別大家能感受到。

5 總結,求推薦和版權說明

    寫簡歷和麵試的時候應該心平氣和,別存在“用新技能唬住面試官”想法,這樣自己反而能腳踏實地地準備面試中的說辭。

    本文的重點是“如何結合專案說明技能”,而在本人其它博文裡,也講述過Java高階開發和架構師該掌握哪些技能,自認為也能形成體系。如果大家感覺好的話,也請幫忙多多推薦。

    有不少網友轉載和想要轉載我的博文,本人感到十分榮幸,這也是本人不斷寫博文的動力。關於本文的版權有如下統一的說明,抱歉就不逐一回復了。

    1 本文可轉載,無需告知,轉載時請用連結的方式,給出原文出處,別簡單地通過文字方式給出,同時寫明原作者是hsm_computer。

    2 在轉載時,請原文轉載 ,如要在轉載修改本文,請事先告知,謝絕在轉載時通過修改本文達到有利於轉載者的目的。

    3 我見過個別網友,通過對我博文的拼接和刪減以達到做自己廣告的目的,對此本人保留追究法律責任的權利。