解惑:Java零基礎(chǔ)如何入門,不知道怎么學(xué)

幾個(gè)星期之前智袭,我在知乎上看到一個(gè)提問奔缠,說是:對(duì)于完全沒有經(jīng)驗(yàn)零基礎(chǔ)自身的數(shù)學(xué)底子也很弱學(xué)習(xí)Java應(yīng)該怎么學(xué)習(xí)呢?想著類似的問題我也有過回答吼野,并且反饋還是蠻好的校哎,就參考之前的思路回答了一遍

本文是一篇較長的學(xué)習(xí)心得,建議收藏反復(fù)觀看

image.png

提出問題的是一位高中生瞳步,就順藤摸瓜加了我好友闷哆,讓我給指點(diǎn)指點(diǎn)。本著助人為樂的精神单起,我還是從自身的角度來分析問題抱怔,畢竟我也工作多年,給初學(xué)者一些信心是我該做的嘀倒;給初學(xué)者一些指導(dǎo)屈留,是我力所能及的;給初學(xué)者一些勸退测蘑,也是我要做的灌危,畢竟很多人可能最后發(fā)現(xiàn)自己并不適合寫程序。

期間這位老弟和我聊了很多帮寻,我都零零散散給了解答乍狐。直到前幾天,他拋給我很多困惑固逗,都是在初學(xué)的時(shí)候會(huì)面臨到的浅蚪,所以我就抽時(shí)間做了一次詳細(xì)的解答藕帜,主要涉及到Java從入門到進(jìn)階需要經(jīng)歷哪些、如何學(xué)習(xí)Java入門惜傲、還沒開始實(shí)踐就有一堆煩惱洽故,該怎么辦?

本文將以問答的方式盗誊,給出一些簡(jiǎn)單的見解时甚,因?yàn)镴ava內(nèi)容挺多的,可能會(huì)有遺漏哈踱,我已經(jīng)讓群里的小伙伴們做過一次篩選荒适,讀者朋友們看到了,也可以給我更多的補(bǔ)充噢开镣。

知友:哥刀诬,我前兩天也想了一些編程的問題向您請(qǐng)教請(qǐng)教吧,希望能得到你的幫助

第一個(gè)呢就是Java學(xué)習(xí)路線是什么邪财,Java各個(gè)階段需要學(xué)的知識(shí)點(diǎn)有什么陕壹,課程大綱,就是和課本上似的都有目錄包含了所有的哪些知識(shí)點(diǎn)Java树埠,從基礎(chǔ)到入門再到精通應(yīng)該如何學(xué)糠馆?先學(xué)什么知識(shí)點(diǎn)在學(xué)什么?包含了什么知識(shí)體系Java里怎憋,辛苦你能不能和我仔細(xì)說說呢

答:
Java現(xiàn)在主要的領(lǐng)域是作為后端在應(yīng)用又碌,尤其是他的微服務(wù)領(lǐng)域,很多國內(nèi)外知名的大廠都是使用Java作為后端盛霎,甚至有大V認(rèn)為赠橙,在微服務(wù)領(lǐng)域Java無人能及耽装。

所以愤炸,我們學(xué)習(xí)Java的目標(biāo)就是把自己培養(yǎng)成微服務(wù)的人才。雖然掉奄,Android開發(fā)规个,部分前端也是用Java,但是結(jié)合你的實(shí)際情況姓建,我還是建議往微服務(wù)領(lǐng)域走了诞仓,也就是Java后端。
Java 是一門純粹的面向?qū)ο蟮木幊陶Z言速兔,所以除了基礎(chǔ)語法之外墅拭,必須得弄懂它的 oop 特性:封裝、繼承涣狗、多態(tài)谍婉。

關(guān)于基礎(chǔ)知識(shí)學(xué)習(xí)

學(xué)習(xí)基礎(chǔ)知識(shí)舒憾,就是讓你對(duì)Java語言有一個(gè)初步的了解,其實(shí)穗熬,任何語言的基礎(chǔ)知識(shí)都是大同小異镀迂,包含基本的數(shù)據(jù)類型以及基本的面向?qū)ο笾R(shí),面向?qū)ο笫侵刂兄鼗秸幔挥杏辛嗣嫦驅(qū)ο蟮闹R(shí)探遵,在后續(xù)的開發(fā)中才會(huì)有更好的成長。

基礎(chǔ)知識(shí)包括(主要參考《Java核心技術(shù)卷》即可):

基本程序結(jié)構(gòu):基本變量類型妓柜、運(yùn)算符箱季、字符串、流程控制棍掐、數(shù)組
類與對(duì)象:類的定義和使用规哪、靜態(tài)屬性和方法、繼承塌衰、包管理诉稍、枚舉、反射
接口和抽象類:接口的定義及實(shí)現(xiàn)最疆、抽象類的定義及實(shí)現(xiàn)
泛型:泛型類杯巨、泛型方法
集合:集合接口、列表努酸、Map服爷、樹、排序和查找
異常與調(diào)試:內(nèi)置異常获诈、聲明異常仍源、自定義異常、捕獲異常舔涎、日志
多線程:多線程概念笼踩、使用線程、同步

關(guān)于Spring等學(xué)習(xí)

有了一定的基礎(chǔ)知識(shí)亡嫌,接下來就直奔主題嚎于,在這領(lǐng)域里,Spring就是需要學(xué)習(xí)的利器挟冠,下面是編寫Spring相關(guān)于购,需要掌握的知識(shí),可能不止知染,也可能有遺漏肋僧,后續(xù)可以再補(bǔ)充

1.Maven:Maven與包管理、POM文件、生命周期等
2.Spring Core:依賴注入與控制反轉(zhuǎn)嫌吠、Spring概述伪窖、Spring容器與生命周期、自動(dòng)裝配居兆、注解裝配覆山、切面編程(AOP)
3.HTTP協(xié)議
4.JSON知識(shí)
5.Servlet概念
6.Spring MVC概念:配置Spring MVC、參數(shù)傳遞泥栖、實(shí)現(xiàn)REST簇宽、權(quán)限控制等
7.RPC框架
8.RESTFul

關(guān)于Spring的學(xué)習(xí)資料,推薦《Spring實(shí)戰(zhàn)》吧享,之前群里有人中獎(jiǎng)魏割,我贈(zèng)送過一本,需要文檔的可以戳鏈接:https://shimo.im/docs/i7o2oKkDuiA319g3/《Java筆記钢颂、源碼钞它、面試、文檔殊鞭、視頻資源免費(fèi)獲取》

關(guān)于應(yīng)用中間件的學(xué)習(xí)

這一部分遭垛,就是Java開發(fā)中常見的“中間件”,這些中間件涵蓋了各個(gè)領(lǐng)域操灿,包括持久化锯仪、緩存、隊(duì)列趾盐、反向代理等庶喜,這些是完善一個(gè)程序的重中之重,前面屬于基礎(chǔ)框架救鲤,這個(gè)就是給框架里填充必要的東西久窟,讓程序健壯穩(wěn)定。

主要包括但不限于

MySQL:關(guān)系型數(shù)據(jù)庫概念本缠,數(shù)據(jù)庫的CRUD操作
MyBatis:OR映射概念斥扛,配置,映射搓茬,基本Java庫犹赖,和Spring集成
Redis緩存:緩存概念、Redis的使用
NoSQL:NoSQL概念卷仑,Mongodb的使用
隊(duì)列:隊(duì)列概念,RabbitMQ麸折、Kafka
反向代理:反向代理概念锡凝,Nginx的配置和使用
Linux:遠(yuǎn)程連接Linux,Linux的常用命令

其他補(bǔ)充

其他的一些補(bǔ)充垢啼,主要是在于非技術(shù)相關(guān)窜锯,但是在往后的項(xiàng)目使用中张肾,是肯定需要用到的。
開發(fā)工具:IDEA锚扎、Eclipse
版本控制工具:Git吞瞪、SVN
Docker容器:環(huán)境部署

大體上就分為上面的三個(gè)部分,但是每個(gè)部分都有很多小的部分驾孔,基礎(chǔ)知識(shí)最容易芍秆,也是重中之重,因?yàn)楹竺嫠械拇a編寫翠勉,沒有基礎(chǔ)知識(shí)妖啥,一些都執(zhí)行不了。

問了這么多对碌,寫了這么多荆虱,還是不能停留在理論,最好的方式就是實(shí)踐朽们。

知友:第二個(gè)就是學(xué)習(xí)方法沒有找到怀读,不知怎么學(xué),什么方法學(xué)起來很容易還不會(huì)忘記也不會(huì)不想學(xué)骑脱,我現(xiàn)在真的很迷茫愿吹,想學(xué)但是不知道該怎么學(xué),特別是在你說的多實(shí)踐敲代碼問題上也就是第三點(diǎn)敲代碼

我現(xiàn)在的顧慮就是不知道該怎么去靈活的敲代碼惜姐,還有怎么才能做到編寫代碼很準(zhǔn)確速度提上來呢現(xiàn)在吧腦子里還沒有學(xué)究一想編寫代碼就無所適從犁跪,不知該怎么敲,心里就是覺得敲代碼很困難歹袁,無法下手去敲坷衍,更別說多去實(shí)踐了

還有就是在敲代碼問題上如何才能按照給出的題意或者產(chǎn)品開發(fā)旨意編寫出代碼來呢?問這個(gè)就是我現(xiàn)在感覺這個(gè)很困難条舔,之前在學(xué)校剛學(xué)c的時(shí)候根據(jù)課本源代碼敲都敲錯(cuò)了枫耳,更別說布置的根據(jù)意思敲我直接不會(huì),一想到這個(gè)我真的怕了所以才問自己適不適合孟抗,辛苦你了哥希望能給我仔細(xì)跟我說說

答:這幾個(gè)連在一起回答迁杨。

Java開發(fā)也好,C語言也罷凄硼,還是其他的語言學(xué)習(xí)铅协,都是需要實(shí)踐的;這個(gè)你就把自己當(dāng)成一名技術(shù)工人摊沉,泥瓦工也是經(jīng)過千錘百煉才能造房子狐史,包裝工也是經(jīng)歷過千萬次的包裝才能做到得心應(yīng)手。語言組織也是如此,作文就是一字一句積累起來的骏全。

畢竟編程是一門技術(shù)活苍柏,不是靠單純的體力活動(dòng)能勝任的,所以姜贡,這個(gè)無他试吁,唯有熟能生巧,才能達(dá)到寫代碼的地步楼咳。但是寫代碼這個(gè)要求太低了熄捍,還遠(yuǎn)遠(yuǎn)不夠。

我經(jīng)常和群友說爬橡,編程到最后并不是寫代碼治唤,寫代碼是最最容易的事情。在寫代碼之前糙申,還有需求分析宾添,技術(shù)選型(選數(shù)據(jù)庫,選中間件等)柜裸,架構(gòu)設(shè)計(jì)缕陕,流程設(shè)計(jì),算法選擇疙挺,這些都完成了扛邑,那你把這些轉(zhuǎn)換成代碼就是水到渠成的事情。

這里只是給出一個(gè)最終的目標(biāo)铐然,針對(duì)初學(xué)者蔬崩,一開始不能好高騖遠(yuǎn),也不能被困難所嚇倒搀暑。我上面給了學(xué)習(xí)路線沥阳,你看明白了嗎?所以自点,你現(xiàn)在心里有數(shù)桐罕,有沒有被嚇到,如果沒有桂敛,那么請(qǐng)你仔細(xì)閱讀《Java核心技術(shù)卷1》功炮,把上面的基礎(chǔ)知識(shí)都先掌握,出現(xiàn)的代碼都在編譯器上實(shí)踐术唬,一行一行編寫薪伏,理解他。如果已經(jīng)被打到了碴开,那后面就沒有什么事了毅该,好好選擇一個(gè)更好的出路即可博秫。

等基礎(chǔ)知識(shí)都慢慢地學(xué)會(huì)潦牛,然后再去找一些小Demo眶掌,比如說實(shí)現(xiàn)一個(gè)計(jì)算器,就能檢驗(yàn)?zāi)愕膶W(xué)習(xí)成果巴碗。寫代碼是一個(gè)循序漸進(jìn)的過程朴爬,基礎(chǔ)先學(xué)會(huì),逐漸就有成就感橡淆,那后面的困難就迎刃而解召噩,否則等到后面學(xué)習(xí)算法,項(xiàng)目時(shí)間逸爵,困難重重具滴。

知友:再說個(gè)開發(fā)以外的吧,根據(jù)之前我也找到了自己的缺點(diǎn)應(yīng)該在編程上會(huì)有障礙吧师倔,我做事呢不考慮后果嚴(yán)重性构韵,缺乏獨(dú)立思考能力,反應(yīng)速度慢了思考就慢趋艘,所以就不知該怎么做了疲恢,自己不會(huì)去獨(dú)立思考,只有等著別人叫著做什么就做什么自己不敢眼事瓷胧,也不會(huì)儲(chǔ)存記憶显拳,注意力不集中,認(rèn)為小問題就不去想去揣摩搓萧,想要改變應(yīng)該怎么改變呢杂数?哥我確實(shí)沒怎么寫過代碼,之前沒接觸過也就跟著課本上照著寫瘸洛,我也憂慮不會(huì)編寫揍移,即使學(xué)了我就怕還不會(huì)敲代碼不清楚怎么敲,就是從心里感覺到敲代碼很困難

答:
寫程序除了有技術(shù)能力之外货矮,心境也是一大重點(diǎn)羊精。
這里先聊一下學(xué)習(xí)的方式,人的學(xué)習(xí)分為「被動(dòng)學(xué)習(xí)」和「主動(dòng)學(xué)習(xí)」兩個(gè)層次囚玫。

  • 被動(dòng)學(xué)習(xí):如聽講喧锦、閱讀、視聽抓督、演示燃少,學(xué)習(xí)內(nèi)容的平均留存率為 5%、10%铃在、20% 和 30%阵具。

  • 主動(dòng)學(xué)習(xí):如通過討論碍遍、實(shí)踐、教授給他人阳液,會(huì)將原來被動(dòng)學(xué)習(xí)的內(nèi)容留存率從 5% 提升到 50%怕敬、75% 和 90%。

我們可以看到帘皿,你聽別人講东跪,或是自己看書,或是讓別人演示給你鹰溜,這些都不能讓你真正獲得學(xué)習(xí)能力虽填,因?yàn)槟闶窃诒粍e人灌輸,在聽別人說曹动。

只有你開始自己思考斋日,開始自己總結(jié)和歸納,開始找人交流討論墓陈,開始踐行恶守,并開始對(duì)外輸出,你才會(huì)掌握到真正的學(xué)習(xí)能力跛蛋。

學(xué)習(xí)不僅僅是為了知道熬的,而更是為了思考和理解。在學(xué)習(xí)的過程中赊级,我們不是為了知道某個(gè)事的表面是什么押框,而是要通過表象去探索其內(nèi)在的本質(zhì)和原理。真正的學(xué)習(xí)理逊,從來都不是很輕松的橡伞,而是那種你知道得越多,你的問題就會(huì)越多晋被,你的問題越多兑徘,你就會(huì)思考得越多,你思考得越多羡洛,你就會(huì)越覺得自己知道得少挂脑,于是你就會(huì)想要了解更多。如此循環(huán)欲侮,是這么一種螺旋上升上下求索的狀態(tài)崭闲。

在學(xué)習(xí)的過程中,我們要不斷地問自己威蕉,這個(gè)技術(shù)出現(xiàn)的初衷是什么刁俭?是要解決什么樣的問題?為什么那個(gè)問題要用這種方法解韧涨?為什么不能用別的方法解牍戚?為什么不能簡(jiǎn)單一些侮繁?……
這些問題都會(huì)驅(qū)使你像一個(gè)偵探一樣去探索背后的事實(shí)和真相,并在不斷的思考中一點(diǎn)一點(diǎn)地理解整個(gè)事情的內(nèi)在本質(zhì)如孝、邏輯和原理宪哩。一旦理解和掌握了這些本質(zhì)的東西,你就會(huì)發(fā)現(xiàn)暑竟,整個(gè)復(fù)雜多變的世界在變得越來越簡(jiǎn)單斋射。你就好像找到了所有問題的最終答案似的育勺,一通百通了但荤。

學(xué)習(xí)是為了改變自己的思考方式,改變自己的思維方式涧至,改變自己與生俱來的那些垃圾和低效的算法腹躁。總之南蓬,學(xué)習(xí)讓我們改變自己纺非,行動(dòng)和踐行,反思和改善赘方,從而獲得成長烧颖。

總結(jié)

大家讀完了這幾個(gè)問答是什么感受呢?這里我簡(jiǎn)單的總結(jié)一下窄陡。

首先炕淮,就是都關(guān)心的問題,我選擇了Java跳夭,那么我以后能做什么涂圆。其實(shí)Java能做的很多,只是在現(xiàn)階段币叹,我們通過編程語言排行榜也能看到润歉,Java是穩(wěn)居前三,說明他有龐大的用戶群體颈抚,那么就代表著網(wǎng)絡(luò)上有海量的 Java 學(xué)習(xí)資料踩衩,良好的社區(qū)環(huán)境,優(yōu)秀的解決方案贩汉,以及超級(jí)多的框架學(xué)習(xí)驱富,你絲毫不用擔(dān)心自己找不到問題的解決方案,找不到學(xué)習(xí)的路徑雾鬼。

我列舉了 Java 后端的學(xué)習(xí)路線萌朱,是因?yàn)楝F(xiàn)在 Java 主要在后端發(fā)揮著作用。后端 Java 一家獨(dú)大策菜,幾乎大型的互聯(lián)網(wǎng)和大廠晶疼,銀行酒贬,金融體系后端都是 Java。

其次就是如何學(xué)習(xí)翠霍,我列舉的 Java 學(xué)習(xí)路線也是根據(jù)后端的學(xué)習(xí)路線來锭吨,其實(shí)還有挺多沒涉及到,但是給入門寒匙,是足夠了零如。

第三,就是學(xué)習(xí)方法锄弱,怎么學(xué)考蕾。說實(shí)話,編碼一直都是取決于個(gè)人的學(xué)習(xí)情況以及自律能力会宪。很多人在學(xué)校里努力肖卧,在校招的時(shí)候就能有一個(gè)好的offer,有些在學(xué)校里沒能堅(jiān)持下來掸鹅,可能畢業(yè)之后就放棄這條路了塞帐;還有些是一開始覺得很感興趣匙赞,后來發(fā)現(xiàn)自己不適合氛驮,要么學(xué)校里選擇轉(zhuǎn)專業(yè)同蜻,要么出來之后轉(zhuǎn)產(chǎn)品舀凛,轉(zhuǎn)實(shí)施等也算是改行匹中。那么宏怔,就是兩個(gè)結(jié)果坊谁,用籃球季后賽的術(shù)語就是 Win or Go Home死嗦。

判斷自己是否有毅力學(xué)習(xí)下來务甥,可以參考下我在上面的建議牡辽,當(dāng)然,如果小伙伴們有更好的建議敞临,可以在留言區(qū)給我留言态辛,讓大家一起交流交流。

還有這位老弟的問題就是挺尿,什么都沒去實(shí)踐奏黑,但是一直在擔(dān)心擔(dān)心,擔(dān)心自己不能寫代碼编矾。但是熟史,如果你不開始實(shí)踐,怎么知道自己是不是適合窄俏,是不是喜歡蹂匹,是不是會(huì)走這條路呢,對(duì)吧凹蜈。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末限寞,一起剝皮案震驚了整個(gè)濱河市忍啸,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌履植,老刑警劉巖计雌,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異玫霎,居然都是意外死亡凿滤,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門庶近,熙熙樓的掌柜王于貴愁眉苦臉地迎上來翁脆,“玉大人,你說我怎么就攤上這事拦盹【樽妫” “怎么了?”我有些...
    開封第一講書人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵普舆,是天一觀的道長。 經(jīng)常有香客問我校读,道長沼侣,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任歉秫,我火速辦了婚禮蛾洛,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘雁芙。我一直安慰自己轧膘,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開白布兔甘。 她就那樣靜靜地躺著谎碍,像睡著了一般。 火紅的嫁衣襯著肌膚如雪洞焙。 梳的紋絲不亂的頭發(fā)上蟆淀,一...
    開封第一講書人閱讀 51,708評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音澡匪,去河邊找鬼熔任。 笑死,一個(gè)胖子當(dāng)著我的面吹牛唁情,可吹牛的內(nèi)容都是我干的疑苔。 我是一名探鬼主播,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼甸鸟,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼惦费!你這毒婦竟也來了赛惩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤趁餐,失蹤者是張志新(化名)和其女友劉穎喷兼,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體后雷,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡季惯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了臀突。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片勉抓。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖候学,靈堂內(nèi)的尸體忽然破棺而出藕筋,到底是詐尸還是另有隱情,我是刑警寧澤梳码,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布隐圾,位于F島的核電站,受9級(jí)特大地震影響掰茶,放射性物質(zhì)發(fā)生泄漏暇藏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一濒蒋、第九天 我趴在偏房一處隱蔽的房頂上張望盐碱。 院中可真熱鬧,春花似錦沪伙、人聲如沸瓮顽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽暖混。三九已至,卻和暖如春某饰,著一層夾襖步出監(jiān)牢的瞬間儒恋,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來泰國打工黔漂, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留诫尽,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓炬守,卻偏偏與公主長得像牧嫉,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容