更新時(shí)間:2019-09-01 09:00:00 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2528次
現(xiàn)在互聯(lián)網(wǎng)上資源豐富,Java學(xué)習(xí)并不難。貼個(gè)Java服務(wù)端入門(mén)和進(jìn)階指南,是給我們組新人入門(mén)用的,包括了學(xué)習(xí)目標(biāo)、需要掌握的技能和參考資料,并規(guī)劃了學(xué)習(xí)階段和時(shí)間,希望幫助到題主。
前言
歡迎加入我們。這是一份針對(duì)實(shí)習(xí)生/畢業(yè)生的服務(wù)端開(kāi)發(fā)入門(mén)與進(jìn)階指南。建議:
盡量用google查找技術(shù)資料。
有問(wèn)題在stackoverflow找找,大部分都已經(jīng)有人回答。
多看官方的技術(shù)文檔。
ibmdeveloperworkers的文章質(zhì)量整體上有保障。
平時(shí)花一些時(shí)間在github上閱讀優(yōu)秀項(xiàng)目源碼。
入門(mén)(1-2個(gè)月)
目標(biāo):參與簡(jiǎn)單的項(xiàng)目開(kāi)發(fā)。
技能:
掌握J(rèn)ava。經(jīng)典的《Java核心技術(shù):卷1基礎(chǔ)知識(shí)》(或者《Java編程思想》)必看,跳過(guò)其中的圖形和applet章節(jié)。習(xí)慣查閱JavaAPIDoc。為了保證代碼的質(zhì)量,《EffectiveJava》、《CleanCode》和《重構(gòu)》也需要至少通讀一遍。
熟悉Linux開(kāi)發(fā)環(huán)境和bashshell。Linux是我們的開(kāi)發(fā)和部署環(huán)境,你最好盡快熟練它。Linux的基本使用可以通過(guò)《鳥(niǎo)哥的Linux私房菜:基礎(chǔ)學(xué)習(xí)篇(第三版)》學(xué)習(xí),開(kāi)發(fā)bashshell腳本可以參考《LinuxShell腳本攻略》。
掌握開(kāi)發(fā)工具
熟練使用一種IDE。IntellijIDEA或者Eclipse都可以,推薦使用前者。至少熟悉常用的快捷鍵,會(huì)debug(包括遠(yuǎn)程debug)項(xiàng)目。
熟悉一種編輯器。比如Vim/Emacs/SublimeText,至少學(xué)會(huì)搜索/替換/代碼補(bǔ)全。
掌握J(rèn)DK以外的常用類庫(kù)和工具包。JDK原生API在很多場(chǎng)景下使用并不方便。你需要掌握社區(qū)貢獻(xiàn)的優(yōu)秀類庫(kù)和工具包,比如apachecommons、googleguava等,具體可以翻閱服務(wù)端技術(shù)選型的Utility篇。
掌握Web開(kāi)發(fā)框架。我們使用Spring(或Rose)+Ibatis(或Jade)開(kāi)發(fā)web服務(wù),你需要熟練掌握它們。
學(xué)習(xí)代碼規(guī)范。我們大致上遵循oracle的Java語(yǔ)言編碼規(guī)范,你可以先閱讀并熟悉它。CodeFormatting文件在git@xxx/coding-standard.git,在編寫(xiě)代碼之前,請(qǐng)把它導(dǎo)入到IDE中。另外,確認(rèn)IDE已經(jīng)安裝Findbugs和CheckStyle插件。
熟悉開(kāi)發(fā)流程。我們的開(kāi)發(fā)流程大致如下:功能開(kāi)發(fā)->單元測(cè)試->功能測(cè)試->CodeReview->集成測(cè)試->發(fā)布。確保你熟悉其中的每個(gè)環(huán)節(jié)。
其他。需要熟練使用版本控制工具Git(閱讀:《Git權(quán)威指南》),以及項(xiàng)目構(gòu)建工具M(jìn)aven(閱讀:《Maven實(shí)戰(zhàn)》)。另外,在這個(gè)階段可以嘗試TDD開(kāi)發(fā)。
進(jìn)階(2-6個(gè)月)
目標(biāo):獨(dú)立負(fù)責(zé)某個(gè)服務(wù)端項(xiàng)目。
技能:
掌握web開(kāi)發(fā)最佳實(shí)踐,掌握RestfulAPI設(shè)計(jì),理解Spring原理。推薦閱讀《Spring揭秘》。掌握項(xiàng)目分層、子模塊劃分。推薦閱讀:《J2EE核心模式》。
掌握web架構(gòu)設(shè)計(jì)。包括Http反向代理,數(shù)據(jù)緩存,負(fù)載均衡,水平擴(kuò)展和垂直擴(kuò)展。推薦閱讀:《分布式Java應(yīng)用:基礎(chǔ)與實(shí)踐》。
掌握關(guān)系型數(shù)據(jù)庫(kù)。包括設(shè)計(jì)MySQL表結(jié)構(gòu),根據(jù)業(yè)務(wù)特點(diǎn)分表分庫(kù),基于執(zhí)行計(jì)劃的SQL分析優(yōu)化,以及數(shù)據(jù)庫(kù)容量規(guī)劃。推薦閱讀:《MySQL必知必會(huì)》、《高性能MySQL》。
了解NoSQL。我們大規(guī)模使用Hadoop、HBase、Hive,同時(shí)部分項(xiàng)目使用Redis、Storm。你需要學(xué)會(huì)這些工具最基本的使用。
學(xué)習(xí)web安全知識(shí)。了解web前端安全問(wèn)題。設(shè)計(jì)安全web服務(wù),包括加解密、防偽造、防重放攻擊等。
掌握Http(推薦閱讀:《圖解Http》、《http權(quán)威指南》)、Thrift等協(xié)議。
掌握服務(wù)容量規(guī)劃,性能調(diào)優(yōu),可靠性保證,以及故障處理。學(xué)習(xí)容量規(guī)劃和性能調(diào)優(yōu)知識(shí),梳理業(yè)務(wù)監(jiān)控點(diǎn),熟練使用我們的監(jiān)控報(bào)警系統(tǒng)。推薦閱讀:《深入理解Java虛擬機(jī)》。
其他。設(shè)計(jì)模式:從項(xiàng)目中學(xué)習(xí),有時(shí)間可以看看《深入淺出設(shè)計(jì)模式》、《JDK里的設(shè)計(jì)模式》。學(xué)習(xí)JavaSocket編程與多線程知識(shí),可以看看《Java并發(fā)編程實(shí)戰(zhàn)》,并翻翻并發(fā)編程網(wǎng)的文章。
深入(6個(gè)月-)
目標(biāo):分布式系統(tǒng)和中間件開(kāi)發(fā)。
構(gòu)建知識(shí)體系:《大型網(wǎng)站系統(tǒng)與Java中間件實(shí)踐》、《大型網(wǎng)站技術(shù)架構(gòu):核心原理與案例分析》。
原理與設(shè)計(jì):《大規(guī)模存儲(chǔ)式系統(tǒng)》、《UNIX網(wǎng)絡(luò)編程卷1:套接字聯(lián)網(wǎng)API》、《HowTomcatWorks》。
學(xué)習(xí)開(kāi)源項(xiàng)目:ApacheThrift、Zipkin、Netty、Rose、Jade、淘寶RPC系統(tǒng)Dubbo等。分析項(xiàng)目中的設(shè)計(jì)思路。比如,同樣是RPC框架,F(xiàn)inagle和Dubbo有什么異同。
其他。根據(jù)參與的項(xiàng)目加深學(xué)習(xí)吧。比如,如果需要寫(xiě)DSL,可以讀一下《領(lǐng)域特定語(yǔ)言》,對(duì)Redis感興趣推薦讀一下:《Redis設(shè)計(jì)與實(shí)現(xiàn)》。有兩本書(shū),無(wú)論做什么項(xiàng)目,都推薦讀:《Unix編程藝術(shù)》、《UNIX環(huán)境高級(jí)編程(第3版)》。
以上就是對(duì)零基礎(chǔ)入門(mén)學(xué)習(xí)Java,一些書(shū)籍,學(xué)習(xí)方法,學(xué)習(xí)過(guò)程的一個(gè)簡(jiǎn)單的介紹,希望對(duì)你們會(huì)有所幫助,如果你現(xiàn)在也在學(xué)習(xí)java,在入門(mén)學(xué)習(xí)java的過(guò)程當(dāng)中有遇見(jiàn)任何行業(yè)或者說(shuō)技術(shù)方面的問(wèn)題,可以登錄動(dòng)力節(jié)點(diǎn)IT培訓(xùn)官網(wǎng)咨詢?cè)诰€客服老師。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743