筆者工作于三星,騰訊,華為等多家互聯網公司,后續有一系列文章推出,請大家點擊 關注 ,瀏覽我的歷史文章和后續文章先上個薪資發展圖,大家看看這個行業的薪資怎樣我們要學習Java的 4大原因
1.Java母儀天下的霸道
10年發展歷史,80%以上的高端企業級應用都使用JAVA平臺(電信、銀行等)。Amazon、Google、 eBay、淘寶、京東、阿里和其它的大型電子商務品牌都在使用Java來后臺處理。它受到了大約150個許可證頒發機構、200所大學和50萬開發者的擁戴;1000多個應用程序是用它編寫的...
這么說吧,如果Java在世界開發語言領域說自己排名第二的話,基本上沒人敢稱自己為第一。俗話說瘦死的駱駝比馬大,更何況Java仍處于巔峰時期,此刻加入Java陣營可讓你充分享受抱大腿的快感~
2.物聯網的“巔峰20年”然而嚴肅些,IT技術行業變化莫測,誰能保證此時如日中天的Java帝國明天就不會轟然倒塌。有這個擔心的小白,首先老司機對你眼光長遠表示認可。
然而你應該了解到未來的20年應是物聯網的世界,對于作為物聯網編程首選的Java,Eclipse Foundation執行董事 Mike Milinkovich表示:如果Oracle和合作伙伴在物聯網方面能夠給出一個基于Java的端到端的存儲解決方案,那么未來20年,Java的地位都不會被動搖。
隨著物聯網的火熱,相信對于Java的推崇將會上一個新的層次,正如Mike所說的,再過20年,Java依然制霸整個編程語言江湖。
3.Java的鋪墊性
另一方面來說,即使編程領域發生巨大的變化,Java依然不會被淘汰,這是由其語言自身特性決定的:Java是一門非常好的鋪墊語言,相對簡單友好,很多人學過Java之后,再學習其他語言感覺非常輕松。
Java的生態圈決定了它在未來10年,甚至20年都會是最熱門的語言之一。而且退一萬步講,就算Java瀕臨淘汰,你在精通Java的情況下,學習其他語言也是觸類旁通的。
4.嚴重的人才缺口
老司機明白小白的另外一個擔心,Java這么火,自然會有大批量人才涌入,競爭壓力豈不是會很大?
然而你要明白的是在國內,現階段對Java的人才培養仍然屬于欠完善階段。互聯網產業的快速發展與人才培養之間脫節嚴重,我國仍然還存在很大的Java人才缺口,缺口可達42.5萬,并且以每年20%左右的速度增長。
怎樣才能成為Java工程師?想要成為一名Java工程師,這是一條漫長的路程,你需要從零開始學習Java技術,這里給你分享一個Java系統學習路線:
入門篇
俗話說“師傅領進門,修行在個人”,帶你入門,只是程序之路的開始,基礎越扎實,后面學習起來相對容易,如果不扎實,很快就會遇到學習的瓶頸,無法前進。那么學習Java究竟應該如何入門呢?
(1) 首先要深刻理解面向對象的概念,這個非常重要,它貫穿整個Java開發。
但也并不是說必須完全理解概念才可以去學Java。而是先接觸Java的基礎知識,如類、屬性、方法等。然后在學習的過程中去理解面向對象的概念。
(2) 在大概理解面向對象的概念后,這時你應該更深入的學一些Java的語法和一些API的使用。
同時要養成自己良好的編碼習慣,如Java語言有對包名、類名、方法名等的命名規范。這個時候要嘗試按照規范寫代碼,同時改掉以前寫代碼時養成的不良習慣。
(3) 在熟悉了常用的API及語法后,要去學習I/O和流(Stream)以及多線程編程和網絡編程。
I/O和輸入輸出流,要熟練掌握。而在這個階段暫時不需要深入了解多線程編程和網絡編程。
(4) 在系列基礎完成之后就需要去接觸下數據庫和JDBC,對于數據庫暫時不需要深入了解,能夠創建表、查詢表數據即可。然后嘗試使用JDBC連接數據庫,并對數據庫中的數據做CURD操作。
(5) 在學習Java初期,我建議大家使用文本編輯器來寫代碼,一是有助于記憶Java中的一些關鍵字和常用類及方法,二是可以熟悉Java的常用命令。在使用了一段時間的文本編輯器后就可以使用IDE來開發了,使用IDE將使你寫代碼寫得更快,也不容易出錯。
基礎是很重要的,雖然簡單,但不容忽視。
基礎階段只推薦一本《Thinking in Java》,
如果看到這里,恭喜你,你已經打敗了50%的人。接下來我們將講述進階需要學習的知識有哪些。
中級篇
入門后就可以選擇主攻方向了,有三個進階方向可以選擇,分別是Web開發(以下簡稱Web)、Android移動端開發(以下簡稱Android)和服務器端開發。
這三個方向都需要有扎實的Java基礎。
(1)Web開發方向,主要有B/S應用開發、微信開發、支付寶服務號等。
(2)Android開發,主攻移動端應用的開發。移動端包括搭載Android系統的手機、平板、電視盒子等設備。
(3)服務器端開發,主要是通訊服務器的開發,如游戲服務器、騰訊的QQ服務器等。Web和服務器端開發,加起來也叫做企業級開發,即JavaEE開發。
入門以后,就可以在服務器端開發方向發展,但是還是建議學習下Java中級的內容,這些內容也有助于你今后在通訊開發的路上走得相對輕松一些。
接下來我們主要討論Web方向,所以這里我們只討論Web方向。
在中級階段你接觸的知識面將更廣,下面是要繼續掌握的知識。
(1) 先需要學習HTML和CSS,然后再學習JS以及jQuery。
(2) 在有一定基礎之后就可以開始學習JSP和Servlet了,重點學習下JSP的內置對象及EL表達式,并試著去做一些頁面。
(3) 然后學習下Ajax,要能夠熟練的使用JSON和XML來做數據交互。
以上內容學習完之后Java的基礎部分就算是基本掌握了,下面就該學習一些框架了。
(1) 建議先從Spring學起,Spring將成為你今后開發項目的核心框架。
Spring也是現在項目中最常用的框架。可以深入的學習,試著去理解Spring的一些實現原理,這將有助于你更好的使用Spring。
(2) 學完Spring之后可以學習下ORM框架,比如hibernate和MyBatis,這些相對于Spring來說要簡單的多。主要學習與Spring的整合和Spring中的事務管理。一定要深入的了解數據庫事務,這將對你今后的項目開發非常有幫助。
(3) 最后我們來說控制層的學習,這里我建議大家重點學習SpringMVC。因為SpringMVC是目前使用最為廣泛的控制層,而且簡單易學,已經有了要替代Struts的趨勢了。但是Struts還是要學習下,畢竟還有一些公司在用,這將為你找工作增加一點籌碼。
在學習這些內容的過程中一定要學習下代碼管理工具SVN和Git,目前SVN在企業中用的較多,而開源社區一般都是用的Git。
有了JSP基礎和掌握了框架的使用后就可以出去找工作了,在工作的實踐過程中你將對這些知識運用,從而掌握的更加牢固。
也可能在工作過程中會遇到你沒有學過的技術,不要怕,有了之前的基礎你將很快掌握這些新的技術,加入工作的第一年將是你進步最快的一年。
而加入工作之后你可能也不會有太多系統的時間來學習,這時候一定要約束好自己。不能忘記學習,學習是最好的進步方式。
技術性的文章比較枯燥,如果你看到這里了恭喜你,你已經打敗了70%的人。
接下來我們來講述高級篇的學習
高級篇
當我們參加了工作之后,會逐漸接觸更多的技術。如果有機會的話,就多學習些技術,不求精通,但求會用,并且知道這項技術能夠解決什么問題。
在項目中參與設計文檔的編寫,能夠為自己的項目選擇合適的框架,并且能用自己學到的技術去解決項目中遇到的難題。這時候根據項目和公司的差異多應用的技術也不盡相同,但是日志框架、項目構建、單元測試、緩存、集群、負責均衡、SOAP等是一定要掌握的。這些是在大型項目中比較常用的技術。然后可以根據自己的興趣及業余時間去學習自己感興趣的技術。
架構師之路
要成為一名優秀的架構師首先一定是一名卓越的程序員,架構設計不僅僅是理論,它是在實踐中產生的經驗和結果。
架構師要有靈敏的嗅覺,能夠看清未來技術的發展方向,應當避免在項目中使用已過時的技術或沒有社區支持的技術。
作為一名架構師要掌握以下技能:
SOA:在微服務橫行的年代,這項本領是必不可少的。
設計模式:這將有助于你設計出更加優雅的程序。
架構模式:如果說設計模式是讓我們更優雅的編碼,架構模式就是讓我們更優雅的組織模塊。
分布式架構:追求高并發、可擴展、高可用的軟件平臺;
數據與傳輸安全:互聯網是邪惡的,請保護好你的數據和網絡平臺;
至此大概就是程序員的所要走的整條路,如果你是想成為優秀程序員的人,看到了這里,那你已經打敗了99%的人,剩下的就是實踐,馬上開始去找尋學習的資料一步一步開始從小白到架構的成長之路。
推薦書目
作為補充,我們給出各個階段那些經典的著作。
基礎階段:《Thinking in Java》,別說看不懂,難。如果這都看不懂,那就根本還沒算入行啊。
Java升級:《Effective Java》、《深入理解Java 虛擬機》、《Java性能優化權威指南》
WEB階段:《http權威指南》、《Java Web 高級編程》
開發框架:《Spring揭秘》、其余框架的知識,直接看在線文檔或者API
數據庫:《MySQL 必知必會》
架構設計:《企業應用架構模式 》和《重構 改善既有代碼的設計重構》、《領域驅動設計:軟件核心復雜性應對之道》、
方法論:《單元測試之道》、《敏捷開發-敏捷軟件開發:原則、模式與實踐》、《測試驅動開發的藝術》、《編程珠璣》
設計模式:《設計模式:可復用面向對象軟件的基礎》
WEB安全:《白帽子講Web安全》
WEB架構:《大型網站技術架構:核心原理與案例分析》
以上部分是我的個人見解,歡迎大家留言,請點個贊哦