如何從零開始學(xué)習(xí)java web開發(fā)?
時間:2023-12-04 17:12:01 | 來源:網(wǎng)站運營
時間:2023-12-04 17:12:01 來源:網(wǎng)站運營
如何從零開始學(xué)習(xí)java web開發(fā)?:你已經(jīng)有一些安卓的背景了,基本上就不算是從零開始了,大概是從1開始,這樣不用去了解JAVA基礎(chǔ)語法。
首先已經(jīng)有無數(shù)人問我看哪些書了,我一直回答,我不太看書,因為書更新不快,而經(jīng)典的東西,我已經(jīng)很久不看了,但是還是貼給你一個書單,這是廣為贊同的書單。如果是只能買幾本書的話,那么應(yīng)該看這基本,而且我建議你看原文,不建議看翻譯稿,同時又鍛煉了英文何樂而不為。
- Head First Java, 2nd Edition.
- Thinking in Java (4th Edition)
- Think Java.
- Introduction to Java by Sedgewick.
- Java in a Nutshell.
- Core Java Volume I--Fundamentals (9th Edition) (Core Series): Cay S. Horstmann.
- Java How To Program (late objects) by Paul Deitel, Harvey Deitel.
入門的網(wǎng)站你可以看看這個journaldev,很系統(tǒng)化,分類做得比較好,提供了很多入門級別的教程還有免費的PDF可以下載。
好,你要的路線基本上是這樣的:
JAVA WEB,首先你要明白,不是做網(wǎng)站的,不是所有用瀏覽器的東西都是網(wǎng)站,有很多商用的系統(tǒng)也是broswer based,但是他們是系統(tǒng),不是網(wǎng)站,現(xiàn)在網(wǎng)站和系統(tǒng)的分區(qū)越來越模糊,但是你要有這個概念,所以JAVA WEB,多數(shù)情況下你不是去做網(wǎng)站的,做的是系統(tǒng),做系統(tǒng),自然有領(lǐng)域知識需要處理。這一塊你需要去了解。
純技術(shù)方面,入門的人以這幾個方面入門:
HTTP請求處理,這個基礎(chǔ)是純servlet開始,你先嘗試使用純JSP+servlet來接收請求,返回前臺,這個能讓你了解前后臺的處理。等你腦子里面全流程比較清楚了,能知道什么時候數(shù)據(jù)在什么地方了,下游是誰的時候,你轉(zhuǎn)去應(yīng)用框架(這個接下來再講)
前臺展現(xiàn)處理,這個就是所謂的前端,前端最基礎(chǔ)的就是JS+CSS控制展示,你無須花費太多時間在這個上面,自然有大量廉價的前端人員負責(zé)處理,你要了解的只是HTML展示數(shù)據(jù)的方法,這樣可以讓你清晰的知道需要如何從后臺返回數(shù)據(jù),不過很多人入行的時候,可能是從做頁面開始的,加強一下這一點對就業(yè)有好處
數(shù)據(jù)持久層處理,任何數(shù)據(jù)最后都是要持久化的,進數(shù)據(jù)庫,進文本,進隨便什么東西,你可以挑選最簡單最主流的,也就是關(guān)系型數(shù)據(jù)庫來入門,這是比較容易的,這里你會涉及到數(shù)據(jù)庫。數(shù)據(jù)庫是一個和JAVA無關(guān)的部分,有特別強化數(shù)據(jù)庫技能的人,數(shù)據(jù)庫的不同種類和不同語言一樣也有很多不同,MSSQL,oracle,DB2,現(xiàn)在流行的noSQL等等,你入手可以從mysql開始,這個比較容易,你現(xiàn)在的目標只是T-SQL的增刪改查而已,以后你可能會需要學(xué)設(shè)計,所以了解下范式也是不錯的概念。
容器,也就是服務(wù)器,JAVA容器很多種,各自配置都不一樣,當然有各種不同功能的分別,你要從Tomcat開始,這個最容易,了解一下哪些是靜態(tài)內(nèi)容,哪些是動態(tài)內(nèi)容,如何部署。
開發(fā)工具,你可能會用eclipse,他現(xiàn)在集成了相當多的功能
其他的方面,你可能會要補強兩點,一個是spring boot這個能節(jié)省你很多開發(fā)調(diào)試的時間,一個是docker技術(shù),這個技術(shù)能減少你部署的時間,當然這兩個不是必須的,只是nice2have
看上去字數(shù)多,我覺得你認認真真看,靜下心來看,大約100個有效小時左右就可以完全掌握這些事情,換算成calendar時間大約是1到2個月以內(nèi)。
再接下去,你要開始了解使用框架,目前來說,JAVA web你可以只懂spring,spring集團已經(jīng)能把幾乎所有的事情完成了。這里要做一個科普,我反復(fù)說了,spring不是一個東西,很多人腦子里提到spring,即是spring core而已,其實spring基本上可以支撐整個JAVAEE世界
這些基本上全掌握是不可能的,你只要了解什么功能要用到哪個,到時候再來看文檔就好了。
到這里,基本上你開發(fā)編碼沒問題了,所有JAVA coding的部分你已經(jīng)自如了。
接下來
JAVAEE的世界,要開始真正展露他猙獰的面容了:
打包編譯,你要了解MAVEN,GITHUB,JENKINS
數(shù)據(jù)庫調(diào)優(yōu),你要了解oracle AWR report(別提MSSQL 的trace log,誰提我X死誰)
infra,你要了解無限多種集群技術(shù)和轉(zhuǎn)發(fā)代理技術(shù)
JAVAEE世界最復(fù)雜的東西,全部不是JAVA相關(guān)的,桀桀桀桀桀桀桀。
再這之上,你基本上已經(jīng)算是架構(gòu)師入門了,之后你就能看到更恐怖的地獄了:
按需設(shè)計系統(tǒng)群
以及無限多個系統(tǒng)之間的集成
祝你在JAVA的世界里玩的高興,cheers!