我看了前幾天些的博文,分析若干沒面試機會和沒體現實力的簡歷,就想起了作技術面試官時的一些往事。html
我見過有些簡歷,上面列出的項目描述很是高大上,好比用到了xx機器學習技術,或者在一個項目裏基本用全了分佈式組件,或者是項目名是xx金融量化系統。再看工做經歷,每每就3年經驗。而工做經驗在5年左右的候選人,在簡歷中的項目描述每每就是比較樸實,通常見不到這類狀況。java
在簡歷中,乃至在面試過程當中,項目描述每每僅僅是個載體,第一用來證實本身在項目裏確實用到相關經驗,第二能夠用項目描述打下伏筆,在面試過程當中進一步展現本身的亮點。而項目自己的業務,面試官不關心。在本文裏,就講針對這些高大上的項目描述,來看下項目經歷該怎麼寫,在面試中如何經過項目引出值錢技術。linux
可能有些候選人認爲,在簡歷中,項目描述越接近當前熱點(好比機器學習),就越能說明本身的實力,一些培訓學校可能也用這些看似高大上的項目以及項目技術來包裝優選人,但這屬於過猶不及。你們能夠換位思考一下。nginx
第一,若是就本科學歷(有些甚至仍是大專),工做經驗3年左右,接觸到機器學習量化分析之類的模塊可能性大不大?程序員
第二,好吧,話不能說死,若是有機會接觸,好比這個項目裏用到了機器學習算法,可否有盈利點?給客戶用的時候會不會給客戶帶來風險?或者說,用這些模塊須要踩很多坑,成本不會少,在這個項目裏能不能收回成本?面試
第三,若是上述兩點都能想辦法解釋通,那麼在獲得面試機會的時候能不能自圓其說,或者可否把相關技術講清楚?很多候選人會卡在這塊,好比我見過有人寫了項目裏用全了spring cloud組件,但問下來矛盾百出,甚至連eureka能幹嗎都講不清楚,或者確實用到了機器學習的庫,但僅僅是簡單地調用了其中若干方法。總之,在面試中的表現和簡歷中的描述相差甚遠。算法
好比某個外派崗位只要有找個能幹活的程序員,哪怕經驗只有2年,哪怕經驗是從培訓班裏學到的也行,但若是簡歷上出現過於高大上而面試時卻說不清楚,那麼後果就是:存在虛假簡歷,這屬於態度問題,可能會致使直接被fail。spring
再說一次:簡歷中的項目經驗只要能反應能力便可,能夠適度誇張,但誇張的程度得在本身的實踐範圍和能力範圍內。 數據庫
有些同窗確實很勤奮,瞭解過一些值錢的技術,這些能力也超越了平均水平,不寫在簡歷裏確實有些惋惜,爲了打消面試官的疑慮,同時進一步證實本身,那麼能夠準備以下方面的回答。後端
第一,這個技術(好比分佈式技術等)爲何要用在項目裏?不用有什麼後果,或者是爲了解決哪些痛點?
第二,引入這個技術後,給項目帶來哪些好處?好比能提升併發性,能提高數據庫訪問性能等。
第三,結合項目需求,說下這個技術是怎麼引入的,好比用到了哪些方法,作了哪些配置。
第四,得全面介紹相關技術,好比引入了MyCat分庫分表,那麼就得說下它的框架,重要類,重要配置,以及踩過的坑。
可能有些候選人想經過高大上的項目來證實本身的能力,但事實上會拔苗助長,由於在面試中更看重的是候選人的能力。而一些值錢的技術是加分項,能幫助候選人在可上可下的狀況下面試成功,也能幫助候選人多要點工資,但僅此而已。
那麼哪些是基本功呢?基本功有不少,這裏我列些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就據說過,沒用過。這類候選人就屬於華而不實了,後面我讓我領導來面,最後結果我就不得而知了。
上文的主要內容是,別在簡歷中寫一些超越本身能力的項目以及技能,並且項目不宜太花哨,這屬於「不應作」。若是本文僅僅給出「不應」,而不推薦些「應該」的作法,文章的立意就低了,因此這裏說下如何結合項目實際引出本身技能的方法。
項目不用高大上,能證實本身的能力就行,在簡歷上寫項目經歷這應該問題不大,把用到的技術列上去便可,但別僅僅寫好簡歷就什麼都不許備了。
最近面試java後端開發的感覺:若是就以平時項目經驗來面試,經過估計很難——再論面試前的準備,在這篇博文裏,我列了一些準備工做。口說無憑,最好是結合項目業務說下你掌握某技術,下面給出些結合項目的說辭,供你們參考。
1 好比虛擬機內存調優,理論誰都會,但若是某位候選人說,在xx項目的收單業務裏,咱們經過zabbix監控工具發現內存用量居高不下,咱們就看了一些dump文件,也據此review了代碼,發現存在Connection鏈接對象用好沒關的狀況,最後關掉後內存用量就下降了。
技能不算難,項目也不高大上,甚至我已經忘了項目名,但一旦結合業務講了,可信度就大大提高了,並且說這話也就三言兩語,不到一分鐘。
2 好比項目部署發佈方面,某候選人說,咱們項目是基於spring boot,發佈在3臺linux系統上,項目是用maven管理,咱們是經過jenkins打包,是用nginx作負載均衡,nginx的大體配置是xx,日誌策略是一天一個文件,第二週把前一週的文件打成壓縮包。在這種說辭裏,是結合項目說明了項目發佈部署的技能,項目和技能也很是樸實,項目裏也只用到了一兩種分佈式組件,也沒用全,但卻能很是好地體現候選人的實力。
3 也能夠經過一些項目裏遇到的坑,來講明本身掌握的技術乃至分析解決問題的能力,好比我聽到某位候選人說,spring cloud組件裏的服務治理eureka,若是一臺機器down了,服務就找不到了,在項目裏出現了這個問題,(結合實際說下),因而就引入了健康檢查,而後再用兩臺eureka項目註冊,再結合項目實際略微說下代碼和配置的方式。用這種方式就能很好證實本身在項目裏用過。
總之,面試時應該掌握哪些技術,這個大多數人應該都知道,我以前的一些博文也寫了很多這方面的內容。刷些基本的面試題,這個也不難,但經過刷題只能證實本身掌握某種技術,而一旦結合項目說出,這就屬於有實戰經驗,這二者的份量差異你們能感覺到。
寫簡歷和麪試的時候應該心平氣和,別存在「用新技能唬住面試官」想法,這樣本身反而能腳踏實地地準備面試中的說辭。
本文的重點是「如何結合項目說明技能」,而在本人其它博文裏,也講述過Java高級開發和架構師該掌握哪些技能,自認爲也能造成體系。若是你們感受好的話,也請幫忙多多推薦。
有很多網友轉載和想要轉載個人博文,本人感到十分榮幸,這也是本人不斷寫博文的動力。關於本文的版權有以下統一的說明,抱歉就不逐一回復了。
1 本文可轉載,無需告知,轉載時請用連接的方式,給出原文出處,別簡單地經過文本方式給出,同時寫明原做者是hsm_computer。
2 在轉載時,請原文轉載 ,如要在轉載修改本文,請事先告知,謝絕在轉載時經過修改本文達到有利於轉載者的目的。
3 我見過個別網友,經過對我博文的拼接和刪減以達到作本身廣告的目的,對此本人保留追究法律責任的權利。