0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Java工程師怎樣快速進(jìn)行面試準(zhǔn)備

工程師人生 ? 來源:工程師吳畏 ? 2019-08-02 16:12 ? 次閱讀

假如你準(zhǔn)備在金三銀四跳槽的話,那么作為一個Java工程師,應(yīng)該如何利用1個月的時間,快速為即將到來的面試進(jìn)行充分的準(zhǔn)備呢?

總結(jié)起來,面試官考察候選人的時候主要是從技術(shù)廣度、技術(shù)深度、基礎(chǔ)功底、系統(tǒng)設(shè)計、項目經(jīng)驗幾個角度來進(jìn)行的。

本文就針對每一塊內(nèi)容,具體說一下面試的考察點,更重要的是針對考察的這些點,如何來快速的進(jìn)行準(zhǔn)備。

一、技術(shù)廣度

技術(shù)廣度,顧名思義,作為一個合格的工程師,在開發(fā)一個系統(tǒng),完成一些具體的技術(shù)任務(wù)時,必然要使用到很多的技術(shù),而且針對這些技術(shù)還需要掌握一些常見,各種不同的系統(tǒng)可能會涉及到的一些技術(shù)架構(gòu)/技術(shù)方案。

舉個例子,一個互聯(lián)網(wǎng)公司比較重要的系統(tǒng),首先肯定會用到分布式服務(wù)框架,比如dubbo/spring cloud,這樣可以將系統(tǒng)拆分為分布式的架構(gòu),或者說現(xiàn)在很流行的說法是微服務(wù)架構(gòu),這樣每個人負(fù)責(zé)一個服務(wù)或者是一個子系統(tǒng)。

接著這個系統(tǒng)很可能為了支撐一些特殊的技術(shù)場景會用到其他各種技術(shù)。

常見的比如說為了應(yīng)對高并發(fā)的讀會用到Redis緩存技術(shù),為了做系統(tǒng)異步調(diào)用會用到RocketMQ技術(shù),為了支撐大數(shù)據(jù)量的高性能檢索會用到Elasticsearch技術(shù),等等。

那么假如這個互聯(lián)網(wǎng)公司在招聘Java工程師的時候,他的招聘要求是什么?

是不是必須得要求候選人起碼在dubbo、Redis、RocketMQ、Elasticsearch等多個技術(shù)領(lǐng)域,都有實際的生產(chǎn)項目使用經(jīng)驗,而且還對這些技術(shù)的各種特性以及落地項目的時候常見的技術(shù)架構(gòu)/方案都比較熟悉,這樣招聘這個人進(jìn)來之后才能上手立馬干活。

要求一個候選人對各種常見的技術(shù)以及相關(guān)架構(gòu)都有實際的項目經(jīng)驗以及對技術(shù)本身也足夠熟悉,這就是所謂的技術(shù)廣度,站在招聘候選人的角度來分析一下,想必大家就理解這個“技術(shù)廣度”考察項了。

實際上技術(shù)廣度這個東西,都說了是技術(shù)廣度了,所以肯定不僅僅只是上面提到的那點東西。

實際上,一個合格的適合互聯(lián)網(wǎng)公司的工程師在技術(shù)廣度上,還需要掌握其他很多東西。

比如分布式事務(wù)、微服務(wù)架構(gòu)、分布式鎖、性能優(yōu)化、Java虛擬機(jī)優(yōu)化、Web Server優(yōu)化、數(shù)據(jù)庫優(yōu)化,等等。

越是大型的互聯(lián)網(wǎng)公司,就越是會針對技術(shù)廣度這塊,考察的可能會越廣泛,要求更高一些。

二、技術(shù)廣度的快速準(zhǔn)備

這個問題,我們分成兩種情況來說。

假如說你平時就很勤奮很努力,過去幾年一直在不停學(xué)習(xí)。那么恭喜你,這塊東西百分百難不住你,因為你過去幾年持續(xù)的學(xué)習(xí),可能已經(jīng)把技術(shù)廣度的每個點的一些東西都研究過,而且或多或少都有一些使用的經(jīng)驗。

對于你學(xué)習(xí)過或者實踐過的東西,你肯定都記錄了一些筆記。你最好的準(zhǔn)備方式,就是快速回顧自己的筆記,把各種常見技術(shù)的核心原理和項目實踐都通過筆記回顧的方式快速回憶起來,在大腦里形成一個知識網(wǎng)絡(luò)。

如果你是一個不那么勤奮的工程師,或者是一個工作才兩三年,涉世未深的小年輕,此時怎么辦呢?

那也沒關(guān)系,記住一句老話:臨陣磨槍,不快也光。你雖然沒啥積累,但是你都要面試了,怎么著也得臨陣突擊一下吧。

下面就是要教你的方法:你可以自己把技術(shù)廣度可能涉及到的各種點都羅列出來,然后上網(wǎng)百度一下各個技術(shù)點常見的一些面試問題,或者是基本的一些核心原理。

通過百度各個技術(shù)點,然后從各種技術(shù)博客中快速了解一個技術(shù)的方式,短時間內(nèi)可以迅速建立起來對技術(shù)廣度中涉及到的各個點的一些基本認(rèn)知、核心原理,這樣在面試的時候避免一問三不知。

當(dāng)然,大家也清楚,技術(shù)這東西是沒法速成的,你采用第二種方法來突擊,跟你第一種情況下有幾年的積累厚積薄發(fā),最后落地到面試的時候,表現(xiàn)是截然不同的,也會直接決定不同的人會進(jìn)入不同層次的公司。

第二種情況的同學(xué)可能面試的時候問到一個問題,就只能說個一兩分鐘,但是第一種情況的同學(xué),功夫都在平時,只要復(fù)習(xí)到位,面試的時候問到一個問題往往可以舉一反三,一下子給你說個十多分鐘都可以。這就是區(qū)別所在。

不過,就算你只說一兩分鐘,總比一問三不知,和面試官大眼瞪小眼好,對吧?

最后還是給各位強(qiáng)調(diào)一下,成功無捷徑,作為一個優(yōu)秀的技術(shù)工程師,最重要的事情是一年365天,每天都不停的學(xué)習(xí)積累,堅持很多年。

吃得苦中苦,方為人上人,筆者早年進(jìn)行技術(shù)積累的時候,也是這樣過來的。每天晚上學(xué)習(xí)到凌晨一兩點,周六周日全天學(xué)習(xí),堅持了很多年。分享一個架構(gòu)師圈子:854601507,適合兩年及以上朋友交流。

只有通過幾年的積累,你才能夠厚積薄發(fā),量變產(chǎn)生質(zhì)變,菜鳥變成大牛。

三、技術(shù)深度

簡單來說,假如你有了上面說的技術(shù)廣度,這不能說明你有多優(yōu)秀,僅僅只能說滿足了面試的最基本要求,招聘進(jìn)來后立馬就可以上手干活了,沒太大的培養(yǎng)成本。

決定你未來技術(shù)的高度有多高,還有你能否成為團(tuán)隊里頂梁柱的,是你的技術(shù)深度。

技術(shù)深度,顧名思義,就是說你對一個技術(shù)掌握的深度,舉個最簡單的例子。假如你們公司的一個系統(tǒng)里用到了kafka這個技術(shù),好那么現(xiàn)在問題來了,線上生產(chǎn)環(huán)境中,每當(dāng)高峰到來的時候,不知道為啥寫kafka總會偶爾拋個異常出來,或者是說寫入到kafka中的數(shù)據(jù)不知道為啥每天統(tǒng)計下來總會少一些。

線上生產(chǎn)環(huán)境遇到這種稀奇古怪的問題的時候,往往就是團(tuán)隊里技術(shù)大牛出場的時候。技術(shù)大牛,一定是對各種技術(shù)都有一定深度研究的人,能否在遇到技術(shù)問題的時候,直接從本質(zhì)和底層出發(fā),分析和定位問題,最后帶領(lǐng)團(tuán)隊解決問題。

比如上面說的那些問題,那要解決的話,首先需要一個技術(shù)大牛對kafka的源碼有過一定深度的研究,接著就是在遇到問題的時候根據(jù)當(dāng)時的故障現(xiàn)場以及一些日志,結(jié)合源碼的運(yùn)行流程,來一步一步分析和定位出來問題所在,最后可能就是通過一些kafka的參數(shù)的調(diào)整,就可以解決上述棘手的生產(chǎn)問題。

上述描述的場景和能力,就是技術(shù)深度的體現(xiàn),比如說你對某個技術(shù)有過完整的、全方位的、深入底層的源碼研究,這就已經(jīng)是常人不可及的技術(shù)深度了。

因為很多人說是看過源碼,但是其實都是淺淺的看過一點點,理解不太深入。

同時如果還有一些對某個技術(shù)在線上生產(chǎn)環(huán)境遇到過一些棘手問題,通過源碼分析來解決問題的經(jīng)驗的,那么就是更優(yōu)秀的技術(shù)深度的體現(xiàn)。

技術(shù)深度的體現(xiàn),不一定是說看過源碼,這只是其中一種表現(xiàn)形式而已,其他的還有,比如說對某個特別有難度的技術(shù)場景,比如說公司雙11每秒幾十萬QPS并發(fā)請求下,你負(fù)責(zé)了其中支付系統(tǒng),成功應(yīng)對超高并發(fā)量。

在這個過程中,你對系統(tǒng)架構(gòu)的設(shè)計,對系統(tǒng)做的大量的并發(fā)優(yōu)化、性能優(yōu)化,都可以成為你在某個技術(shù)領(lǐng)域的技術(shù)深度的體現(xiàn)。

四、技術(shù)深度的快速準(zhǔn)備

其實也很簡單,分為兩種情況來討論。

如果你在過去幾年,自己就深入閱讀過大量開源技術(shù)的源碼,在閱讀源碼的過程中,自己還把源碼的架構(gòu)圖、流程圖,手工畫了大量的圖出來。

那么此時你完全就可以把過去幾年的源碼研究筆記翻出來,快速過一下,練習(xí)如何在面試現(xiàn)場在白板上純手工把各種技術(shù)的源碼架構(gòu)圖和流程圖現(xiàn)場畫出來。

或者在過去幾年,你對某個技術(shù)領(lǐng)域,針對很高的技術(shù)難度做過什么復(fù)雜的系統(tǒng),在那個技術(shù)領(lǐng)域扎下了很深的研究的話,那么此時你也可以針對過去的筆記快速的復(fù)習(xí),在面試現(xiàn)場一定要現(xiàn)場畫圖把你做過的復(fù)雜系統(tǒng)以及技術(shù)難度都說清楚。

但是如果你過去幾年沒上述所說的任何積累,那咋辦呢?

一般面試官在考察技術(shù)深度的時候,很可能會問你:你對哪個技術(shù)比較熟悉一些?

遇到這個問題的時候,希望大家頭腦清醒一些,千萬不要腦子發(fā)熱隨便亂說,因為你要做好一個心理準(zhǔn)備,一旦你說出某個技術(shù)出來,比如你說你平時用dubbo用的比較多,接著面試官可能會開啟深入源碼級別的10連擊模式。

比如說,面試官立馬就會開始問你對你熟悉的某個技術(shù),各種底層的機(jī)制和原理,讓你說源碼的理解,給你出各種技術(shù)挑戰(zhàn)之下這個技術(shù)該如何應(yīng)對,等等諸如此類的問題。

我見過太多沒經(jīng)驗的同學(xué)隨便說個熟悉的技術(shù),其實他就僅僅只是會用罷了,但是一旦當(dāng)我深入提問的時候,基本就進(jìn)入一問十不知的情況了。

如果發(fā)生上述情況,會讓面試官對你的印象和態(tài)度極其不好,大家一定切記切記!

所以,假如你要是確實沒有過對什么技術(shù)的深入的積累,這里也教你一個臨陣磨槍的辦法:

你可以從簡歷中挑選出某個你相對來說用的比較多,熟悉一點點的技術(shù),然后直接用萬能的百度,搜索“XX技術(shù)源碼分析”,“XX技術(shù)底層原理”。

通過幾天的時間快速的 “ 死記硬背 + 軟磨硬泡 ”,力爭對某個技術(shù)相對有一些稍微底層一些的理解。

這樣做,起碼在面試的時候被要求問到一些技術(shù)深度的時候,能相對給出一些比普通工程師的回答更好一些的分析,起碼能在面試的時候,讓你拿到好點的offer概率會相對更大一些。

還是那句話,做,總比不做好。你能對底層做了準(zhǔn)備,有一些了解,總是要勝過那些浮于表面,只會使用API的工程師吧!

同樣筆者這里要說,回歸技術(shù)的本質(zhì),對于技術(shù)深度的積累,那更是沒有任何捷徑可言,更不是幾個月可以完成突擊的。

因為真要有技術(shù)深度的話,你可能需要花費(fèi)至少2年的時間,從底層開始研究一些基礎(chǔ)性的技術(shù)。

在打通你的底層技術(shù)任督二脈之后,再去對常見的開源技術(shù)進(jìn)行深入的源碼研究,比如說:dubbo、zookeeper、spring cloud、redis、rocketmq、elasticsearch,等等。

有了幾年的積累過后,最后你在面試的時候,技術(shù)深度的體現(xiàn),其實都是厚積薄發(fā)的。

除此之外,還需要一個系統(tǒng)的學(xué)習(xí)方法和交流經(jīng)驗的架構(gòu)圈子,平時的積累和技術(shù)擴(kuò)展一定離不開交流,同時要將吸收的技術(shù)點進(jìn)行系統(tǒng)整理。為此,針對當(dāng)前互聯(lián)網(wǎng)公司的技術(shù)需求,我整理了一份系統(tǒng)的架構(gòu)技術(shù)體系,大家可以進(jìn)群Java資源分享群:(854601507)下載相關(guān)技術(shù)資料,群里有阿里大牛,也有一線互聯(lián)網(wǎng)的資深HR,或關(guān)注微信公眾號:Java資訊庫,免費(fèi)領(lǐng)取架構(gòu)資料。

五、基礎(chǔ)功底的快速準(zhǔn)備

我的建議是,如果真的還有1個月要去面試了,那你最起碼用幾天的時間,網(wǎng)上搜三五十個最常見、最典型的算法題,反復(fù)練習(xí)、務(wù)必熟練。

熟練到什么程度呢?

你需要反復(fù)練習(xí),最后自己能夠在白紙上一遍就手寫出沒有bug的代碼。

哪些題目是最常見、最典型的?舉個例子,經(jīng)典排序算法以及其時空復(fù)雜度分析,經(jīng)典查找算法,棧、隊列、鏈表、二叉樹等常見數(shù)據(jù)結(jié)構(gòu)的算法題,這些相關(guān)的基礎(chǔ)題目都要熟練掌握。

當(dāng)然最好的對于基礎(chǔ)的算法之類的東西的積累,還是在平時,比如你要是堅持每天就在leetcode或者lintcode上花費(fèi)半小時刷一個算法題,堅持一年,你就刷了至少300道算法題,堅持兩年,你就積累了七八百道算法題。

這個時候有了足夠的積累,起碼面試是不用擔(dān)心任何基礎(chǔ)性手寫算法之類的問題了,功夫其實還是在平時的。

至于算法題目的難度選擇,只需要LeetCode或者Lintcode上easy難度和medium難度即可。

社招對算法和數(shù)據(jù)結(jié)構(gòu)的要求是低于校招的,校招是因為學(xué)生沒有太多項目經(jīng)驗,只能考察你數(shù)據(jù)結(jié)構(gòu)算法,看你聰不聰明。

這是一張lintcode上對應(yīng)的數(shù)據(jù)結(jié)構(gòu)算法題的難度 vs 求職的一個對照圖,大家可以參考下。

還是那句話,搞定easy和medium難度的題目即可。曾經(jīng)網(wǎng)上流傳著一句話:如果你能手寫所有easy和medium的題目,3遍之內(nèi)通過,可以搞定硅谷大部分公司的技術(shù)面試,包括谷歌、Facebook等頂級公司的面試,這個在國內(nèi)也差不多的情況。

這篇文章從技術(shù)廣度、技術(shù)深度、基礎(chǔ)功底,三大塊出發(fā),給大家講了講每一塊會如何考察,以及大家從長期積累和短期突擊兩個方面來看分別應(yīng)該如何準(zhǔn)備。

不過,其實我個人一向是秉持著技術(shù)是長期積累的事兒,不是短期突擊的事兒的態(tài)度。

但是如果你真的就是沒長期積累,又要去面試,希望大家好好看下這篇文章,對你會被考察的能力有個思想準(zhǔn)備。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 工程師
    +關(guān)注

    關(guān)注

    59

    文章

    1571

    瀏覽量

    68574
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2973

    瀏覽量

    104913
收藏 人收藏

    評論

    相關(guān)推薦

    面試題】人工智能工程師高頻面試題匯總:機(jī)器學(xué)習(xí)深化篇(題目+答案)

    隨著人工智能技術(shù)的突飛猛進(jìn),AI工程師成為了眾多求職者夢寐以求的職業(yè)。想要拿下這份工作,面試的時候得展示出你不僅技術(shù)過硬,還得能解決問題。所以,提前準(zhǔn)備一些面試常問的問題,比如機(jī)器學(xué)習(xí)
    的頭像 發(fā)表于 12-16 13:42 ?2023次閱讀
    【<b class='flag-5'>面試</b>題】人工智能<b class='flag-5'>工程師</b>高頻<b class='flag-5'>面試</b>題匯總:機(jī)器學(xué)習(xí)深化篇(題目+答案)

    面試題】人工智能工程師高頻面試題匯總:Transformer篇(題目+答案)

    隨著人工智能技術(shù)的突飛猛進(jìn),AI工程師成為了眾多求職者夢寐以求的職業(yè)。想要拿下這份工作,面試的時候得展示出你不僅技術(shù)過硬,還得能解決問題。所以,提前準(zhǔn)備一些面試常問的問題,比如機(jī)器學(xué)習(xí)
    的頭像 發(fā)表于 12-13 15:06 ?567次閱讀
    【<b class='flag-5'>面試</b>題】人工智能<b class='flag-5'>工程師</b>高頻<b class='flag-5'>面試</b>題匯總:Transformer篇(題目+答案)

    人工智能工程師高頻面試題匯總——機(jī)器學(xué)習(xí)篇

    隨著人工智能技術(shù)的突飛猛進(jìn),AI工程師成為了眾多求職者夢寐以求的職業(yè)。想要拿下這份工作,面試的時候得展示出你不僅技術(shù)過硬,還得能解決問題。所以,提前準(zhǔn)備一些面試常問的問題,比如機(jī)器學(xué)習(xí)
    的頭像 發(fā)表于 12-04 17:00 ?935次閱讀
    人工智能<b class='flag-5'>工程師</b>高頻<b class='flag-5'>面試</b>題匯總——機(jī)器學(xué)習(xí)篇

    FPGA算法工程師、邏輯工程師、原型驗證工程師有什么區(qū)別?

    ,還需要與軟件工程師、硬件工程師緊密合作,對整個系統(tǒng)進(jìn)行集成和測試。 總的來說,F(xiàn)PGA 算法工程師著重于算法優(yōu)化,F(xiàn)PGA 邏輯工程師專注
    發(fā)表于 09-23 18:26

    正是拼的年紀(jì)|65歲電子工程師上班VLOG #65歲退休 #電子工程師 #搞笑 #上班vlog

    電子工程師
    安泰小課堂
    發(fā)布于 :2024年07月25日 11:31:02

    嵌入式軟件工程師和硬件工程師的區(qū)別?

    、調(diào)試和測試嵌入式軟件,以確保其功能正常,性能優(yōu)良。 * 文檔編寫:包括編寫用戶手冊、維護(hù)文檔等。 * 維護(hù)和更新:對現(xiàn)有的嵌入式軟件進(jìn)行維護(hù)和更新,以解決出現(xiàn)的問題和滿足新的需求。 嵌入式軟件工程師
    發(fā)表于 05-16 11:00

    大廠電子工程師常見面試題#電子工程師 #硬件工程師 #電路知識 #面試

    電子工程師電路
    安泰小課堂
    發(fā)布于 :2024年04月30日 17:33:15

    一個電源工程師的成長路徑

    即將走馬上任電源工程師這個崗位,請問各位大佬,這個崗位的職業(yè)路徑一般是怎樣的?
    發(fā)表于 04-08 14:19

    企業(yè)老工程師和高校老師有啥區(qū)別

    電子工程師硬件
    電子發(fā)燒友網(wǎng)官方
    發(fā)布于 :2024年02月28日 17:50:00