十年Java開發(fā)經(jīng)驗(yàn)分享:Java初學(xué)者,如何學(xué)習(xí)Java?

咱們先解決認(rèn)識問題

1、學(xué)JAVA的過程及特點(diǎn)

我們研究一下那些985學(xué)校的學(xué)生,他們是怎么學(xué)會(huì)JAVA的,有知友馬上會(huì)說,我去!是的,985很多學(xué)生志向高遠(yuǎn),學(xué)JAVA只是他們一個(gè)小小的任務(wù),但對我們大家來說,學(xué)JAVA是一個(gè)重要的任務(wù),是解決體面工作、找到更好前途的重要任務(wù),我們研究他們是如何學(xué)會(huì)JAVA,是研究規(guī)律性的東東,或者真的對大家有幫助。

一般這些985學(xué)校的老師都會(huì)有項(xiàng)目,然后博士當(dāng)項(xiàng)目經(jīng)理,碩士當(dāng)組長,本科生當(dāng)碼工,碼工很缺,假若是你就是985學(xué)生,而且你也想學(xué)JAVA,所以你就參加了,除了會(huì)點(diǎn)C,還有一點(diǎn)點(diǎn)JAVA基礎(chǔ),你就開始了。

你不知道怎么做,然后有個(gè)會(huì)JAVA的碩士生,或者本科生過來告訴你,你先看這本書,也不用全看,先看這部分,不明白的地方問他,然后經(jīng)過這么努力一段時(shí)間,那人會(huì)告訴你,要不你看看項(xiàng)目的部分代碼,試著敲敲,你就敲啊敲,不懂就問,然后你感覺差不多的,向那人要任務(wù),結(jié)果人家是給了任務(wù),但不是正式項(xiàng)目,作為測試作的任務(wù),然后你又開始苦干了,當(dāng)然在此期間出現(xiàn)了很多問題,但總有人會(huì)幫忙來解決,最后任務(wù)完成,組長說你可以了,可以加入項(xiàng)目承擔(dān)任務(wù)了,就這么簡單。

現(xiàn)在我們來分析一下這個(gè)過程,第一要有合理的學(xué)習(xí)路徑,先學(xué)什么后學(xué)什么,得有人告知,第二,得有個(gè)人來幫你解決各種問題,第三,得有一批人和你一起干,第四,要敲代碼,第五,得有緊迫感得堅(jiān)持,他們的任務(wù)等著你呢,明白了吧,不是人家聰明,是人家有這個(gè)學(xué)習(xí)環(huán)境,所以不要妄自菲薄。

說過985學(xué)校學(xué)生,大家認(rèn)為自己垃圾學(xué)校的,這種方法沒法拿過來用,那么我們來看看培訓(xùn)機(jī)構(gòu)的學(xué)生是怎么學(xué)會(huì)的,他們更多的也是垃圾學(xué)校的學(xué)生,甚至更差,還不如你,在他們學(xué)習(xí)過程中:

第一,他們的學(xué)習(xí)路徑是機(jī)構(gòu)設(shè)置好的;

第二,他們有老師幫他們解決各種問題;

第三,有一批志同道合的同學(xué),相互鼓勵(lì)前進(jìn);

第四,敲代碼;

第五,培訓(xùn)有合理的期限,機(jī)構(gòu)老師會(huì)督促大家堅(jiān)持。

兩者的區(qū)別,前者知識是自學(xué)的,看書看視頻,后者,知識是老師教的,作為一個(gè)普通大學(xué)生實(shí)際上也能自學(xué),只不過聰明程度和堅(jiān)持的不同,學(xué)得時(shí)間長一點(diǎn)短一點(diǎn)而已,所以學(xué)習(xí)過程類似。

上面兩個(gè)例子說明,學(xué)JAVA不要特別的智商,可以說,只是指導(dǎo)思想、學(xué)習(xí)環(huán)境和學(xué)習(xí)方法對路,只要不是弱智,大家都學(xué)得會(huì),別去聽有些人的瞎BB,我見過智商真的不怎么的人學(xué)會(huì)JAVA,相信自己很重要,我們又不想成為喬布斯、比爾蓋茨,我們只是想學(xué)會(huì)JAVA有份體面的工作、有份體面的收入而已,至于以后成為什么樣的,以后有的時(shí)間認(rèn)識自己,別去相信什么程序員是野生的,沒有野生的,他們也是在大學(xué)學(xué)習(xí)過的,也是家養(yǎng)的,是人類就沒野生的,除非他們是非人類。

好,我們來分析一般JAVA自學(xué)者的狀況,學(xué)習(xí)路徑就是個(gè)問題,網(wǎng)上這找找那找找,這個(gè)說這個(gè)知識是必須的,那個(gè)說那個(gè)知識是以后的發(fā)展方向…..,然后我們就這個(gè)看看學(xué)學(xué),那個(gè)看看學(xué)學(xué),學(xué)不深,蜻蜓點(diǎn)水,結(jié)果一事無成。

我們碰到問題不知道去問誰,我們經(jīng)常是孤獨(dú)的學(xué)習(xí)者。

我們無法堅(jiān)持學(xué)習(xí)計(jì)劃,三天學(xué)一點(diǎn),第四第五天就去弄?jiǎng)e的事情去了,畢竟學(xué)習(xí)是個(gè)苦差事,學(xué)JAVA更是苦,所以要放松一下,結(jié)果很多人就不回來學(xué)了,回來學(xué)的又得從頭開始了。

我們學(xué)習(xí)基本不敲代碼,只是學(xué)知識,從小校到大學(xué),學(xué)校都是這么教的,也不知道敲什么、怎么敲,敲不下去不知道找誰解決。

小貼士1:JAVA名字的由來

image.png

我們見到JAVA標(biāo)志是一杯熱咖啡,Java的名字是由何而來呢,JAVA前身叫Oak(橡樹),在對Oak改進(jìn)以后,需要一個(gè)新名字,據(jù)說有一天,幾位Java創(chuàng)始人成員正在討論給這個(gè)新的語言取什么名字,當(dāng)時(shí)他們正喝著Java(爪哇)咖啡,有一個(gè)人靈機(jī)一動(dòng)說就叫Java怎樣,得到了其他人的贊賞,于是,橡樹變咖啡,Java這個(gè)名字就這樣傳開了。隨后Java成了一顆耀眼的明星,丑小鴨一下了變成了白天鵝。

2、如何認(rèn)識敲代碼的重要性?

說到敲代碼,我們必須著重說明一下,我們從小到到,老師傳授我們的是知識(knowlegde),不是技能(skill),所以我們擅長的是學(xué)知識而不是技能,我們總用學(xué)知識的方法學(xué)編程,而編程是一個(gè)知識加技能的活,學(xué)技能必須練、必須實(shí)踐,比如修鐘表,比如踢足球、打籃球,光靠看看書、看看視頻解決不了問題。

賣油翁的故事大家都學(xué)過,”我亦無他,唯手熟爾?!?,所以學(xué)編程必須去敲代碼、去實(shí)踐,舉個(gè)大家最熟悉的例子,英語,也是技能+知識,大家從小到大學(xué)了十多年,結(jié)果還是不會(huì)聽、不會(huì)說,但如果把你放到說英語的國家?guī)讉€(gè)月,你至少會(huì)聽一點(diǎn)、說一點(diǎn)了。大學(xué)只會(huì)傳授知識,不會(huì)傳授技能,所以學(xué)不好英語,當(dāng)然更不用說學(xué)編程了,英語大家慢慢明白了是什么原因?qū)W不好,編程學(xué)不好,大家不明白其中的原因,所以一般大學(xué)的計(jì)算機(jī)專業(yè)學(xué)生學(xué)到三年級的時(shí)候,發(fā)覺自己學(xué)不好編程,從自身找原因,認(rèn)為自己不是這塊料,這就尷尬了,學(xué)計(jì)算機(jī)專業(yè)的結(jié)果是搞明白了自己不是這塊料,那人家培訓(xùn)機(jī)構(gòu)怎么就讓人學(xué)會(huì)了呢,悲哀啊。

說到了敲代碼,馬上就面臨一個(gè)問題,錯(cuò)誤。

3、如何認(rèn)識在敲代碼中遇到的錯(cuò)誤呢?

有的初學(xué)者在運(yùn)行程序之前恨不得燒柱香,祈禱程序運(yùn)行不會(huì)出錯(cuò)。要明確一點(diǎn),碰到錯(cuò)誤不可怕,也不可避免,但是見的錯(cuò)誤越多,那么說明你學(xué)的越快,這是好事,錯(cuò)誤見多了,以后就不會(huì)再犯這種錯(cuò)誤了,當(dāng)然前提是你得找到出錯(cuò)的原因。

那么怎樣才是解決問題的正確方式呢?碰到程序出錯(cuò),首先要想著自己去解決,明確程序出了什么錯(cuò)誤,找到程序出錯(cuò)的地方,比如哪一行或者哪個(gè)方法。然后理一下自己的思路,仔細(xì)想想哪里有什么遺忘的地方,按照程序執(zhí)行的順序,依次往下找,多找?guī)妆椤?/p>

但是,記住,如果超過一段時(shí)間(你自己可以設(shè)置一個(gè)時(shí)間,比如15分鐘),你找不出解決方法,就不要找了,盡快找人幫助解決,畢竟學(xué)JAVA的碰到的問題太多了,花大把大把時(shí)間解決個(gè)別問題,你耗不起,這樣學(xué)習(xí)效率過低了,會(huì)嚴(yán)重影響學(xué)習(xí)信心,當(dāng)然別人幫你解決了問題,你就一定要問清楚為什么會(huì)出現(xiàn)這個(gè)問題,否則這 個(gè)敲代碼效果就不一定好了。

這里又要糾正一種認(rèn)識,從小到大,學(xué)校里老師告訴我們,題目要自己做,這樣記得牢,所以絕大多數(shù)的我們,都是這樣過來的,在學(xué)JAVA的時(shí)候也是這樣學(xué)的,但是你學(xué)JAVA的碰到的問題太多了,都自己思考出結(jié)果來,恐怕對大多數(shù)人來說太費(fèi)時(shí)間,今天幾個(gè)問題沒解決,明天幾個(gè)問題沒解決,一周后,你有多少問題沒解決啊,這些都是你前進(jìn)的包袱,對你學(xué)JAVA的信心來說,是一個(gè)致命的打擊,所以牢記:一段時(shí)間想不明白就求助別人,扔掉包袱、輕裝前進(jìn)才是最重要的。

4、如何讓學(xué)習(xí)不是很痛苦,更easy點(diǎn)

1.別碰《JAVA編程思想》,呵呵了;

image.png

2.別把學(xué)習(xí)計(jì)劃制定得太宏大,太緊湊,要有適當(dāng)?shù)拈L期打算,不要恨不得一天就把它學(xué)會(huì)了,但是學(xué)著學(xué)著就像霜打的茄子,焉了。

3.不要聽到什么好去學(xué)什么,開始時(shí)別去想struts2,spring,mybatis這些高大上的框架,只要基礎(chǔ)打扎實(shí),學(xué)這些不難,IDE只要選一個(gè)弄明白就可以,不要多。

4.開始別玩Oracle,就玩MySQL,玩得差不多再玩Oracle很容易,開始也別用linux,就用windows,就是什么簡單就用什么,別自己給自己制造麻煩,簡單的學(xué)好了,復(fù)雜點(diǎn)學(xué)學(xué)很方便,高精尖的東西對于初學(xué)者來說,都是包袱,不是什么利器,是有毒的蘋果。

5.不要就是碰到什么問題,都希望把問題弄的很透徹,因?yàn)橛行〇|西不是你現(xiàn)階段能夠徹底理解的,這就類似與你跟一個(gè)四五歲的小朋友解釋成年人之間的事,解釋了半天發(fā)現(xiàn)他還是不懂,于是你會(huì)說:等你長大了也就明白了,知識是成體系的,后面的沒學(xué),前面的不容易理解,等你后面的學(xué)好,發(fā)現(xiàn)前面的很好理解。

6.盡快敲代碼,是在基本理解例子的基礎(chǔ)上,自己從頭到尾敲一遍,不要把學(xué)過的知識點(diǎn)扔的太久之后才去敲,記住:聰明人可以在徹底理解的基礎(chǔ)上開始敲代碼,對于普通人,基本理解以后就可以開始敲代碼,有很多時(shí)候,你想破頭都不明白的問題,敲一下就立即明白。在敲完以后,這個(gè)時(shí)候要好好理解,就是把完全理解的任務(wù)后置,這會(huì)讓學(xué)習(xí)更輕松。

7.找?guī)讉€(gè)有共同興趣的人組成JAVA學(xué)習(xí)小組,或者幾個(gè)好的QQ的JAVA學(xué)習(xí)群,互想幫助,互相鼓勵(lì)。

總之,前面一大段都是想說,不要把問題搞得太復(fù)雜,怎么簡單怎么來,別自找麻煩,否則你學(xué)會(huì)JAVA的可能性就越小。

小貼士2:J2EE名字的由來

這里的“2”,不是B2B,P2P中的“to”意思,它就是Two的意思,實(shí)際上Java在1995年剛推廣的時(shí)候,只能說取得了一定的成功,我們稱之為Java1,當(dāng)時(shí)面臨很多問題,在1998年,Sun公司對Java進(jìn)行了革命性的改進(jìn),同時(shí)為區(qū)別Java 1,推出了Java 2平臺,包括J2SE,J2EE,J2ME,其中J2EE極好地適應(yīng)了互聯(lián)網(wǎng)發(fā)展的需要,IBM等大型公司出于對抗當(dāng)時(shí)如日中天的微軟也加入到Java陣營,所以J2EE取得了極大的成功,從此J2EE的名字比Sun公司名字還響亮,大家一直叫J2EE,就是Sun公司在2005年把J2EE改成Java EE,大家還是叫J2EE,可惜Sun公司現(xiàn)在被Oracle公司收購了,不存在了。

解決了認(rèn)識問題,接下來就是學(xué)習(xí)方法等技術(shù)問題了

1、學(xué)習(xí)教材選擇

推薦《JAVA核心技術(shù)》,想多看點(diǎn)代碼多練習(xí)可以找《java開發(fā)實(shí)戰(zhàn)經(jīng)典》

關(guān)于《JAVA編程思想》Thinking in Java,是本好書,有學(xué)JAVA圣經(jīng)之說。

image.png

關(guān)于《JAVA編程思想》Thinking in Java,是本好書,有學(xué)JAVA圣經(jīng)之說。

但是這本書對JAVA有基本功的人來說不錯(cuò),學(xué)習(xí)此書可以對JAVA有一個(gè)比較深刻的理解,但對于初學(xué)者(除非腦子特好使)是個(gè)毒藥,過于抽象,真不太好懂,所以不建議初學(xué)者使用。

image.png

但是這本書對JAVA有基本功的人來說不錯(cuò),學(xué)習(xí)此書可以對JAVA有一個(gè)比較深刻的理解,但對于初學(xué)者(除非腦子特好使)是個(gè)毒藥,過于抽象,真不太好懂,所以不建議初學(xué)者使用。

2、JAVA學(xué)習(xí)視頻:

馬士兵JAVA視頻、畢向東JAVA視頻,關(guān)于視頻,必須說明一下:

第一,最好看一個(gè)人的視頻,因?yàn)槊總€(gè)老師的思維方式不一樣。

第二,看視頻是一個(gè)相當(dāng)?shù)托У膶W(xué)習(xí)方法,能不看就不要看,實(shí)際上看視頻慢慢就落入學(xué)習(xí)知識而忽視技能練習(xí)的狀態(tài),開始去努力記知識點(diǎn),不去敲代碼, 這樣是走不下去的,看視頻時(shí),一定要記得敲代碼。

對了,如何在入門學(xué)習(xí)java的過程當(dāng)中大家缺乏系統(tǒng)的java學(xué)習(xí)視頻,大家可以加我的java學(xué)習(xí)交流群:1025177716,從去年到現(xiàn)在, 我根據(jù)市場技術(shù)棧的需求,錄制了一套最新的java視頻教程,大家可以來獲取。

3、JAVA學(xué)習(xí)網(wǎng)址

查找代碼的網(wǎng)址:國外的,我們也牛皮一下

http://sourceforge.net

http://github.com

很遺憾,都是英文的,

國內(nèi)的估計(jì)這兩個(gè)鏈接基本解決了學(xué)習(xí)資料問題

下載詳情_51CTO下載中心_IT技術(shù)資料免費(fèi)下載或者

158個(gè)JAVA免豆精品資料匯總 - Java論壇 - 51CTO技術(shù)論壇 幫51CTO做廣告了。

還有CSDN、博客園、開源中國和pudn這幾個(gè)網(wǎng)站都不錯(cuò)。

關(guān)于學(xué)習(xí)JAVA的網(wǎng)站,先說明一下:

stackoverflow

一個(gè)IT的問答網(wǎng)站

很多人推薦不懂去stackoverflow,英語好的真不錯(cuò),但是你看一下吧

image.png

對于廣大英語不好的人來說,這就想當(dāng)尷尬了。

如果你能為了解決JAVA問題,達(dá)到廢寢忘食的地步,至少睡下去以后還在思考JAVA問題,那么恭喜你,你已進(jìn)入狀態(tài),成功就在不遠(yuǎn)處。

小貼士3:安卓為什么要用Java來改造

image.png

大家知道安卓是google公司在Java的基礎(chǔ)上改造而來的,現(xiàn)在Google和Oracle公司還在打官司,那么為什么安卓要選Java呢,這得回到Java的起源了,大家知道Java當(dāng)初叫Oak,Oak語言當(dāng)初真正的目的是為了解決消費(fèi)電子產(chǎn)品(電視機(jī)頂盒、面包烤箱、移動(dòng)電話)的智能化,由于沒有市場需求,Sun公司才拼命讓其適應(yīng)互聯(lián)網(wǎng)的發(fā)展,你瞧,30年以前這些人已經(jīng)想到并為此設(shè)計(jì)出語言了,所以Java從開始就非常適合嵌入式設(shè)備、移動(dòng)設(shè)備,Java就是為它們量身定制的。只是過于超前,市場沒有這種需求,所以現(xiàn)在市場出現(xiàn)需求以后,Java的優(yōu)點(diǎn)就立即被發(fā)現(xiàn),同時(shí)也為Java創(chuàng)造出另外一片天地。

本來應(yīng)該有個(gè)JAVA學(xué)習(xí)路徑,但是這個(gè)網(wǎng)上到處都有,各位答主也給出了詳細(xì)的說法,路徑基本上都一樣,所以不再詳細(xì)闡述了,大家網(wǎng)上搜一下就可以了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容