1. 程式人生 > >一名合格Java 開發工程師的成長路線!

一名合格Java 開發工程師的成長路線!

Java 語言是目前最流行、應用範圍最廣的服務端程式語言,從各大公司的招聘資訊來看,Java 開發的人才需求量也是最大的。

以下的這篇文章,來自網易資深開發工程師/網易雲資料庫產品負責人郭憶。他從事Java平臺開發8年,擁有豐富的Java 服務端開發經驗。文中,他將以自己的經驗來談談一名合格的Java 開發工程師的成長路線

作為剛剛進入Java領域的新同學,無論是高校的畢業大學生,還是有志轉行的在職人員,都面臨著諸多如下的困惑。

| 如何學習Java語言?

在Java學習過程中需要掌握哪些技能?

各大公司對Java開發的要求是什麼?

Java 學習過程中有哪些注意事項?

Java 工程師的職業發展規劃是什麼?

我把Java 的學習過程分為5個階段:理論階段開發階段進階階段實戰階段以及深造階段

理論階段

在具體談論Java知識點之前,我想先跟同學們聊聊Java 語言自身的一些特點、生態系統以及適用的場景,這有助於我們更好的學習語言本身。

首先,我們從Java 語言自身的實現機制來聊聊Java 語言的一些特性:

面向物件:Java 是一門面向物件的程式語言,封裝、繼承、多型這些特性使得Java 語言適用於大型軟體系統的研發。

跨平臺:這是Java 最重要的特性之一,由於有虛擬機器的支援,Java 程式碼可以無縫執行在任何作業系統中,無需重新編譯;

透明記憶體管理:做C/C++的同學最頭疼的事情就是記憶體洩漏問題,在Java中,由於虛擬機器會自動回收不再使用的記憶體空間,所以程式設計師無需顯式回收記憶體。

足夠的效能:效能一直是Java為人詬病的問題之一,但是在java6 之後,隨著JVM虛擬機器編譯優化技術的不斷進步,垃圾回收演算法的不斷優化,Java的效能已經能夠勝任絕大多數系統的要求,甚至在效能要求極為苛刻的底層系統中,我們也能看到Java的身影。

此外,Java 還有完善的生態系統:

Java 擁有數量眾多的第三方類庫,作為一個開發者,你會發現作為一名Java程式設計師是一件很幸福的事情,因為很多事情別人都已經幫你做好了,你需要做的只是把別人造好的輪子組裝起來,實現你的業務需求。

Java 擁有非常完善的開發環境Eclipse,集成了非常多實用的功能,且操作介面非常友好。

Java 有非常多優秀的框架

,基於這些框架,可以快速開發出一個可擴充套件的業務系統。

Java 擁有非常活躍的社群和論壇,當你遇到問題的時候,你可以快速的得到其他人的幫助。

介紹了Java 的這些優勢,Java 到底適用在哪些系統研發中?

——Web系統

——移動應用服務端以及安卓客戶端開發

——中介軟體系統

——後端系統:例如大資料相關係統

在理論學習階段,同學們首先應該從Java的基礎語法開始學習,包括變數宣告、條件判斷、迴圈、函式編寫。此外,還應該瞭解Web相關的基礎知識,例如http 協議、Web應用的B\S架構。資料庫是Java 應用系統不可或缺的持久化元件,在理論學習階段,需要學習SQL語法相關知識。這裡有兩點小建議:

  1. 可以通過完成一些演算法題目,來鞏固Java語法學習的成果;

  2. 好記性不如爛筆頭:多做筆記,勤練習;

開發階段

經過理論階段的學習,你應該已經掌握了Java 基礎知識。進入開發階段,則需要掌握在日常實際Java專案開發過程中需要用到的一些技能。

首先工欲善其事,必先利其器,所以首先要熟練掌握Java的常用開發工具和開發環境。

Maven是目前大型公司常用的Java 夾包管理軟體,可以幫助開發者解決Java 夾包之間的依賴和版本管理。

Git作為程式碼倉庫管理軟體,可以幫助我們實現程式碼版本、分支管理。

Ecplise是目前Java使用最廣泛的開發環境,它集成了Maven、Git這些常用的外掛。

其次,知識學習方面,需要掌握面向物件的相關知識,例如類和物件的定義方法、如何實現物件的繼承、如何基於介面實現多型等;Java 容器在開發過程中也使用非常頻繁,包括List、Set、Map等,最好能夠了解每種容器的實現機制以及適用場景。Web 方面,同學們需要掌握Servlet程式設計,包括Servlt config、context編寫;資料庫方面,同學們需要掌握JDBC,能夠基於JDBC實現資料庫的增、刪、改、查。

最後,聊聊這個階段的學習容易出現的誤區:

l  不要嘗試一次性通過編譯,遇到編譯錯誤,很多同學會很焦躁,實際上錯誤之間有依賴,解決一個錯誤,可能後面的錯誤就會自動解除,千萬不要被大量的錯誤嚇倒。

l  不要copy程式碼,我覺得程式設計師一個非常不好的習慣就是拷貝程式碼,尤其在入門階段,多嘗試親手敲程式碼。

l  注意程式設計規範:同學們要從程式碼學習開始,就注意程式設計規範,例如變數名定義規則、函式名定義規則,養成良好的程式設計習慣。

進階階段

掌握了基本的開發技能,進階階段則主要鍛鍊開發者在實際典型業務場景下,提高開發效率,解決實際問題的能力。

Web基礎方面,要掌握Cookies和Session、轉發和重定向、過濾器、監聽器的相關知識;

資料庫方面,要學習資料庫連線池的使用方法,為什麼要使用資料庫連線池以及資料庫死鎖、資料庫SQL 注入相關概念。

Java 語言方面,要開始學習Java 應用框架,例如mybatis、Spting,這些框架可以幫助我們更加高效的構建Java 工程。在框架學習過程中,我認為不僅要學習如何基於框架開發系統,更要注重框架自身設計思想,這對於開發者提升自己的程式碼架構能力是非常有幫助的。

在進階階段,要注意以下內容:

 以問題為導向: Java 知識繁雜,以問題為導向,作為切入點,能夠提高Java 學習的效率;

l  特定場景下的需求解決:每一種架構都有典型的應用場景,要結合實際應用場景去分析和解決問題;

 利用google:作為一名程式設計師,遇到未知問題是很正常的事情,關鍵利用好google,社群、論壇;

l  效能的持續改進和優化:在進階階段,同學們應該要具備基本的效能調優能力,關注效能管理;

實戰階段

計算機程式設計是一個非常注重實戰的領域,在Java學習過程中,必須要有一個實戰項目,來幫助大家鞏固之前的學習成果,這對於後續快速上手公司的實際業務有非常大的幫助。

你可以藉助一些雲平臺,來熟悉環境搭建部署的過程。建議大家學習Docker的相關技術,微服務是目前系統設計中比較流行的架構,藉助Docker快速部署、服務發現、服務編排的特性,可以幫助我們實現系統的快速釋出和彈性擴充套件。

在實戰階段,應該重點關注以下幾點:

l  文件編寫:編寫詳細設計文件也是程式設計師必須具備的一項技能,要學習設計文件的編寫格式,編寫規範。

l  設計模式: 同學們在實戰階段,程式碼編寫時要注意設計模式,儘可能提高程式碼的可讀性、可重複使用性。

l  邊界條件的校驗和處理:在實際開發過程中,系統出現最多的問題都集中在邊界條件的校驗和處理上,同學們在實際開發過程中,應該要有意識的考慮這些問題。

深造階段


看完了這篇分享,不知道你對自己的Java學習是不是有了更多的感悟~ 

相關推薦

合格Java 開發工程師成長路線!

Java 語言是目前最流行、應用範圍最廣的服務端程式語言,從各大公司的招聘資訊來看,Java 開發的人才需求量也是最大的。以下的這篇文章,來自網易資深開發工程師/網易雲資料庫產品負責人郭憶。他從事Java平臺開發8年,擁有豐富的Java 服務端開發經驗。文中,他將以自己的經驗

前端修煉の道 | 如何成為合格前端開發工程師

上期回顧 在上一節我們已瞭解前端開發是做什麼的,現在的問題是,如何才能成為一名合格的前端開發工程師? 相信這個問題是大家比較關心的。 前端開發工程師 如果大家在一些搜尋引擎上搜索“前端開發工程師”需要具備什麼技能?可以看到搜尋結果中會出現許多諸如要掌握: “HTML” “CSS

個人總結的箇中高階Java開發工程師或架構師需要掌握的一些技能

近三年,其實都是在做一個專案,專案是一個大型的多節點部署的專案,做了好幾個版本,中間用到了很多技術和框架, 也用了一些管理工具和敏捷實踐。我這裡不是來說專案的,因為最近看了一些招聘資訊,結合專案中用到的一些知識和 管理措施,作為一個程式設計師,需要去實時評估下自己當前的能力是否能跟上時代的步

如何成為全棧開發工程師

我曾經有一個夢想是要成為一名全棧開發工程師,因為我認為一個程式設計師無所不精無所不能是一件很牛逼的事情。 同時當一個程式設計師無所不精的時候,不僅僅自己可以開一家公司自己接活幹,同時即便不辦一家公司,在一家公司好歹可以吃香的喝辣的。 抱著這個理想目標,於是在那段時間我時而學Docker,時而學Nginx,

如何成為大資料開發工程師

1.關於我 本人現在北京某大型網際網路公司高階資料開發工程師一枚,三年工作經驗,一年多面試官經驗。 2.為啥要寫這篇文章? 面試中經常會遇到這種情況:之前專心寫web的Java碼農突然轉型想做大資料了,然後寫幾個大資料的專案經驗跑來面試,結果就

如何通過自學成為 Android 應用開發工程師

其實成為初級android工程師,並不困難,但是目前初級android工程師已趨於飽和,這與前兩年客戶端培訓火爆密不可分,所以呢,這可能會讓一些正在走這條路或者想要走這條路的人感到困難。但是想要脫穎而出也不是很難的。今年參加校招,也拿到bat之一等一線網際網路公司offer. 想說說我的看法,雖然客戶端現在的

如何成為合格的演算法工程師?我們做了次技能拆分…

文 / 張相於 成為一名合格的開發工程師不是一件簡單的事情,需要掌握從開發到除錯到優化等一系列能力,這些能力中的每一項掌握起來都需要足夠的努力和經驗。而要成為一名合格的機器學習演算法工程師(以下簡稱演算法工程師)更是難上加難,因為在掌握工程師的通用技能以外,還需要

後端java開發工程師學習路線

程式設計師之路 第一階段: Java 基礎,包括 Java 語法,面向物件特徵,常見API,集合框架。(基礎)第二階段:Java A

如何判斷你是合格的高級iOS開發工程師

如何 proc 繪制 優化 三方 部分 實的 如果 view 前言 隨著移動互聯網的高速發展泄洪而來,有意學習移動開發的人越來越多了,競爭也是越來越大,需要學習的東西很多。如何才能在激烈的移動開發者競爭中一枝獨秀,成為一名真正合格的高級iOS開發工程師? 話不多說直接上幹貨

合格java工程師需要具備哪些技術?

一名合格的java工程師需要具備哪些技術?首先java基本功需要具備,所謂的基本功,不是簡單的能寫出程式碼,除了能寫出來之外還要在程式碼質量上面需要一定的體現,比如對一些簡單的多執行緒,以及常見的java框架有一定的修改,或者定製功能。除此之外還需要具備哪些技術? 1、基礎 比如對集合

我眼中的如何成為合格的PHP高階開發工程師

轉眼間搞PHP已超過10年準確的說12年,混在帝都,也經歷過大公司小公司,有個同行朋友問我,我就思考下,如何成為一名合格的PHP高階開發 所有的所有僅限綜合知識,因為PHP其實內容也很多,有的人專門研究框架,你讓一個只使用框架的人去和專門研究的PK 沒有可比性。 那麼咱們開始,專門從技術角度來闡述此問題。 技

能成為合格Java架構師

原文地址:http://www.dalbll.com/Group/Topic/ArchitecturedDesign/4943  俗話說“沒有見過好程式,怎麼可能寫出好程式”,同樣,也可以說“不瞭解架構師的能力、工作,怎麼可能成為架構師”,如果沒有接觸過頂級架構師,那你怎麼知道自己要往哪個方向努力

詳詳細細引領你成功成為合格的【軟體測試工程師

一、軟體的廣泛應用隨著IT行業的迅猛發展,整個社會對軟體的需求越來越大,對軟體的依賴性也越來越大。軟體幾乎關係到我們生活中的點點滴滴。每天早上醒來,手機設定好的鬧鐘準確的把我們從睡夢中叫醒,醒來之後,你會開啟手機中的音樂,播放幾首輕鬆愉快的音樂,感覺到新的一天是多麼的美好。在悅耳的音樂中,洗簌之後,出門坐公交

如何成長合格的架構師?

1架構師平時都做些什麼事? 主要當然是跟架構相關的事情吧(好像是廢話哎),具體一點就是架構設計,講解推廣,然後再做一些程式碼方面的工作。說起來,講解推廣可能是很多人不太重視的,但其實它的比重還是比較大的,基本能到三成。 而這三者的比例,5:3:2也是很經常的。也就是說,團隊到達一定的規模,架構師可能

如何快速成為合格的Linux運維工程師

如今的網際網路,絕大多數的網站、服務、遊戲均是跑在Linux上面的,雖說Linux發行版眾多,只要玩熟了一種發行版,瞭解了Linux精髓、基本架構、設計原理,其他都是觸類旁通的,千萬不要在選擇哪一發行版而浪費很多時間,不值當的,這就如同我是上清華好,還是上北大好呢?統稱為[清北謎題]了,這裡個人建

合格的大資料工程師 必須要具備哪些技術

  一名合格的大資料工程師,必須要具備哪些技術?在中國,大資料也正迅速成為行業和市場的熱點。專注與亞太及中國市場的市場調查機構泛亞諮詢釋出的調研資料顯示,目前出現在各類招聘平臺上與資料分析相關的招聘需求比去年同期相比,增長率高達67%;大資料相關高階職位的薪酬與其他同類技術職位相比平均高出43%以上

成為合格軟體工程師的7點建議

在過去5年多的時間裡,我在科技初創公司中任職過不同崗位,也在學術界短暫工作過。在這些不同角色中我學到了一個觀點。我慢慢意識到一些原以為無關緊要的事情的重要性。這篇文章是根據我的個人經驗,針對剛入行的年輕工程師的一些建議。 第一印象很重要 一份新工作要有一

【本人禿頂程式設計師】作為合格JAVA程式設計師需要點亮那些技能樹

←←←←←←←←←←←← 快,點關注! 這是從450家企業的招聘資訊中統計而來,相對來說還是比較真實的,雖然有些公司的招聘要求萬年不變,但還是可以大致反應企業的招聘要求的。 儘管Struts2漏洞頻出,但是由於政府、銀行以及傳統企業遺留專案大部分還是採用Struts2的,所以還

成為高階java工程師需要讀那些書

“學習的最好途徑就是看書“,這是我自己學習並且小有了一定的積累之後的第一體會。個人認為看書有兩點好處: 1.能出版出來的書一定是經過反覆的思考、雕琢和稽核的,因此從專業性的角度來說,一本好書的價值遠超其他資料 2.對著書上的程式碼自己敲的時候方便 “看完書之後再次

Java開發工程師到五年面試題總結

1.JAVA的垮平臺原理 JVM也是一個軟體,不同的平臺有不同的版本。我們編寫的Java原始碼,編譯後會生成一種 .class 檔案,稱為位元組碼檔案。Java虛擬機器就是負責將位元組碼檔案翻譯成特定平臺下的機器碼然後執行。也就是說,只要在不同平臺上安裝對應的JVM,就可以