作為Java小白究竟該如何才能成長為一名年薪40W的大牛而不是一個優(yōu)秀的碼農(nóng)呢葛圃?下面的12個要點可以讓你在眾多Java開發(fā)人員中脫穎而出。
1.扎實的基礎(chǔ)和深刻理解 OO 原則
對于Java程序員而言憎妙,扎實的基礎(chǔ)是不可或缺的,基礎(chǔ)的牢固程度決定了Java這條路你能走多遠(yuǎn)曲楚,所以要掌握并精通Java基礎(chǔ)知識厘唾。在Java中,面向?qū)ο笏枷胧沁@門語言的核心淤堵,所以重點是要深刻理解Object Oriented Programming(面向?qū)ο缶幊蹋┻@一概念帆阳。但是只學(xué)習(xí)OO(面向?qū)ο螅┰瓌t的定義用處并不大腰吟,關(guān)鍵是要領(lǐng)悟面向?qū)ο笳Z言的思維方法,要學(xué)會如何應(yīng)用這些原則并運用面向?qū)ο蟮姆绞饺ピO(shè)計解決方案鹤树。
因此,我們應(yīng)該對對象建模逊朽、繼承罕伯、多態(tài)、封裝叽讳、設(shè)計模式追他、多線程及并發(fā)有一個全面的學(xué)習(xí)與掌握。
2.掌握核心API
如果你不知道語言結(jié)構(gòu)和核心API(目的是提供應(yīng)用程序與開發(fā)人員基于某軟件或硬件得以訪問一組例程的能力岛蚤,而又無需訪問源碼邑狸,或理解內(nèi)部工作機制的細(xì)節(jié)),那么即使你在理論知識上再怎么彪悍也是獨木難成林涤妒。
在Java中单雾,我們最好能對核心API,如I/O、異常硅堆、集合蜂奸、泛型、線程硬萍、JDBC等有很強的實戰(zhàn)經(jīng)驗扩所。要是涉及到Web應(yīng)用的開發(fā),無論你使用的是對Servlet有多大關(guān)系的框架朴乖,JSP都是必須的祖屏。
3. 保持編程習(xí)慣
保持編程習(xí)慣,即動手能力买羞。陸游曾說過袁勺,“紙上得來終覺淺,絕知此事要躬行”畜普。從理論上想出一個解決方案很簡單期丰,但是真到了實施的時候,才會意識到問題有多難實施中吃挑,在所有的bug和error都搞定之前钝荡,有很多的編譯工作要做。此時舶衬,你才會明白編碼過程中存在的語言限制埠通,從而設(shè)計出最好的實踐方案。因此逛犹,保持編程習(xí)慣端辱,也就是說要堅持不懈,要有韌性虽画,要勤于動手練習(xí)舞蔽。
4.閱讀開源框架的源代碼
好的開發(fā)人員總知道如何使用框架,當(dāng)然成長為這一步必須有前期的積累码撰,對框架的掌握熟練渗柿,這些也是遠(yuǎn)遠(yuǎn)不夠的。如果你想成為一個優(yōu)秀的開發(fā)人員灸拍,那么你需要研究各種成功和流行的框架源代碼(如:核心框架Spring做祝,MVC框架Spring MVC,ORM框架MyBatis鸡岗,Spring Boot等)混槐,去了解它的內(nèi)部工作機制和最佳實踐形式,這是一種高效的使用框架的方法轩性。
5.了解相關(guān)技術(shù)的發(fā)展趨勢
在開源環(huán)境中声登,軟件開發(fā)技術(shù)總是在不斷發(fā)展變化。現(xiàn)在所謂的新框架,可能很快就會過時悯嗓,甚至于淘汰件舵。所以要學(xué)會不斷進(jìn)步,持續(xù)給自己充電脯厨,除了掌握現(xiàn)有的框架并熟悉工作機制以外铅祸,多多關(guān)注新的框架的衍生,例如Spring MVC合武,Spring Boot临梗。在技術(shù)的迭代中,很有可能當(dāng)前框架上解決不了的問題稼跳,可能在新框架上就不再是問題盟庞。所以要時刻注意著新事物的誕生和舊事物的消亡。
6.了解不同的開發(fā)方法
熟悉不同的開發(fā)方法汤善,例如Agile什猖、SCRUM、XP红淡、Waterfall等等〔皇ǎ現(xiàn)在,選擇哪種開發(fā)方法是由客戶說了算的锉屈。有的客戶偏好Agile荤傲,而有的則更喜歡Waterfall模型。所以對各種方法都能有所涉獵絕對讓人刮目相看颈渊。
7.編寫程序文檔
許多程序員認(rèn)為代碼才是最關(guān)鍵的,但是在代碼旁邊添加恰當(dāng)合理的注釋會提供很大的便捷终佛,無論是對自己還是對后來人俊嗽。如果不添加注釋,很多自己寫過的代碼铃彰,過一段時間返回去看的時候绍豁,很可能自己都不知道是什么,或許有一點模糊的印象牙捉,但是要慶幸是你自己寫如果是別人寫的竹揍,又如何看得懂。這應(yīng)該是工作中的一個小習(xí)慣的養(yǎng)成邪铲,這樣不僅方便自己芬位,對公司也有益。
8.全局性思維
就算你是普通的Java工程師带到,如果你想要成長的話昧碉,就要把自己從代碼的世界,從螺絲刀的位置抽出來,置換到全局思考的位置被饿,鍛煉自身的全局性思維四康。
因為現(xiàn)代項目的開發(fā),很少說只用到一兩種技術(shù)的狭握,特別是移動互聯(lián)網(wǎng)大潮下闪金。隨便一個互聯(lián)網(wǎng)項目中用到的技術(shù),就會需要用到后端開發(fā)论颅、前端開發(fā)哎垦、界面設(shè)計、產(chǎn)品設(shè)計嗅辣、數(shù)據(jù)庫撼泛、各種移動客戶端等等,甚至一些比較前衛(wèi)的項目澡谭,可能會用到Single Page Application愿题、Web Socket、HTML5/CSS3這些技術(shù)蛙奖,還有像第三方開發(fā)像微信公眾號微博應(yīng)用等等潘酗。
所以說一個現(xiàn)代化的項目,是一個非常復(fù)雜的構(gòu)成雁仲,對于一個團(tuán)隊特別是互聯(lián)網(wǎng)企業(yè)來說仔夺,有一個全局性思維的人非常重要。
9.學(xué)習(xí)能力
學(xué)習(xí)能力的定義很廣泛攒砖,在此我們所說的學(xué)習(xí)能力就是把新知識融入已有的知識缸兔、從而改變已有知識結(jié)構(gòu)的能力。
作為一個Java工程師吹艇,學(xué)習(xí)能力是你的核心競爭力惰蜜。
如今互聯(lián)網(wǎng)技術(shù)發(fā)展太快,基本每3年就更新一次受神,要想不被淘汰抛猖,你應(yīng)該不斷地學(xué)習(xí)新知識,努力提升學(xué)習(xí)能力鼻听,保持技術(shù)水平能跟上技術(shù)革新的步伐财著。
10.關(guān)注主流技術(shù)論壇
我們并非踽踽獨行者。很多人都和我們一樣在研究著相同的技術(shù)撑碴。只是對某個框架概念做驗證是不難的撑教,但是當(dāng)你將這些概念應(yīng)用到實際的項目中時,那么各種各樣的問題灰羽,各種在官方文檔上找不到解決方法的難題就會接踵而來驮履,所以我們有必要訂閱相關(guān)的技術(shù)社區(qū)論壇來拓展知識的寬度以及深度鱼辙,以便我們在遇到技術(shù)難題時能很快獲得解決辦法。
下面我們推薦一些比較主流的技術(shù)社區(qū)玫镐。
國內(nèi)的推薦:
51CTO技術(shù)論壇 http://bbs.51cto.com/ 聚焦企業(yè)級IT技術(shù)及應(yīng)用倒戏。
博客園 https://www.cnblogs.com/ 有些優(yōu)秀的博客可以關(guān)注,質(zhì)量挺高的
CSDN論壇 http://bbs.csdn.net/home 擁有全球最大的中文IT技術(shù)社區(qū)恐似。
開源中國社區(qū) http://www.oschina.net/ 有開源軟件庫杜跷、代碼分享、資訊矫夷、討論區(qū)葛闷。
國外的推薦(英文要好喲~):
http://www.github.com 找開源項目必去的網(wǎng)站。
https://stackoverflow.com/ 這是一個與程序相關(guān)的IT技術(shù)問答網(wǎng)站双藕。
11.追博客并附上自己的評論
正如前一點所說的淑趾,并不是孤獨的技術(shù)者。成千上萬來自世界各地的技術(shù)愛好者將他們的技術(shù)見解發(fā)表在博客上忧陪。在博客上我們可以找到很多相同技術(shù)的不同觀點扣泊。有人會覺得這是一個強大的技術(shù)功能,而有的人可能會覺得這是一個愚蠢的框架嘶摊,仁者見仁智者見智延蟹。所以對于同一種技術(shù)你會在博客中聽到兩種不同的聲音∫抖眩看到好的博客可以寫點自己的看法回復(fù)在評論上阱飘。通過這樣的交流,不同意見的交換虱颗,不同想法的碰撞沥匈,一點點促使著你的進(jìn)步,逐步積累忘渔,要相信量變勢必會產(chǎn)生質(zhì)變的咐熙。
12.學(xué)會總結(jié)
學(xué)會總結(jié),總結(jié)我們學(xué)習(xí)到新的東西辨萍,新的做事方法、實踐形式和架構(gòu)理念返弹⌒庥瘢可以將這些想法記錄到文檔或者博客中,分享給大家义起,也可以以寫日記的方式記錄拉背。
因為你現(xiàn)在解決問題的方法可能正是世界上另一個角落另一個開發(fā)人員“尋尋覓覓上下求索”的難題,你的分享將完全不亞于一場久旱的甘霖默终。
總而言之椅棺,想向上發(fā)展成為一名優(yōu)秀的Java工程師犁罩,就不單單是敲代碼,需要學(xué)會思考很多方面的問題两疚,例如善于總結(jié)問題并提供解決方案床估,認(rèn)真與PM交流需求等等,這些都是一個優(yōu)秀的Java工程師所具備的條件诱渤。