程序員如何有效的準(zhǔn)備Java面試?
面試突擊這個話題對于不同的人,所要做的準(zhǔn)備也是不同的。
通常來說面試群體,分為以下三類人:
有程序開發(fā)基礎(chǔ)的(工作經(jīng)驗大于 0.5 年)
程序小白(編程經(jīng)驗0-0.5年)
還未入行的準(zhǔn)程序員

1.有開發(fā)經(jīng)驗的開發(fā)者用戶
對于第一類有開發(fā)經(jīng)驗的人來說,只需要在網(wǎng)上找到靠譜的面試題,刷一個月的面試題,基本就能搞定大部分的面試了
刷題技巧:找到大量的面試題,先大概的通讀所有的面試題,這樣有兩個好處:
好處一:找出高頻的面試題,對于如何復(fù)習(xí)做到心中有數(shù);
好處二:查漏補缺,找到自己的問題所在。

之后再著實從高頻的面試題考試入手,因為高頻的面試題被問答的概率遠(yuǎn)遠(yuǎn)大于其他面試題,以點入面,把這一個面試題涉及到的所有面試題(面試點)深入詳細(xì)的搞懂。
注意點:不要死記硬背,如果遇到不會的題,或者不明白的題目,一定要動手實踐,把一個相關(guān)的知識點要搞的明明白白才行。以 BAT 的面試為例,面試的廣度自然不用說了,而深度也要夠才行,BAT 的面試通常以一個簡單問題開始入手,會一直根據(jù)這個知識點延伸到更深入的知識點。例如,如果提供程序的性能?延伸到什么是多線程?再延伸到多線程有幾種鎖?再延伸到鎖的區(qū)別是什么?再延伸和擴展到 Synchronized 和 Lock 的區(qū)別?再延伸到 JDK 8 對 Synchronized 都做了哪些優(yōu)化?等等類似這樣的形式。
2.程序小白
這類人對于程序似懂非懂,缺少的是項目的實踐經(jīng)驗,而企業(yè)招聘這類人,也分為兩派:
一個是大廠預(yù)備的準(zhǔn)程序開發(fā)者,他們考察的是面試者的思維能力,通常會考一些算法題和計算機基礎(chǔ)知識;
二是中小型公司,以實戰(zhàn)為主,這類考察的面試者的項目實戰(zhàn)經(jīng)驗。

讀者可根據(jù)自己的情況選擇相應(yīng)的方向,如果要進大廠,重點在算法上,可以去 LeetCode 刷大量的算法題,以補充自己的知識短板,刷 LeetCode 剛開始的時候可能比較痛苦,萬事開通難,剛開始如果不會建議思考 3-5 分鐘,就可以查看相應(yīng)的答案和解題思路了,循環(huán)往復(fù)一段時間,就可以自己獨立的解題了,這個過程重要的是堅持。
如果選擇進入中小型公司,就要在刷面試題的間隙,盡可能的多做不同的項目,提交到 GitHub 上,GitHub 的地址也可以體現(xiàn)在簡歷上,如果這一點做的比較好,在面試環(huán)節(jié)會加很多分。
練習(xí)的項目,可以仿大網(wǎng)站,比如簡易版的淘寶,也可以是其中的某一個模塊,也可以仿照微信、網(wǎng)易新聞、網(wǎng)易音樂等。
3.還未入行的準(zhǔn)程序員
這類用戶就要以視頻學(xué)習(xí)和看書為主了,因為刷再多的面試題基本都是死記硬背,這個時候刷太多的面試題的意義不是很大,反而是提升自己對程序的認(rèn)識和練習(xí)比較重要,想讓自己會做一些簡單的 demo,看一些視頻或者一些 Java 入門書籍,等能做一些小東西了,在參照第二點,進行面試準(zhǔn)備。

總結(jié)
面試看似是一個簡單的行為,本質(zhì)上映射的是你的程序功底,和之前的技術(shù)積累和實踐。但贏得“面試”獲取的報酬也是豐厚的,我身邊有很多朋友通過面試實現(xiàn)工資翻倍都是很平常的事,所以為了自己豐厚的物質(zhì)回報,做再多的準(zhǔn)備也都是值得的。面試的核心點還有一個就是要掌握好方法,要學(xué)會以點入面,把一個面試相關(guān)的知識點都理解透徹。