阿里P8高级架构师:面试没你想象中的难,拿Offer也可以很轻松
阿里P8高級架構師:面試沒你想象中的難,拿Offer也可以很輕松
一、概述
面試,難還是不難?取決于面試者的底蘊(技能)、心態和認知及溝通技巧。面試其實可以理解為一場聊天和談判,在這過程中有心理、思想上的碰撞和博弈。其實你只需要搞清楚一個邏輯:“面試官為什么會這樣問?他希望聽到什么答案?”然后針對性的準備和回答就行了,無他。
“你的優勢是什么?”多年前我覺得這個問題很無聊,現在我經常這么問面試者,因為我真的想知道他的優勢是什么,能給公司帶來什么。最終能和面試官聊的開心愉快投緣的叫面霸。反之叫面癱。
我帶過的學生里找工作時有個有趣的現象,經常是懂溝通的人先找到工作,而不是技術最牛的那個。
面霸是可以練成的。我在這篇文章里嘗試從兩個方面對面試進行梳理,一個是流程,一個是細節。 流程可以讓我們以上帝視角看問題,細節呢?細節決定成敗。在面試這件事上,細節做的越細越好。
二、面試流程
面試就像一場戰役,要打贏戰役應該做如下功課,才能做到胸有成竹。
面試前準備
戰前需要充分準備,要研究對手,所謂知己知彼,百戰不殆。要準備好足夠的彈藥。
1、簡歷的幾個注意事項
因為篇幅原因,簡歷的詳細寫法這里就不講了。只講 3 點需要注意的問題。
不要給自己挖坑
你要對你自己寫的簡歷負責。因為面試時,面試官通常會拿著你的簡歷,問里邊的各種細節。 技術細節、工作經歷、項目情況等。你必須對自己寫下的每個字后面的隱藏話題做充足的準備。 舉個例子,簡歷上有這樣一句話:
熟悉運用 Chrome Dev Tools、Firefox 的 Firebug 調試頁面
那面試官可能會問:講講你用 firebug 調試頁面時,都有哪些經驗技巧感覺比較有用?這樣針對一個話題進行展開談話。
簡歷要有辨識度
通常一個職位可能收到的簡歷比較多,這時候怎么使你的簡歷能在眾多對手中脫穎而出,獲得面試邀約呢?要有“辨識度”,最好達到的效果是,面試官覺得看完這個簡歷,覺得很想見見這個人。 拿自我評價部分來舉例吧,下面的案例大家自己看下,如果你是面試官,想邀請誰面談呢? 括號里是我的的意見,大家也可以把自己想象成面試官,自己琢磨一下。
最好找人幫你 Review 一下簡歷
因為簡歷就像自己寫的程序,自己很難發現 bug,讓別人以面試官的視角 review 一下,會發現一些意想不到的問題。找老師、同學、朋友都可以,不要怕麻煩。
2、找工作的主要網站和渠道
智聯招聘/51job/英才網(傳統)
拉鉤(相對較新)
獵聘網(高級人才)
v2ex(酷工作)
BOSS 直聘(直接和 BOSS 聊)
*相關的社群
3、了解公司的相關情況
面試前應到公司的網站上或別的渠道,提前了解公司的企業背景、業務模式、主營產品等, 面試的時候就可以做到有的放矢。
“你對我們公司有了解嗎” “我提前了解了一下,貴公司從事的是……理念是……我覺得和我的理念挺吻合的……”
“你對我們的產品有什么看法” “我仔細研究了貴公司的產品,發現有如下優點……還發現幾個問題……我覺得可以這么改進……”
這樣的對話,會和面試官迅速拉近距離。 面試官也會認為你做足了功課,是一個用心的人。
4、干貨儲備(核心技能)【這是最重要的一點】
專業知識準備
收集相關面試題并熟練掌握。面試官有時候也會照著網上的題庫問你問題,哈哈。最好能按自己的理解,用自己的語言去闡述問題。
項目經驗
項目的研發背景、整體業務流程、開發周期、負責的模塊、技術實現細節、技術亮點等。你自己做過的每個項目都要搞清楚。
面試中
戰斗時要保持正念、精神煥發,昂首挺胸,眼神堅定、謙虛謹慎。
1、注意禮節:禮多人不怪
以前從事對日軟件開發的時候,我們會經常培訓面試的禮儀問題。因為日本人比較注重這些。我記得當時有幾個小環節,比如進入面試官房間前要先敲門,進入房間后沒有得到”請坐“的允許前,要站立等待等等。
其實在國內面試,這些細節也很重要,不過通常的場景是:面試者會先被安排在一個屋里等待,面試者后來進入。當面試官進入的時候,面試者應該站起來并做基本的示意。會給面試官一種有禮貌的感覺。這些細節要多加留意。
2、正確的面試態度
面試這件事是一個雙向選擇的過程,你付出勞動,企業付你勞動薪酬,所以這是一種平等的關系。這種平等關系在面試中的體現也很重要。
誤區 1:過于自卑性型。感覺找個工作不容易啊,給我個工作就行,這樣氣勢上容易落到下風。這時候面試官會感覺到,從而進一步在氣勢上壓住你,不利于雙方順暢平等的交流。
誤區 2:過于亢奮型,覺得自己什么都會,挺牛,比面試官都厲害,這樣也不對。
正確姿勢:不卑不亢、從容面對、真誠回答最好。
3、告別:別忘了加微信
微信是移動互聯網時代的個人名片,結束時最好互相加一下微信并備注好。比如我會這樣備注:H5 講師 北京 張三。面試者可以這樣備注:58 同城 研發部經理 李四。
這樣可以和面試官保持后續的聯絡,是個很重要的動作。即使沒能面試成功,可能某一天發生鏈接成為你的人脈也說不定。
面試后
因為我們可能還要打多場戰役,所以針對每次戰役都要及時進行反思,總結經驗教訓,用現在流行的說法叫“復盤”。這樣才會有進步,下次作戰也會更有自信和把握。
復盤很重要,沒有復盤的行動往往是無效的,因為沒有經過總結和沉淀。大家要養成經常復盤的習慣。面試的復盤我們可以這樣做:
1、復盤自己在面試現場的整體表現
*是否表現得沉著自信、充滿活力、輕松自如?
*對面試官提問的反應是否恰當、準確、靈活?
2、復盤自己在面試中的所有問題及答案
*分別記錄下 HR 面試問題和技術面試問題及回答
*關于面試官的提問,你是否還可以做出更好的回答?
3、其他心得感受
最好將以上內容寫成一篇面試總結,存在印象筆記里。比如形成這樣的筆記本,在以后面試時這些經驗就是最好的資料庫:
2015-10-11 IBM java 開發 北京 #面試#
2017-12-11 埃森哲 iOS 技術 Leader 鄭州 #面試#
整個面試流程可以用 PDCA 循環理論來進行檢查和改進。
三、面試問題
大部分公司在社招的時候,不光是阿里,其它公司也都一樣,基本上都分為兩個階段的提問。
第一個階段是主語言本身以及它的高級特性
第二個階段是講述自己的項目,并在中間穿插著問題
社招面試如何準備1主語言本身以及它的高級特性。
主語言當然就是你平日里拿來賺錢的家伙。
主語言很顯然是Java,那么對于Java來說,它的語言本身以及它的高級特性,都有哪些比較容易在面試中問到呢?
一般情況下,主要有以下知識點很容易被問到。(PS:以下所列舉的,都是一些Java相對而言比較高級一點的知識點,因為這里談的是社招,而不是校招)
1、Java的數據結構相關的類實現原理,比如LinkedList,ArrayList,HashMap,TreeMap這一類的。以下簡單模擬一個數據結構的連環炮。
比如,面試官先問你HashMap是不是有序的?
你肯定回答說,不是有序的。那面試官就會繼續問你,有沒有有順序的Map實現類?
你如果這個時候說不知道的話,那這個問題就到此結束了。如果你說有TreeMap和LinkedHashMap。
那么面試官接下來就可能會問你,TreeMap和LinkedHashMap是如何保證它的順序的?
如果你回答不上來,那么到此為止。如果你依然回答上來了,那么面試官還會繼續問你,你覺得它們兩個哪個的有序實現比較好?
如果你依然可以回答的話,那么面試官會繼續問你,你覺得還有沒有比它更好或者更高效的實現方式?
如果你還能說出來的話,那么就你所說的實現方式肯定依然可以問你很多問題。
以上就是一個面試官一步一步提問的例子。所以,如果你了解的不多,千萬不要敷衍,因為可能下一個問題你就暴露了,還不如直接說不會,把這個問題結束掉,趕緊切換到你熟悉的領域。
2、Java并發包當中的類,它們都有哪些作用,以及它們的實現原理,這些類就是java.concurrent包下面的。與上面一樣,咱們也簡單的模擬一個并發包的連環炮。
比如面試官可能會先問你,如果想實現所有的線程一起等待某個事件的發生,當某個事件發生時,所有線程一起開始往下執行的話,有什么好的辦法嗎?
這個時候你可能會說可以用柵欄(Java的并發包中的CyclicBarrier),那么面試官就會繼續問你,你知道它的實現原理嗎?
如果你繼續回答的話,面試官可能會繼續問你,你還知道其它的實現方式嗎?
如果你還能說出很多種實現方式的話,那么繼續問你,你覺得這些方式里哪個方式更好?
如果你說出來某一個方式比較好的話,面試官依然可以繼續問你,那如果讓你來寫的話,你覺得還有比它更好的實現方式嗎?
如果你這個時候依然可以說出來你自己更好的實現方式,那么面試官肯定還會揪著這個繼續問你。
為什么說面試的時候要引導面試官,原因就在這了。因為面試官的提問很多時候都是有跡可循的,你如果抓住了他的軌跡,能夠猜到他下面很可能會問什么,那你在回答的時候就可以往你想要談的方向去說。這樣面試時就會顯得更加從容,更加的游刃有余。
**3、Java的虛擬機的內容。這部分主要包括三部分,GC、類加載機制,以及內存。
一個GC部分簡單的連環炮。**
面試官可以先問你什么時候一個對象會被GC?
接著繼續問你為什么要在這種時候對象才會被GC?
接著繼續問你GC策略都有哪些分類?
你如果說出來了,繼續問你這些策略分別都有什么優劣勢?都適用于什么場景?
你繼續說出來了以后,給你舉個實際的場景,讓你選擇一個GC策略?
你如果選出來了,繼續問你,為什么要選擇這個策略?
下面是關于類加載機制的簡單連環炮。
首先肯定是先問你Java的類加載器都有哪些?
回答了這些以后,可能會問你每個類加載器都加載哪些類?
說完以后,可能會問你這些類加載之間的父子關系是怎樣的?
你在回答的時候可能會提到雙親委派模型,那么可以繼續問你什么是雙親委派模型?
你解釋完了以后,可能會繼續問你,為什么Java的類加載器要使用雙親委派模型?
你回答完以后,可能會繼續問你如何自定義自己的類加載器,自己的類加載器和Java自帶的類加載器關系如何處理?
再來一個關于內存的連環炮。
首先肯定就是問你內存分為哪幾部分,這些部分分別都存儲哪些數據?
然后繼續問你一個對象從創建到銷毀都是怎么在這些部分里存活和轉移的?
接著可能會問你,內存的哪些部分會參與GC的回收?
完事以后,可能還會問你Java的內存模型是怎么設計的?
你回答了以后,還會繼續問你為什么要這么設計?
問完以后,還可能會讓你結合內存模型的設計談談Volatile關鍵字的作用?
你在談的時候,肯定會提到可見性,那么接著可見性這三個字,還可以繼續問你并發的內容。
額外的加分項
上面兩個階段基本上是必問的,還有一些加分項。這些加分項中,有些內容面試官也會問你(比如TCP/IP協議、算法),但更多的是會先問你了解不了解,你了解的話再繼續聊,不了解的話就直接略過了,不至于因為這種問題而直接把你打入地獄。
列舉一些加分項:
計算機系統原理。
網絡通信協議(TCP/IP,HTTP等)。
數據結構與算法。
著名開源項目的源碼。
你自己有很棒的開源項目。
你的個人博客。
待評論區補充。
這幾項當中,
對于前1-3項,如果你之前就比較了解,只是由于時間問題忘記了的話,還是可以臨時抱佛腳一下的。
至于后面4-6項,就需要你日常的積累了,不是一時半會兒能做到的。如果你平日里沒有積累,那么后面這三個加分項只能拋棄了。
最后切記,大公司不要學歷造假,不然你是無法入職的,現在很多公司都在offer前進行背調,這樣會影響你以后去該公司的就入職機會,小公司當然你可以玩點技巧,但最重要的還是你必須自我努力,自己有能力才是關鍵,是金子去哪里都會發光。
下面是我收藏的一個系統化學習的課程體系,高并發分布式、工程化、商城實戰、性能優化、熱門源碼框架、微服務架構:
需要思維導圖格式的可以加群:810589193免費獲取
阿里P8高級架構師:面試沒你想象中的難,拿Offer也可以很輕松
阿里P8高級架構師:面試沒你想象中的難,拿Offer也可以很輕松
阿里P8高級架構師:面試沒你想象中的難,拿Offer也可以很輕松
阿里P8高級架構師:面試沒你想象中的難,拿Offer也可以很輕松
阿里P8高級架構師:面試沒你想象中的難,拿Offer也可以很輕松
阿里P8高級架構師:面試沒你想象中的難,拿Offer也可以很輕松
四、總結
就寫到這里吧,希望通過本文大家可以對面試這件事的整體和細節有更進一步的認知,參加面試也能更加自信和有把握。逐漸成長為可以縱橫江湖的面霸,在江湖上留下你的傳說
最后給大家一個驚喜,針對以上技術圖,我也錄制了一些視頻資料提供給大家~
有高清架構腦圖、Java架構資料、Java面試資料等...
現在加群:810589193可以免費獲取Java工程化、高性能及分布式、高性能、高架構、性能調優、Spring、MyBatis、Netty源碼分析等多個知識點高級進階干貨的相關視頻資料,還有spring和虛擬機等書籍掃描版,還有更多面試題等你來拿
分享給喜歡Java,喜歡編程,有夢想成為架構師的程序員們,希望能夠幫助到你們。
轉載于:https://blog.51cto.com/14214335/2384655
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的阿里P8高级架构师:面试没你想象中的难,拿Offer也可以很轻松的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分布式事务中间件Fescar—全局写排它
- 下一篇: 接口测试工具Postman(转)