Java工程師要求三年工作經驗,到底什麼才算工作經驗?

ronybo


一、工具

  • 你一定要熟練一款操作系統,一款 Java 開發工具,一款瀏覽器,Bug 分析工具,性能分析工具等。
  • 對於操作系統而言,我建議你用 Mac ,因為它是類 Unix 系統,方便你熟悉 Linux 命令,因為你所開發的 Java 項目,95% 以上都是跑在 Linux 上面,這樣面試的時候,也不至於面試官問你幾個常見的命令而不知所云。
  • 對於 Java 開發工具而言,我建議使用 IDEA,原因很簡單,想比於其它工具而言,它會更懂你。
  • 對於瀏覽器而言,毫無爭議的建議你用 Chrome。
  • 對於 bug 分析工具而言,太多了,有 Java 自帶的jdb、jinfo、jps、jstack、jmap、jstat、jconsole、jvisualvm 等,也有商用 JProfiler,還有動態跟蹤的btrace 等。
  • 對於性能分析工具,我建議你掌握兩款 ab 和 jmeter 足矣。

二、Java 基礎

  • 作為一名 Java 程序員,你一定要對 Java 語言掌握的非常熟悉,熟悉到常見類的用法,在什麼樣的環境應該用什麼樣的類,以及要明白為什麼要這麼用。
  • 比如 Java 的數據結構,字符串、數組、List、Set、Map等。你要明白這些結構的用法,那些適合用在併發的環境,那些又不適合,如果誤用了會產生什麼樣的後果。
  • 併發也你必須瞭解的,其實併發說白了,就是 Java 用來解決內存的可見性和程序執行的可見性。即 volatile 關鍵字、synchronize 關鍵字,以及在它們基礎上衍生出來的 AQS 和原子變量類,又在它們之上繼續產生的 Lock、同步器、阻塞隊列、Executor、併發容器,以及一些開源的調度框架 spring task、quartz。
  • JVM 常問,如果你經常寫業務,會很少接觸,但是面試官會常問,所以你需要掌握,比如它的內存模型,每個區該幹什麼?一個字節碼類的結構是怎麼樣的?有哪些常見的回收器,以及那些常見的垃圾收集算法?一個類的加載過程又是怎樣的?JVM做了那些編譯優化?有那些語法糖?等等
  • 最近,JDK 11 馬上又要發佈了,那麼 JDK8 你應該要了解一下吧,它的那些新特性你用過沒?

上面的這些就是所謂的基礎,你可以試著反問一下自己是不是應該掌握呢?

三、熟悉一個領域

  • 既然工作了三年,那麼大大小小的項目,相信你肯定做了不少,那麼你至少應該擅長一個領域。比如緩存、數據庫、分佈式框架、一些常見的組件。
  • 對於緩存而言,你要理解 memchache 和 redis 中的一個,比如什麼是一致性hash?redis 線上你遇到過的什麼問題,你又是怎麼解決的?
  • 對於數據庫而言,大多數互聯網公司都是用的 MySQL,因此,你需要對它特別熟悉,面試官的一個查詢需求,你能快速的轉換成 SQL 語句。什麼是最左原則?怎麼建立索引才能提高命中率?如果出現慢查詢又該怎麼分析問題?每種存儲引擎的數據結構又是怎麼樣的?什麼情況下會出現死鎖?事務又是怎麼回事?等等
  • 對於分佈式框架而言,有的用 dubbo,有的用 spring cloud,無論你用什麼,它們的最核心的東西基本一樣,都有註冊中心、服務端、消費端以及監控中心。因此,你要把它們理解清楚。
  • 一些常見的組件,比如 Mybatis 、Guava、Common包等等,你得知道它的常見用法,以及這些用法的背後實現原理。

總結一下,對於三年的 Java 程序員而言,一和二必須掌握,三選擇一個感興趣的方向深入研究。


Java架構師CAT


朋友你好,我是三線城市程序員一枚,也負責所在公司軟件開發人員招聘,我們使用主力後端語言就是Java。

我們這一般要求1年以上工作經驗,因為實際上大部分工作1年工作經驗就足夠了,如果要求3年的話估計是工作比較難一些的,要求非常熟練的程序員吧。

然後工作經驗的判斷非常簡單,一般會跟求職者聊做過的項目,一般來說1年工作經驗怎麼也得做上2-3個項目了,在聊項目的過程中會聊具體可能遇到的問題,然後怎麼解決問題的,這些如果你真實的有1年開發經驗,肯定是沒問題的。

一般會認為1年工作經驗的Java工程師(企業web應用方向),至少掌握Java基本語法、JDBC、JSP、Servlet、常用的集合類、接口和對象的區別聯繫、為何要使用接口、異常處理(Exception與RuntimeException),然後多少會聊些SSM或SSH框架的內容,最後因為是做企業web應用,也會要求瞭解一些html、css、js方面的知識。

如果你確實做過幾個實際項目(確實有客戶使用的),然後對上面提到的技術基本都瞭解,那個人認為就算工作不滿3年,應該算有工作經驗了。


三線城市程序員老陳


很高興回答這個問題,因為本身自己就是Java工程師,也替公司招過人。我來回答一下這個問題吧。

一、首先,學習階段咱們一般都不算,一般要求的也不是工作經驗,要求的是開發經驗。所以一般要求三年開發經驗。有的人畢業早,工作經驗可能七八年了,但是中途是轉行的,可能開發經驗0,這種肯定不在要求範圍內的;

二、培訓經驗,有的人出來以後,不是做得項目,做的是培訓行業,不是實際開發,這種會對開發經驗打折扣,有的公司算,有的公司不算;大部分公司不算,要的是實際開發工作經驗,也就是項目經驗,甚至有的要求大型項目經驗;

因為自己也招人,很多平臺顯示的年限是畢業開始工作算,如果轉行的建議在簡歷中體現自己具體開發經驗。免得浪費彼此時間,有時候忙,看年限夠,大致看下簡歷就邀請過來了,過來了發現不符合要求,就浪費了彼此的時間了,你也白跑一趟。希望我的回答對你有幫助!



雜談小吳


其實三年工作經驗只是檢驗你作為一個程序員能力是否達標的一個標準,並不是硬性的,,當然有些公司為了減少大量培訓出身的開發人員以及應屆生的投遞,所以設置了年限,同時也讓剔除了一部分對自己技術不自信的人的簡歷,增大了工作效率,但是這不是絕對的,如果你對任何技術都瞭如指掌,那麼就算你只有一年工作經驗,但是你的工作能力完全勝任,那麼你也可以私下和HR直接溝通,一般HR都會給出面試。再說你什麼都會,還怕找不到工作?對吧,自信點!其次就是工作經驗,什麼叫工作經驗?就是你在工作中積累的各種開發技巧以及你在工作中積累下來解決問題的辦法,還有就是你在工作中積累開發能力,當遇到有什麼不懂的問題能有自己方法去解決,這才叫工作經驗。這個能力並不是有年限的。所以工作經驗並不是硬性的,說白了就能力達到與否的問題。


萌新程序員


工作經驗顧名思義就是在一行業中工作所積累的經驗和各種能力

現在大多數開發招聘基本都是要有工作經驗 相對於市場來說初級的工程師已經飽和了 都是需要有經驗優秀的工程師

工作經驗只是一種門檻 有些人一兩年的工作經驗可以相當別人三四年的經驗 主要是在工作有沒有努力去學 積累經驗 如果你技術厲害 也有經驗 完全可以去的 自信點就好


TeHeart


本人覺得 需要理論和實踐結合的才是工作經驗


分享到:


相關文章: