java可以自學(xué)嘛,自己做網(wǎng)頁(yè)難不難呀?
時(shí)間:2024-01-13 18:00:02 | 來(lái)源:網(wǎng)站運(yùn)營(yíng)
時(shí)間:2024-01-13 18:00:02 來(lái)源:網(wǎng)站運(yùn)營(yíng)
java可以自學(xué)嘛,自己做網(wǎng)頁(yè)難不難呀?:
一、為什么我要寫下這篇文章
1.1直接緣由:
- 在今天(2018年11月4日)有個(gè)同學(xué)給我發(fā)微信找我
- 同學(xué):能不能給他一個(gè)網(wǎng)頁(yè)他改一下,他想?yún)⒖家幌?,然后用于做畢業(yè)設(shè)計(jì)。
- 3y:可以啊,你的題目是什么???想用Java來(lái)寫嗎?
- 同學(xué):對(duì)啊,我現(xiàn)在在學(xué)Java呢(ps:之前跟該同學(xué)聊天的時(shí)候"我看著這些代碼就頭暈,我對(duì)電腦真不感興趣"....真香!)
- 隨后這個(gè)同學(xué)發(fā)了一個(gè)小視頻過(guò)來(lái),說(shuō)自己在學(xué)Java。我看了一下:大概是在練習(xí)
&^|
這些操作符。
最后,我告訴這同學(xué):"你去找視頻看吧,你現(xiàn)在學(xué)這些對(duì)你的畢業(yè)設(shè)計(jì)沒(méi)有什么幫助的啊"。然后讓他去B站找視頻看了
ps:我并不是說(shuō)學(xué)&^|這些運(yùn)算符是沒(méi)用的,但如果單純是想自己用Java來(lái)寫畢業(yè)設(shè)計(jì)的話,這些知識(shí)點(diǎn)應(yīng)該是用不上的。
1.2間接緣由:
自身經(jīng)歷:我學(xué)習(xí)Java也是自學(xué)的,在大學(xué)期間也是一直一個(gè)人在學(xué)(身邊的同學(xué)可能家里有礦)。即便我在學(xué)習(xí)的時(shí)候也去
搜了不少的意見(jiàn),例如在本站上找,,<給剛開(kāi)始學(xué)Java的年輕人一些建議>等等類似的話題,
但是現(xiàn)在回過(guò)頭來(lái)看,我還是走了不少的"彎路"了。
比如說(shuō),當(dāng)時(shí)我花了蠻多的精力去學(xué)JSP,最后整理成博客發(fā)到網(wǎng)上去。網(wǎng)友的評(píng)論:
- “不玩 JSP 十幾年了“。
- “jsp不是老掉牙的技術(shù)嗎”。
- “看這個(gè)有一種穿越的感覺(jué)……碼了6w多字,看著就心疼……”。
- “這十年前的技術(shù)都被挖出來(lái)了?”
- “剛畢業(yè)時(shí)寫過(guò)好幾個(gè)自定義標(biāo)簽,那時(shí)候感覺(jué)好有成就感,但是現(xiàn)在,用于view的jsp,似乎有點(diǎn)過(guò)時(shí)了,view一般用【模板】或者【完全靜態(tài) + ajax + json】了”
嗯...那篇文章我當(dāng)時(shí)在2018.02.07發(fā)布。我學(xué)JSP的時(shí)候是在2017年初吧,其實(shí)在2017年JSP也已經(jīng)是落后的技術(shù)了,但我還是花了不少的時(shí)間去學(xué)習(xí)JSP的各種用法(自定義標(biāo)簽,JSTL,EL表達(dá)式等等)。
網(wǎng)友們其實(shí)說(shuō)得都沒(méi)有毛病,對(duì)我來(lái)說(shuō):在2017年花了
不少時(shí)間去學(xué)如何使用JSP(過(guò)期的技術(shù)),這就是我認(rèn)為的
"彎路"。
- ps:在2018年花點(diǎn)時(shí)間了解JSP是沒(méi)毛病的,但深入學(xué)習(xí)的話是沒(méi)必要的。
"彎路"說(shuō)明:如果你有充裕的時(shí)間,怎么學(xué)都不是事,畢竟你是真真正正地在學(xué)編程。只要在學(xué)編程,就不是彎路,最怕你不學(xué)。
以這篇文章回復(fù)我部分的讀者:寫博客以來(lái),還是有部分讀者是零基礎(chǔ)學(xué)Java的,有轉(zhuǎn)行的、也有年輕的師弟師妹的。一般他們也問(wèn)我應(yīng)該怎么學(xué)Java比較好,學(xué)習(xí)Java的路線應(yīng)該是怎么樣的。
emmmm,我一般都是
比較簡(jiǎn)單的回復(fù)一下:讓他們多做筆記啊,接下來(lái)應(yīng)該花時(shí)間學(xué)什么,不學(xué)什么...就完了..
所以,寫完這篇文章,遇到再問(wèn)我如何學(xué)習(xí)Java的時(shí)候,我直接發(fā)個(gè)鏈接就完事了(懶人必備)..
1.3目的
如果你:- 想要用Java在短短的幾個(gè)月時(shí)間內(nèi)寫出自己的畢業(yè)設(shè)計(jì)。
- 想要用Java體驗(yàn)一下如何從零搭建一個(gè)屬于自己的網(wǎng)站。
那么可以看一下我下面所寫的
不成熟的建議。
二、如何快速學(xué)Java
這里我以Java EE(Jakarta EE)/Java Web的經(jīng)驗(yàn)來(lái)說(shuō)哦。(都把你們看做是零基礎(chǔ)入門的了)
學(xué)習(xí)Java EE(Jakarta EE)總體來(lái)說(shuō)會(huì)有以下三大模塊:
- Java
- 數(shù)據(jù)庫(kù)
- Web前端
在我看來(lái),無(wú)論學(xué)習(xí)什么技術(shù)都好,在
學(xué)習(xí)該項(xiàng)技術(shù)的細(xì)節(jié)之前都得知道:
這項(xiàng)技術(shù)是什么,為什么我要學(xué)習(xí)這項(xiàng)技術(shù),學(xué)習(xí)了這項(xiàng)技術(shù)有什么好處。
- 看似好像我在說(shuō)多余的話,但如果你在學(xué)習(xí)某項(xiàng)技術(shù)的時(shí)候無(wú)法回答上面的三個(gè)問(wèn)題。再過(guò)幾天,你很大程度上會(huì)忘記這項(xiàng)你所“學(xué)過(guò)”的技術(shù)。
- 比如說(shuō),如何你連“為什么要用多線程”你都無(wú)法用通俗的話來(lái)解釋清楚。即便你當(dāng)時(shí)學(xué)習(xí)的時(shí)候知道多線程可以用xxx方式來(lái)創(chuàng)建,多線程的xxx的api。那再過(guò)兩個(gè)月,人家問(wèn)你”Java多線程有什么用???”。你想想你還能答什么,我認(rèn)為你是記不住“多線程可以用xxx方式來(lái)創(chuàng)建、多線程的xxx的api”這些知識(shí)點(diǎn)了。
- 再比如說(shuō),如果學(xué)習(xí)Spring時(shí)不知道IOC和new對(duì)象有什么區(qū)別,那我為啥不直接new對(duì)象而要那么麻煩去學(xué)Spring呢?
簡(jiǎn)單來(lái)說(shuō):
如果你不知道學(xué)習(xí)某項(xiàng)技術(shù)是干嘛用的,那先不要學(xué)。
如果你是零基礎(chǔ)學(xué)習(xí)Java并
理解力不是爆棚的話,我建議以
視頻學(xué)習(xí)為主。
可能你會(huì)看到這樣類似的言論:
- “看視頻學(xué)習(xí)太慢了”
- “直接看源碼啊,源碼就是最好的解釋”
- “有問(wèn)題直接Google啊,用什么百度”
- “最好的資料是官網(wǎng)文檔”
- .....
但是,那都是對(duì)有經(jīng)驗(yàn)的人或者高智商的人群來(lái)講的。
如果是
零基礎(chǔ)普通人,看視頻學(xué)習(xí)/看不懂源碼/用百度/看中文博客來(lái)學(xué)習(xí)
不丟人。
ps:如果看的視頻講師的語(yǔ)速不是特別快,建議以1.5或者1.75倍速觀看。
2.1關(guān)于視頻資源
我在學(xué)習(xí)Java的時(shí)候也收集了很多的視頻資源,并不是每個(gè)都有看過(guò)。只是在混群的時(shí)候發(fā)現(xiàn)有人發(fā)了,就復(fù)制下來(lái)整理一下罷了。
關(guān)注公眾號(hào):Java3y,回復(fù)“視頻”領(lǐng)取其他的視頻資源:
- B站:(http://bilibili.com)一個(gè)神奇的網(wǎng)站。如果你想看哪個(gè)視頻,可以先搜一下B站有沒(méi)有。
- 慕課網(wǎng):(http://imooc.com)里頭也有挺多的視頻資源。
- 公眾號(hào)/混qq群/微信群:不少人手里都有幾t的資源,如果跟群友的關(guān)系不錯(cuò),一般都會(huì)免費(fèi)給你發(fā)的
- ......
2.1學(xué)習(xí)Java基礎(chǔ)
零基礎(chǔ)學(xué)習(xí)Java的路線我簡(jiǎn)單總結(jié)為以下:
- 首先去官網(wǎng)下個(gè)JDK,按現(xiàn)在常用的版本JDK1.8就夠?qū)W習(xí)了
- 下載地址:JDK1.8下載:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
- 隨后去下載現(xiàn)在Java常用的編輯器IDEA(也可以用eclipse,但現(xiàn)在IDEA的確是好用)..
- 下載地址:IDEA下載:https://www.jetbrains.com/idea/
- 以1.5/1.75倍速觀看Java基礎(chǔ)視頻(以劉意為例)
在學(xué)習(xí)Java基礎(chǔ)時(shí),我簡(jiǎn)單來(lái)說(shuō)一下
什么東西可以不碰:
&^|
位運(yùn)算符,++i
和i++
類似這種繞死人的語(yǔ)法- 內(nèi)部類
- AWT,SWING編程
- 注解
需要
深入理解的知識(shí)點(diǎn):
- 流程控制
- 面向?qū)ο蟮母拍?/li>
- Java語(yǔ)法
- this指針、重寫和重載、final、static等等這些基礎(chǔ)的東西
- 集合(包括泛型)
- IO流
- (理解這些知識(shí)點(diǎn),能夠在有提示的情況下碼出代碼,但不要為了一些細(xì)節(jié)鉆牛角尖)
簡(jiǎn)單過(guò)一遍的知識(shí):
- 異常
- 多線程
- 網(wǎng)絡(luò)編程
- 反射機(jī)制
- (你得知道這個(gè)知識(shí)點(diǎn)是干嘛用的,為什么要學(xué)這個(gè)知識(shí)點(diǎn),能看懂具體的代碼!)
對(duì)于上面所說(shuō)
深入理解的知識(shí)點(diǎn),我個(gè)人是
非常建議在學(xué)習(xí)期間寫筆記(博客)的。如果你想寫筆記的話,
最好直接就用
markdown
語(yǔ)法來(lái)編寫,而不是用word/簡(jiǎn)單的記事本。
markdown語(yǔ)法非常好學(xué),幾分鐘跟著就可以學(xué)習(xí)了,幾乎所有的it博客網(wǎng)站都支持
markdown
:
- markdown學(xué)習(xí):https://www.jianshu.com/p/q81RER
如果喜歡
畫思維導(dǎo)圖的,我這里推薦processOn就可以了。無(wú)需下載Xmind這么麻煩了:
- ProcessOn來(lái)畫思維導(dǎo)圖:https://www.processon.com/i/5815483ce4b0baccb2d1f8c6
有的時(shí)候并不需要使用IDEA打開(kāi)一個(gè)
.java
或者
.xml
這樣的文件,可以使用
notepad++
記事本:
- NotePad++記事本:https://notepad-plus-plus.org/
學(xué)會(huì)科學(xué)上網(wǎng)和使用Chrome瀏覽器,比如說(shuō)下載攔截廣告插件,英語(yǔ)翻譯插件
- Chrome瀏覽器:https://www.google.com/chrome/
- 攔截廣告插件:https://chrome.google.com/webstore/search/uBlock%20Origin?hl=zh-CN&_category=extensions
- 英語(yǔ)翻譯插件:https://chrome.google.com/webstore/search/%E6%B2%99%E6%8B%89%20%E6%9F%A5%20%E8%AF%8D?hl=zh-CN
雖然是快速學(xué)習(xí)Java,但學(xué)完上面的
估計(jì)得一個(gè)月了(:..
一個(gè)月發(fā)現(xiàn)都是面向控制臺(tái)編程(console),輸入輸出一些數(shù)據(jù)來(lái)玩。
期間可能就學(xué)習(xí)IO的時(shí)候可以復(fù)制文件,修改文件名有點(diǎn)意思。
但好日子就要來(lái)臨了!
2.2學(xué)習(xí)Java Web基礎(chǔ)
首先我們可以學(xué)習(xí)一下Web前端的知識(shí)(此部分都簡(jiǎn)單過(guò)一下就好了)
- HTML/CSS/JavaScript/jQuery
- CSS框架(都有中文手冊(cè),很快就上手了,選一個(gè)自己喜歡的就好了):
- BootStrap:http://www.bootcss.com/
- Materialize:http://www.materializecss.cn/
到目前為止,學(xué)完上面這些可以搭建“能看”的靜態(tài)網(wǎng)頁(yè)了。曾經(jīng)看過(guò)一段話來(lái)總結(jié)上面的技術(shù):
- “HTML是名詞,CSS是形容詞,JavaScript是動(dòng)詞”
隨后學(xué)習(xí)JavaWeb的路線如下:
- Tomcat(簡(jiǎn)單過(guò)一下)
- XML/注解(簡(jiǎn)單過(guò)一下)
- Servlet(重點(diǎn)理解)
- HTTP協(xié)議(重點(diǎn)理解)
- Filter過(guò)濾器(重點(diǎn)理解)
- Listener監(jiān)聽(tīng)器(簡(jiǎn)單過(guò)一下)
- JSP(簡(jiǎn)單過(guò)一下)
- AJAX、JSON(簡(jiǎn)單過(guò)一下)
基于上面的學(xué)習(xí),起碼已經(jīng)可以使用request對(duì)象來(lái)接收前端發(fā)送過(guò)來(lái)的數(shù)據(jù),使用response對(duì)象將Java后端的數(shù)據(jù)返回給前端,使用Filter攔截器來(lái)處理中文亂碼問(wèn)題(Tomcat默認(rèn)的編碼是ISO-88591)??偟膩?lái)說(shuō)已經(jīng)可以實(shí)現(xiàn)
前后端交互了!
2.3學(xué)習(xí)數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)這里指的是關(guān)系型數(shù)據(jù)庫(kù),一般我們以
MySQL來(lái)入門就足夠了。
在學(xué)習(xí)期間,其實(shí)很多時(shí)間都耗費(fèi)在
配置環(huán)境上面,比如我之前安裝JDK,安裝MySQL,安裝Oracle就耗費(fèi)了不少時(shí)間。后來(lái)我也將其寫成博客,需要重新安裝的時(shí)候翻一下博客就好了。
- 比如MySQL安裝教程:https://segmentfault.com/a/1190000013530782
主要學(xué)習(xí)SQL的基本使用吧:
- 創(chuàng)建表(create table)
- 增刪改查(insert,delete,update,select)
- 對(duì)于存儲(chǔ)過(guò)程、觸發(fā)器這些了解一下即可
- 對(duì)于索引、鎖后面再學(xué)(此部分很重要,但以快速入門來(lái)說(shuō),可以先不看)
2.4學(xué)習(xí)Java連接數(shù)據(jù)庫(kù)(JDBC)
到這里,我們Java Web、數(shù)據(jù)庫(kù)、Web前端的基礎(chǔ)都已經(jīng)基本學(xué)完了,但此時(shí)Java和數(shù)據(jù)庫(kù)是相互獨(dú)立的。我們想要以
程序的方式來(lái)對(duì)數(shù)據(jù)庫(kù)的數(shù)據(jù)進(jìn)行操作,那就要學(xué)習(xí)一下Java連接數(shù)據(jù)庫(kù)(JDBC)。
JDBC這項(xiàng)技術(shù)并不難呀,就是模板代碼,來(lái)來(lái)去去就幾個(gè)步驟:
- 導(dǎo)入MySQL或者Oracle驅(qū)動(dòng)包
- 裝載數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序
- 獲取到與數(shù)據(jù)庫(kù)連接
- 獲取可以執(zhí)行SQL語(yǔ)句的對(duì)象
- 執(zhí)行SQL語(yǔ)句
- 關(guān)閉連接
由于這些代碼可能會(huì)重復(fù)出現(xiàn),那我們可以學(xué)習(xí)一下
DbUtils這個(gè)組件:可以幫我們減少編寫JDBC的模板代碼。
2.6項(xiàng)目管理和框架的學(xué)習(xí)
經(jīng)過(guò)上面的學(xué)習(xí),已經(jīng)是可以在本地寫一個(gè)Web項(xiàng)目了。
- 頁(yè)面框架使用BootStrap/Materialize框架來(lái)搭好
- 請(qǐng)求處理交由Servlet,返回的數(shù)據(jù)可以通過(guò)AJAX或者使用JSP,DAO層可以使用DbUtils。
- 數(shù)據(jù)保存在MySQL中
為了讓寫代碼變得
更爽,我建議用半天學(xué)一下
Maven(項(xiàng)目管理工具),用幾天學(xué)一下
SpringBoot。
- 從Servlet直接跳到SpringBoot可能有點(diǎn)難理解,但多搞幾天我相信還是可以的..
2.7Linux學(xué)習(xí)
最后,我們?cè)诒镜厣蠈懲甑捻?xiàng)目想要讓其他人都看得見(jiàn),一般都會(huì)部署在Linux環(huán)境下的。(此部分的學(xué)習(xí)可以等到將項(xiàng)目寫完,想要部署項(xiàng)目才學(xué)習(xí))
我是不推薦使用虛擬機(jī)再搞Linux的,
直接買一臺(tái)方便很多- 如果是學(xué)生的話,一個(gè)月的學(xué)生版也就10塊一個(gè)月。
三、總結(jié)
總結(jié)一下我認(rèn)為學(xué)習(xí)Java的路線:
- Java基礎(chǔ)-->流程控制-->面向?qū)ο?包括Java語(yǔ)法)-->Java集合-->Java IO流-->異常-->多線程-->網(wǎng)絡(luò)編程-->反射
- JavaWeb基礎(chǔ)-->HTML/CSS/JavaScript/jQuery-->Tomcat-->XML/注解->Servlet-->HTTP-->Filter過(guò)濾器和監(jiān)聽(tīng)器-->JSP-->AJAX/JSON-->數(shù)據(jù)庫(kù)(MySQL)-->JDBC和DbUtils
- 項(xiàng)目管理和框架-->Maven-->SpringBoot
- Linux基本命令
最后我們的項(xiàng)目是這樣的:
- 以Maven來(lái)管理我們的項(xiàng)目
- 前端通過(guò)BootStrap來(lái)搭建頁(yè)面框架
- SpringBoot來(lái)搭建Java后端環(huán)境,SpringMVC處理前端請(qǐng)求(SpringBoot整合了)
- DAO層使用DbUtils組件來(lái)完成,MySQL作為數(shù)據(jù)庫(kù)
當(dāng)然了,我的Java路線不一定就是對(duì)的,我這里只是給出一種路線。
再次說(shuō)明:這套路線是以“快速”學(xué)習(xí)Java的,
如果你想要找到一份好工作,上面的知識(shí)點(diǎn)是不夠的!
有幫助?點(diǎn)贊!關(guān)注我的公眾號(hào):
Java3y,獲取更多的
原創(chuàng)筆記,海量視頻資源/原創(chuàng)思維導(dǎo)圖/學(xué)習(xí)路線
所有的文章導(dǎo)航:
https://github.com/ZhongFuCheng3y/3y(
歡迎star)