再見了……自學(xué)編程
本文原本是準(zhǔn)備只發(fā)在星球內(nèi)的,可是我覺得這篇文章對那些自學(xué)編程的朋友應(yīng)該很有幫助,于是就發(fā)出來給大家,也希望球友不要介懷,后面肯定會有更多星球?qū)賰?nèi)容!
大家存在的問題
為什么說自學(xué)編程很難?因為編程,一直都是一件有門檻的事情,不然你以為為啥別人拿20K,你只能拿5K啊……
先看大家在自學(xué)編程中遇到的一些典型問題:
1、學(xué)了就忘,知識記不住,學(xué)了等于白學(xué)
2、越學(xué)越感覺自己啥也不會
3、越學(xué)越覺得知識太多,而且雜亂
4、覺得自己付出很多,貌似沒啥收獲
5、一旦遇到問題,無從下手
6、陷入深深焦慮
7、無限循環(huán)
以上都是大家在自學(xué)編程中會遇到的一些非常典型的共性問題,為什么會這樣,除了上面說的編程本身就是一件有門檻的事情之外,另外一個重要的原因就是,這個行業(yè)啊,本身就是一個知識密度大且問題繁多,而且技術(shù)發(fā)展更新迭代非常快,再加上現(xiàn)在卷的厲害,你稍不留神,你就落后了!
之所以出現(xiàn)上述種種無問題,一句話就是“你沒有屬于自己的方法”
為什么我覺得方法很重要我一直覺得自己是個普通人,所以一些共性問題我基本都會遇到,我不覺得自己有什么過人的天賦可以讓我輕輕松松去解決工作學(xué)習(xí)和生活中遇到的某些問題,就比如編程自學(xué)這塊,我也是遇到好多的問題,其過程真的是無比痛苦,想必一定有感同身受之人!
那面對這個情況,我從很早就產(chǎn)生一個想法,在我學(xué)習(xí)當(dāng)中,我必須給自己找一個方向,定一個路線,而且是一個正確有效的路線,然后我可以按照這個方向,盡管去努力就好了,在我是個不怎么聰明且沒有天賦的情況下,我必須有一個可以踐行的準(zhǔn)則以及指導(dǎo)我前進的方向,否則,我覺得我的人生會很亂,會浪費很多時間也不會有些什么明顯的進步!
這就是我在學(xué)習(xí)編程中一直很重視學(xué)習(xí)方法的原因,我覺得有了學(xué)習(xí)方法之后,學(xué)習(xí)會更加的明確,也會對未來更加的充滿希望,盡管我的學(xué)習(xí)方法可能并不是很正確或者存在不少的瑕疵,但是這些都不重要,只要有了,我覺得就有了方向,我就可以在這個方向上只管努力就行了,而且隨著自己的認(rèn)知不斷升級,我的這個方法也會不斷的更新迭代,但是如果沒有這個方法作為根基,那我想,我的學(xué)習(xí)會是一團糟,就好比那無頭蒼蠅一般……
人和神是不同的你相信人和人是有智商差別的嗎?
慢慢的我相信了,而且有的人真的讓你感覺像神一樣,我們學(xué)習(xí)Java的都應(yīng)該認(rèn)識一個神級人物,就是這位:
大名鼎鼎的“Doug Lea”,就是他,寫了Java中的并發(fā)包,你要是仔細了解他之后,你真的會發(fā)出一聲感嘆:
人和神是不同的
在編程學(xué)習(xí)這件事情上,有些人真的是特別的強,你不服都不行,我就知道很多比我年齡還小的,人家就是架構(gòu)師,資深專家,被譽為天才少年什么的,不服?不行?。?/span>
在你還在為知識學(xué)不會發(fā)愁的時候,人家已經(jīng)是精通各種底層原理了,你怎么比,我曾經(jīng)咨詢過一位這樣的大佬:
“請問你是如何解決知識遺忘的問題呢?記筆記嗎?”
“不,我從不記筆記,忘了就再看看,用的多了就記住了,用的不多的記它干嘛”
說的對嗎?我覺得很有道理,但是,我知道自己達不到這樣的層次,或者說很難去這樣做,所以,我還是習(xí)慣去記筆記,把一些知識學(xué)習(xí)之后經(jīng)過自己的思考重新整理梳理,再用自己的話敘述出來,記錄下來,我覺得這對我非常有幫助,而且可以幫我解決知識遺忘的問題!
在理解了人和人始終存在差別之后,我發(fā)現(xiàn),選擇適合自己的才是最重要的!
分享我的方法那接下來我就重點介紹那么久以來我總結(jié)的學(xué)習(xí)方法,希望能幫助大家更好的自學(xué)編程!
有些人是不太相信有什么學(xué)習(xí)方法可言的,覺得只是唯手熟爾,而且認(rèn)為方法論的東西是一件很虛的東西,這個我不反對,我一直覺得,任何一件事情,都會存在反對與支持,這個太正常了,我甚至覺得這是一件好事!
所以,接下來的分享可能更加適合那些對“方法”二字沒什么偏見或者抵觸的人!
首先,我也承認(rèn)這樣的一個事情,就是“方法”的確是一個很虛的東西,以至于有的時候我在看別人分享的方法之后覺得說了跟沒說一樣,或者根本不知道在說什么,又或者方法有些道理,但是沒有指明該怎么做以至于這個方法只能是個很虛的概念!
所以我在整理“方法”的時候盡量避免自嗨以及盡量可執(zhí)行化,就是讓你明白一個理念之后你還能知道怎么去做!
先說怎么做以下是我整理總結(jié)的自學(xué)編程的步驟,無論你是學(xué)習(xí)Java還是python,你都可以按照下面的步驟去操作:
第一階段:攬全局第二階段:重實戰(zhàn)默認(rèn)你是完全零基礎(chǔ),新手小白,找本書,或者一套視頻教程,或者一套Java自學(xué)手冊,比如慶哥寫的這個,開始學(xué)起來,跟著學(xué)就對了,先學(xué)完一本書,看完一套視頻教程再說,其他的都是在浪費時間!同時學(xué)的時候一定要進行教程式筆記記錄,否則你的學(xué)習(xí)將毫無用處,不懂教程式筆記的一定找慶哥請教,對你們太重要了!
第三階段:讀源碼我在初期自學(xué)Java的時候就陷入了這樣的問題,就是只學(xué)理論,實戰(zhàn)幾乎沒有,導(dǎo)致學(xué)習(xí)效果很差,在進行完第一階段之后,記得,直接懟項目,查漏補缺,發(fā)現(xiàn)知識盲點,然后去攻克,這樣進步才快!
第四階段:補內(nèi)功這一階段是專題深入式的學(xué)習(xí),就是把一些高頻重點知識點單獨拿出來進行專題式攻克學(xué)習(xí),要做到的就是不僅知其然還要知其所以然!
第五階段:成面霸這一階段就是學(xué)習(xí)計算機基礎(chǔ)知識了,這個知識的重要性不需要多少,學(xué)就對了,萬丈高樓平地起,勿在浮沙筑高臺!
相信我,面試這一關(guān)值得你花心思去學(xué)習(xí)!
好了以上就是學(xué)習(xí)Java的具體步驟了,當(dāng)然,限于篇幅,我只說了精華,其中有不了解的,可以找慶哥詳細探討!
再次強調(diào)一下,以上說的是總的學(xué)習(xí)步驟,但是我發(fā)現(xiàn)還是有很多人看了不知道怎么做,這里簡單解釋一下,以上五個具體步驟是告訴你該學(xué)習(xí)哪些內(nèi)容,但是需要你自己去找學(xué)習(xí)資料的,比如第一階段攬全局,你得去買一本書或者找一套視頻教程來學(xué)習(xí),第二階段需要你自己去找相應(yīng)的實戰(zhàn)項目去學(xué)習(xí),懂了吧,告訴你怎么學(xué)習(xí)了,你得自己找資源去學(xué)習(xí)啊!
現(xiàn)在這網(wǎng)絡(luò)時代,最不缺的就是學(xué)習(xí)資源了,千萬不要想著別人什么都給你準(zhǔn)備好,除非你愿意付費!
重點說方法那接下來我將重點解讀下我所踐行的學(xué)習(xí)方法,總結(jié)起來就一句話:
系統(tǒng)化學(xué)習(xí)和教程式筆記
看起來很簡單,理念需要仔細理解,否則你是get不到真正的點的!
我相信現(xiàn)在你一定感覺到,我們?nèi)粘I钪械乃槠瘯r間越來越多了,我不知道你是怎么利用這些碎片化時間的,首先說明一點,我認(rèn)為,碎片化時間是不適合學(xué)習(xí)的!
為了讓大家有個更清晰的認(rèn)識,我還是舉幾個碎片化時間的例子吧:
1、吃飯的時候,尤其在外面吃飯的時候
2、等車,坐車,排隊等
3、上廁所……
4、睡前
5、放空
6、……
OK,有這個場景概念了吧,那這些時間我認(rèn)為是不適合學(xué)習(xí)的,對于這些時間,我通常這樣利用:
1、刷抖音
2、看文章(技術(shù)文章一定看自己學(xué)過寫過的,其他的不看)
咋樣,我的利用方式和你一樣嗎?有的人會說,這樣的時間,我一般會用來刷劇,其實我之前也會這樣,但是慢慢的我發(fā)現(xiàn)刷劇這件事情也是需要系統(tǒng)化時間來進行的,否則,幸福感太低!
那說了這么多,啥是系統(tǒng)化學(xué)習(xí)呢?其實對于系統(tǒng)化學(xué)習(xí)這個概念,網(wǎng)上也有不同解讀,可能我這個是最普通的了,要說系統(tǒng)化學(xué)習(xí),需要先說說什么是系統(tǒng)化?
對比之前說的碎片化時間,這里的系統(tǒng)化我指的是就是那些系統(tǒng)化的時間來說的,所謂系統(tǒng)化的時間就是指的你有可自由利用的一整塊的時間,我通常將其限定為最低一小時,也就是說在這一小時里你可以想干什么就干什么,你是可以完全自由支配,不會有人來打斷,可以持續(xù)利用完這一小時。
那以上是針對時間而言的系統(tǒng)化,那系統(tǒng)化的學(xué)習(xí)是怎樣的呢?這個要拿碎片化的學(xué)習(xí)來對比,什么是碎片化的學(xué)習(xí)呢?比如,突然看到一篇講解CopyOnWriteArrayList,然后你就去看看,然后過了一會又看到講解IOC的文章,好在去看看,過了一個小時又在B站看jvm內(nèi)存模型,晚上的時候又在學(xué)習(xí)分布式鎖,我把這樣的學(xué)習(xí)稱為碎片化的學(xué)習(xí)!
看似這一天你又是學(xué)習(xí)多線程,又是學(xué)習(xí)虛擬機,還有框架什么的,但是在我看來,沒什么用,除了自我滿足以外,你的學(xué)習(xí)并沒有什么效果!這種碎片化學(xué)習(xí)是我不提倡的!
而且,如果上述碎片化學(xué)習(xí)過程中你沒有任何產(chǎn)出,我覺得就是存粹在消磨時間而已!
??想一下,為什么你會覺得知識學(xué)不完,知識多,學(xué)了就忘,學(xué)了很多感覺還是不怎么會?get到了嗎?
怎么辦?你需要的是系統(tǒng)化學(xué)習(xí)!
上面解釋了什么是系統(tǒng)化時間,而這個系統(tǒng)化的學(xué)習(xí)指得就是在系統(tǒng)化時間內(nèi)去集中學(xué)習(xí)一個專題知識,直到你將其80%的常見知識點都學(xué)完!
舉例來說,就是在你可自由支配的這一個小時的系統(tǒng)化時間內(nèi)集中去學(xué)習(xí)多線程的知識,當(dāng)然,可能這一個小時你并不會學(xué)完多線程,你也不可能學(xué)完,但是你要記住,你的下一個系統(tǒng)化時間一定還是學(xué)習(xí)這個多線程!
另外,知識都是可以深入挖掘的, 很多都不是你一時間內(nèi)可以完全掌握的,所以不要想著把所有的都全部弄懂學(xué)會,不可能也不現(xiàn)實,只需要掌握80%即可,就是常見的你得學(xué)會,怎么把握這個常見,看看面試題會問哪些,面試題上出現(xiàn)的你得搞懂!
總的來說,什么是系統(tǒng)化學(xué)習(xí)?主要就是“系統(tǒng)化”二字,就是盡量整體,而不是被分散,時間要盡可能是一整塊大時間,學(xué)習(xí)要是集中學(xué)習(xí)某一塊知識,整體,整體,整體,get到了嗎?
脫離了“教程式筆記”的“系統(tǒng)化學(xué)習(xí)”啥也不是!
我這里介紹的系統(tǒng)化學(xué)習(xí)和教程式筆記必須是相輔相成的,少了誰都不行,這是一個完整的學(xué)習(xí)方法,那什么是“教程式筆記”?
說到底還是筆記,但是絕不是最低級的那種筆記,什么是最低級的筆記:
從書中摘抄或者視頻中截屏然后粘貼到文檔保存
我把這種筆記稱作最低級的筆記,我發(fā)現(xiàn)有大量的人是這樣記筆記的,不能說沒用,只能說作用微乎其微,其實最好的一種筆記方式就是寫博客,這里面有個很重要的點就是,博客一定是這樣的:
1、對應(yīng)的知識自己學(xué)過一遍
2、有自己的理解和思考
3、相關(guān)代碼示例自己實操過
4、用自己的話敘述整理
5、寫出文章,不僅自己能看,別人也可以看
這才是一篇好的筆記,也是一篇合格的博客,那我這里的教程式筆記就是這樣的很多個博客組成的教程,還記得之前說的系統(tǒng)化學(xué)習(xí)吧,在你進行系統(tǒng)化學(xué)習(xí)的時候,針對每一個知識點都要寫一篇這樣的博客,然后整理在一起,分本別類,形成非常系統(tǒng)化完整的一份筆記教程,就比如我學(xué)習(xí)Java寫的這份30萬字的教程式筆記:(后臺回復(fù)“手冊”獲?。?/span>
還不懂什么是教程式筆記的就可以參考我這個來,你就看我這個筆記,是不是不僅僅是筆記啦,馬上可以稱為一本書了,非常的完整系統(tǒng)!
所以,系統(tǒng)化學(xué)習(xí)和教程式筆記是相輔相成的,必須在一起才能發(fā)揮作用!
在你進行了系統(tǒng)化學(xué)習(xí)和教程式筆記之后,你就可以更好的去利用碎片化時間了,怎么辦,就是我之前說的看文章,而且是看那些你系統(tǒng)化學(xué)習(xí)過的知識點,為啥,一句話說明白“溫故而知新,可以為師矣”,咋樣,get到了吧?
好啦,到了這里,本文的分享就結(jié)束啦,以上就是我這四年以來自學(xué)編程所有經(jīng)驗的精華總結(jié)了,不知道你讀懂了多少,but,如果你覺得本文還不錯的話,麻煩點個贊吧,原創(chuàng)不易,需要鼓勵,在此謝過!
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。