阿里P8高級架構師:面試沒你想象中的難,拿Offer也可以很輕鬆

webp

阿里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免費獲取

webp

阿里P8高級架構師:面試沒你想象中的難,拿Offer也可以很輕鬆

webp

阿里P8高級架構師:面試沒你想象中的難,拿Offer也可以很輕鬆

webp

阿里P8高級架構師:面試沒你想象中的難,拿Offer也可以很輕鬆

webp

阿里P8高級架構師:面試沒你想象中的難,拿Offer也可以很輕鬆

webp

阿里P8高級架構師:面試沒你想象中的難,拿Offer也可以很輕鬆

webp

阿里P8高級架構師:面試沒你想象中的難,拿Offer也可以很輕鬆

四、總結

就寫到這裏吧,希望通過本文大家可以對面試這件事的整體和細節有更進一步的認知,參加面試也能更加自信和有把握。逐漸成長爲可以縱橫江湖的麪霸,在江湖上留下你的傳說

最後給大家一個驚喜,針對以上技術圖,我也錄製了一些視頻資料提供給大家~

有高清架構腦圖、Java架構資料、Java面試資料等...

現在加羣:810589193可以免費獲取Java工程化、高性能及分佈式、高性能、高架構、性能調優、Spring、MyBatis、Netty源碼分析等多個知識點高級進階乾貨的相關視頻資料,還有spring和虛擬機等書籍掃描版,還有更多面試題等你來拿

分享給喜歡Java,喜歡編程,有夢想成爲架構師的程序員們,希望能夠幫助到你們。

webp


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章