最近去阿里的菜鳥國際作了一次面試交流,發現大公司對於面試者的知識結構考覈很是嚴謹,能夠做爲咱們平常工做學習的指導。雖然不少人說面試問到的東西在實際工做中不多用到,甚至有「面試造火箭,工做擰螺絲」的說法。但從面試中,其實能夠看得出來如今的公司對於面試者的知識體系要求。若是咱們能在工做中就按着這樣的要求去不斷提高,那麼在面試的時候必然也能遊刃有餘。java
通常來講,阿里的面試會有兩輪的技術電面,分別交叉檢驗你的技術基礎。後面還有兩輪的現場技術面試,主要檢驗你的項目經驗。但從知識體系的角度來看,阿里面試對於知識的考覈能夠分爲三個層次:對於基礎知識的考覈、對於項目經驗的考覈、對於項目深度的考覈。面試
在這個層次上,主要考覈你對 Java 語言自己原理的理解以及各類框架的原理理解。數據庫
對於 Java 開發崗位上來講,這些知識點包括但不限於:微信
上面只是說了不多的一部分而已,若是想查看更多,能夠點擊《Java面試題:百度前200頁都在這裏》瞭解更多。架構
看到這麼多的知識點,我一會兒就懵逼了,這麼多得看到何時纔看得完啊?但後面我想明白了,其實你不須要所有都懂,但須要了解大部分知識點,而且在這大部分知識點中,還須要有部分是瞭解得很是深刻的。若是達到這個水平,基本上都能經過考覈。併發
對於基礎知識的考覈多出如今阿里的前兩輪電話面試上。對於這塊,你事前把網上常見的面試題目看一遍,多面試幾回基本上都沒有問題。框架
當你成功經過基礎知識的考覈以後,你會進入下一關的考驗:項目的理解程度。學習
面試官首先會讓你選擇一個你最拿手的項目,畫出架構圖,以後的一切問題都從這個架構圖觸發。當你畫出架構圖以後,你確定須要解釋清楚每一個模塊的做用,每一個框架的原理以及與其餘框架的區別。優化
例如我就用我作過的一個搜索項目做爲經典項目,與面試官探討。線程
對於「項目理解程度」的考覈會發生在技術面試的三四輪。在這個層次上,你必需要有一個拿得出手的項目,而且對其中的全部框架以及原理都瞭如指掌,不然你會被虐慘。
經過上一輪對於「項目理解程度」的考覈後,基本上你對整個項目都會有一個全面的認識,應用層面上的問題基本上不會難倒你了。但在「項目思考深度」的考覈上,就不只僅只是考覈應用層面上的問題了。
仍是用我作過的一個搜索項目做爲例子,其中 Canal 這個開源框架暫時是沒有實現集羣這個功能的,那麼面試官就問了:
這個時候,你會發現你懵逼了,由於你歷來沒有去思考過這個問題。你全部的工做內容都是在想如何使用開源框架,而沒有進一步思考這些開源框架好很差,有什麼能夠改進的地方。
因此,在這一個層次上考覈的是你對開源框架的思考深度,這些框架到底好很差,好在哪裏,很差在哪裏,有什麼能夠改進的地方。
對於「項目思考深度」的考覈一樣發生在技術面試的三四輪。在這個層次上,你不只要對項目自己理解足夠深入,還要跳出項目自己,去思考開源框架自己的問題。
當咱們回過頭來總結,你會發現這三個層次都是層層遞進的,並且逐步深刻。雖然這是面試中總結出來的經驗,可是這倒是一個很好的學習指引。讀者能夠本身自查,看看本身如今是處於哪一個層次,這樣在工做中也能夠不斷地向更高層次邁進。
對於我來講,我缺少的是對於項目的思考深度,不少時候都是業界以爲好,那我就用了。可是做爲一個高級開發,甚至是一個即將成爲架構師的高級開發來講,你必須知道爲何要用這些框架?它有什麼問題,咱們能不能作得更好?只有這樣,咱們纔能有所成長。
我有一個微信公衆號,常常會分享一些Java技術相關的乾貨;若是你喜歡個人分享,能夠用微信搜索「Java團長」或者「javatuanzhang」關注。