在18年底到19年3月,陸續面試了幾家公司,有成有不成的,最終進了一家比較滿意的知名外企。在本文裏,我將介紹我這段時間裡更新簡歷和麪試的相關經歷。可能面試相關的一些方法,大家能從我之前的博文裏看到,但在本文裏,大家更能從相關實戰性的例子中進一步體會到面試技巧的使用方法。
我打算要換工作,就更新了簡歷,這時就有不少獵頭來找我,剛開始,我不敢面大公司,只是去些規模小的互聯網公司。因為一方面,當時我很久不面試了,面試實戰技能難免有些荒廢,另一方面,離我之前的面試畢竟過了一陣,我不知道當前市面上哪些技術比較值錢。
而且,我在面試前會準備一些針對項目和值錢技術的說辭,這些說辭總要經過實戰來演練下。事實上,在和小公司溝通的過程中,進一步提升了我的相關表述能力和相關話術,相當於用小公司來踩坑。相反,如果用大公司的面試失敗來換得這些進步,就未免有些可惜了。
所以,我和獵頭明說,我想去大公司,但之前,你得讓我到一些小公司去練練手,同時,我面試好以後,會告訴你這些小公司的面試題和相關技巧。這樣一些獵頭就肯先推薦我去小公司了。
對大家來說,其實面試任何一家公司,它們的職位要求絕對不可能一樣。這時大家最好是微調下簡歷。這種微調,絕對不是胡亂編寫,比如上個項目乾的是測試,簡歷中改成開發。而是挖掘下側重點。
就像我之前給出的案例,對於分散式技術,我上個項目確實用過,但簡歷中篇幅有限,我不可能面面俱到地寫,但既然你們公司有要求,那麼我就針對性地詳細介紹。
其實這塊談不上是面試技巧,而是語文技巧。首先是審題,理解職位介紹的主要內容,然後再像寫作文那樣,詳細擴展下上個項目裏相關技術點。甚至這只是中考語文的考點而不是高考的,但我自己的體會是,在這段時間裡針對每份職位介紹我都做了微調,所以基本上是投一份簡歷就能得到一次面試機會。
我見過不少人,面試成了就進去了,結果雖然錢達到預期,但工作環境和行業背景都不是自己想要的,對自己未來發展很不利。
目前不少公司的情況,比如行業背景(比如金融保險電商等)還有工作強度(加班情況)在網上都能查到,用什麼技術(比如分散式技術還是雲還是AI)通過打聽也能問到。互聯網是萬能的,甚至如果仔細些,一些離職率,每年工資的增長幅度,甚至這個公司是第幾輪融資,一般也能看到。
而且,大家在面試的時候,可以通過現場觀察以及和麪試官交流,旁敲側擊地打探到上述情況。在這個基礎上,大家需要結合自己當前的需求和未來3到5年的發展方向,找若干類適合自己的公司,下面就給些我個人的和我所見到的例子。
換工作是個折騰人的事情,雖然沒有十全十美的事情,進新公司後一定會發現和當初的預期有所不同,但如果事先不調查,那麼入職後後悔這還是小事,耽擱自己的發展才是大事。
在上文裏,我一直介紹的是準備簡歷和定目標,從這部分開始,將介紹準備面試。在之前的博文裏,我一直強調項目介紹的重要性,所以當我自己出去面試的時候,這塊絕對重視。在準備項目介紹前,我還是會通讀應聘職位的技術介紹,然後按如下的步驟來準備。
比如我見過一個職位介紹,裡面寫到需要有資料庫優化的經驗,那麼我就說,項目裏我用過MyCat作為分庫分表,(不展開技術),結果上線後,我們資料庫能承受住每秒2000個並發請求(說下用好的結果)。
又如一個JD裏說要用到微服務技術,那麼我就說,項目裏用到了Spring Cloud框架,用到了Ribbon,Eureka等組件,容器是Docker。用好以後,在發布時會發現,各模塊之間的調用耦合性大大降低。
這塊為什麼不用展開?
第一,當前還在介紹項目,如果展開技術,就會主次不分,面試官會對你的邏輯思路產生質疑。第二,由於在JD裏有要求,面試官一定會深入來問,別人問你說總比自己自吹自擂要好。第三,就好比之前考文科內容,當前在介紹項目時,先應當把所有的點說出來,面上自有機會發揮。
這塊其實和介紹項目經驗時密不可分,這裡就拿我介紹過的Netty組件來說明。
1 準備如何過渡到相關技術的說辭。
這裡一定別讓面試官感覺你在自說自話。比如我準備的方案1是,在介紹好項目背景後,如果面試官沒打斷,我就詢問,能否介紹其中的Netty細節?得到允許後再說。方案2是把這些技術關聯到面試官可能會問的問題上,比如問及網路通訊時介紹Netty,這個事先我會整理一個問題列表,遇到此類問題,我會拋出Netty說辭。對於其他技術也可以照此準備。
2 結合業務需求點,說下為什麼要用這個技術,以及用了有什麼好處。
比如為了優化網路通訊協議,所以用基於TCP協議的Netty,我業務模塊裏的xxx功能是用到netty,再稍微結合業務和Netty展開下。這樣的話,面試官就會感覺這個技術你不是僅僅在學習中用到,而且在項目業務裏用到。
3 準備下這個技術裏我踩過的坑。
比如通訊過程中我遇到了半包和粘包問題,對此我更是深入了底層代碼說明,還有Netty裏的堆外內存管理問題,我準備了一個由於管理不善而導致的OOM問題的排查和解決過程(這類問題網上相關的也很多)。
4 我再準備了用了這個技術後對項目的幫助。
比如Netty是基於TCP協議的,它要比Http協議要輕,所以通訊性能高,且Netty內部的Reactor線程模型對系統的IO幫助很大。
其實準備到這個程度,一般的面試官就不怎麼再問了,哪怕面試官再問了一個我不知道的問題,我也可以理直氣壯地說不知道了,畢竟我之前已經介紹了不少底層代碼,再精通Netty的人也未必能面面俱到地在脫稿的情況下回答出任何問題。
但為了以防萬一,我更準備了「源於項目但高於項目」的說辭,一方面證明我平時還會不斷專研,另一方面進一步證明我熟悉並能合理使用Netty的底層代碼。這方面我準備瞭如下的內容:
大家可以想像下,如果在面試中,大家很自信地邊寫底層代碼邊解釋問題,面試官會對大家有什麼評價?其實這些都是可以準備的,我一直沒明白,為什麼有些人面試前不做任何準備?這些準備的素材又不是找不到。
下面我再略講下我MyCAT的準備要點:
基本上我面試時說到這個程度後,面試官就不怎麼問了。
哪怕事先再準備,我們也不能保證自己一定能達到職位介紹裏的要求,這時候就得準備一個自己薄弱技術的列表,然後想辦法在面試中繞過去,如果繞不過去,就找些替代方案。
比如我對消息通訊組件不熟悉,在面試前我哪怕看代碼看文檔也無法進一步理解,我就在面試中,故意不提這個環節,拋出其它值錢技術,引誘面試官來問,一般交流一個技術點大約耗時10分鐘(邊畫圖邊介紹再提問),所以面試過程中詳細交流到的最多也就5個點,少的話就3個,在不少面試裏就根本沒涉及到這塊。
有兩場面試,技術面試官問及到了,我就說項目裏用過,同時多介紹些使用場景,比如用Kafka進行非同步消息通知,通過消息中間件來保證交易的冪等性。這樣面試官聽到我介紹了應用場景,就至少會認為我用過。只有一場面試,面試官在kafka方面問得很細,問到如何集羣內防止消息重發的細節,我就沒回答上。
也就是說,我通過刻意迴避外加介紹業務應用場景,很大程度上隱藏了我瞭解不深的技術。相反,如果我在簡歷中大大咧咧地寫上用過kafka,那麼可能每場面試都會被問到,畢竟在面試中被問倒不是件好事。
又如,我對分散式集羣裏的失效轉移底層細節始終沒理解透徹,那麼在相關問題上就得非常小心。
有一場面試裏,我被問到dubbo+zk集羣,這塊如果細問,一定會問到失效轉移的選舉演算法,我對此不熟,那麼我就先說dubbo的通訊協議,序列化方式以及通過設置超時時間實現服務降級的思路,然後再說zk的部署。最終面試官果然問到選舉演算法,但之前我已經結合業務談了dubbo底層代碼和zk的相關部署,所以不理解選舉演算法並沒有產生太大的影響。
這裡用到的技巧是「偷換概念」,一個問題有多個回答方向,你先讓面試官感覺到你在很多領域非常熟悉,那麼在個別領域不熟悉就無傷大雅了。
但和人事談,就要小心了,畢竟人事是公司開工資的。
總之,面試時人事會非常nice地和你交流,有時候甚至是套話,看你是否穩定,是否能很好地和團隊協作,能否加班,我就見過有人卡在人事這關,甚至還不知道為啥被拒。
而且一般你在和人事談工資前,最好向獵頭打探下這個職位的工資範圍,在此基礎上,如果你感覺面試非常好,或者他們著急要人,或者你感覺加班會很多,可以適當多要些,相反如果你非常想進這個公司,那麼就自己斟酌。
我不推薦經常換工作,比如一年換個兩家,那麼公司會質疑穩定性,但對於我們做IT的人來說,如果手頭技術停滯不前,那麼自己的競爭高工資的能力也會大大降低。
這固然可以通過工作來檢驗,但工作中接觸到的技術畢竟是有限的,這時就可以通過面試來檢驗自己當前的學習情況,同時也可以通過面試題去了解自己的努力方向。
這裡 我分享一套系統的學習大綱,需要的文末有免費領取方式!
1,架構師內功心法(設計模式)
2,架構師審美觀(品味經典,分析源碼)
3,架構師必備技術棧(這裡主要列舉高並發場景分散式解決方案實戰)
4,次世代架構技術(微服務架構)
5, 團隊協作專題
6,架構師築基專題(這裡主要列舉並發編程進階、JVM性能調優知識點)
由於圖片太大上傳會不清晰,需要完整架構體系大綱的可以私信【架構】,領取我已經打包好的架構體系大綱,免費分享給大家哦!
雖然有的人基礎好,起步高,但這些並不是一成不變的。接下來的這幾年的努力,最足以拉開人生的差距。
王健林說:定個小目標,先掙一個億。
王健林說:
這樣的目標可能還是過於宏大了,但每一年,薪資以1.5倍速增長,並非遙不可及。
假設你從應屆生畢業時月薪為8k,兩年工作下來14k。從第三年起,到第五年,每年翻一番,就是:
假設這三年如果只有30%的平均漲幅,那麼就是:
適合Java程序員學習的視頻進階資料總結分享(以下是一部分文檔網盤資料圖)
對自己的學習規劃很迷茫或者想獲取進階資料學習的工程師朋友們私信我【架構】獲取學習資料,記得點贊+關注哦!
推薦閱讀: