1. 程式人生 > 實用技巧 >四年開發經驗的Java程式設計師去面試,進去5分鐘就出來了?究竟為啥?!

四年開發經驗的Java程式設計師去面試,進去5分鐘就出來了?究竟為啥?!

作為一名優秀的程式設計師,技術面試都是不可避免的一個環節,一般技術面試官都會通過自己的方式去考察程式設計師的技術功底與基礎理論知識。

大部分程式設計師認為面試的東西都是極為高大上的,這基本是所有企業面試的共性,考察的東西肯定是要比實際用到的東西更多一點,對於一家正常的企業來講這也是無可厚非的,leader都想花適當的錢招來一位很有技術潛力的程式設計師。

也有一部分朋友面試的經歷會比較慘烈,你們肯定會想:一個四年的Javaer,區區5分鐘都堅持不了?

下面我為大家講一下我的這位朋友是怎麼面試被diss的經過:下午兩點被HR通知去北京的某網際網路企業進行面試,一、二面過後的三分鐘我被帶到了技術經理的辦公室。

剛進去我就被看到的景象所嚇到了,技術經理頂著一個禿瓢,眼睛很有神的看著他。簡直是個人工小太陽… 面試官瞭解下基本情況後就開始以下問答!

面試官:看你專案都用的框架,熟悉Spring、mybatis等框架實現原理嗎?

他:做過一些專案熟練操作,原理了解的還行

面試官繼續問道:我看你上面有接觸過訊息中介軟體,負載均衡、RPC框架等技術嗎,MySQL分庫分表有做過嗎?

他:額,接觸的很少

面試官跟著問道:分散式架構設計,Redis分散式鎖呢?

他:完全不知道這個操作…

面試官:…

企業需要什麼樣的人

在此基礎上,網際網路行業針對 Java 開發的招聘需求,也是近年技術類崗位供需量最大,且變化最穩定的。企業對 Java 工程師發放的面邀數佔比也遠高於其他崗位,在100 offer平臺上,Java工程師的需求佔總需求的近60%,可以說,在當前各大公司“ 人員優化”的背景下,Java工程師,尤其是資深Java工程師依舊是硬通貨。

什麼樣的工程師才能被稱為資深,又如何成為資深Java工程師呢?

從工作時間來看,資深工程師一般具備3-5年工作經驗,企業對有 3-5 年經驗的 Java工程師,都會要求演算法基礎和程式設計能力紮實,有分散式、高併發經驗優先,可獨立負責一個模組的開發。在技術上一專多能,不僅限於寫好 Java,還要觸類旁通,對公司業務所需的新技術能快速學習運用,以一個資深Java開發招聘為例:

從上面的招聘資訊可以看到幾個資訊:

  1. **即使在這個行業冬天裡,企業也是願意為有能力的資深Java工程師付費的。**一個資深程式設計師達到50w+的待遇是沒問題的。在IT屆也流傳著一個觀點:1個優秀程式設計師的效率是普通程式設計師的10倍,但凡對於有點創新型的專案,企業寧願付2倍的薪水去選擇一個優秀程式設計師,也不願意花同樣的錢僱傭兩個平庸的程式設計師。
  2. 聚焦到具體的技能上,企業對資深程式設計師的期望是什麼呢?幾乎所有的招聘要求都會提到:熟悉分散式系統、有分散式系統開發經驗的優先。

分散式系統之所以門檻高,主要體現在三方面:

涉及到的知識面太廣,各個概念又比較相似,區分度不高,比如分散式儲存、分散式快取,RPC,微服務等等,導致學習時經常混淆,有一種雲裡霧裡的感覺;
對實踐的場景要求較高,一般小的專案不會用到這些技能,能接觸到分散式系統開發的程式設計師比例較少,即使知道些分散式相關的技術概念,也很難去落地,真正的形成技術心智,無法實踐的技術很快就會被拋之腦後;
異常情況巨多,相比單機系統,分散式在每個環節上都要考慮繁雜的異常情況。比如單機系統中不存在的網路異常問題,那麼在分散式系統中是家常便飯,任何一個有影響力的分散式框架都會花費大量的程式碼解決這些異常問題。

**如果工作1~2年,想往分散式方面去深造,最重要的還是要知識系統化。**通常程式設計師瞭解一個技術會有如下幾個渠道:

  1. 部落格論壇
  2. 官方文件
  3. 書籍
  4. 課程視訊

這幾種途徑在知識系統化方面是逐漸提高的。不管通過哪一種方式學習,都要不斷的更新自己的知識庫,將這些知識串起來,形成一個有機整體,在處理分散式問題時才能得心應手。

行業冬天,是淘汰低端程式設計師的好時機,也是自己努力的成為資深程式設計師的好時機,才能在面對高薪職位邀請時做到胸有成竹。