作者 | ithuangqing
來源 | 編碼之外(ID:ithuangqing)
其實我這個號從誕生的那一刻,我就知道,我所分享的東西一定離不開自學編程,也就是關於編程學習的一些方法!
有的人會覺得,這些東西,寫來寫去就是那麼回事,尤其是有了編程經驗的程序員,更會覺得,編程的學習方法就那麼回事,花時間學唄,其實我不這麼認爲!
我之前會有這樣的疑問,我覺得有些人一直寫某一塊的知識,我就好奇,一直寫這方面的東西,難道不會寫到最後無話可說嗎?因爲該寫的不都寫完了嗎?
你怎麼看待這個問題呢?
後來慢慢的,我發現自己之前的想法真的很幼稚且天真,因爲我這裏忽視了很重要的一個東西,那就是成長,人是會成長的,隨着自己的成長,自己的知識廣度和深度,以及自己的認知都是在不斷的提高的,那麼對於同樣一個問題就會出現一個不斷打磨和反覆迭代的過程。
而經過這個過程的輸出,展現給你們的東西是更加的高質量的,經驗性的東西也是會不斷的升級的,之前也許要寫3000字去給你說明一個道理,可能你還雲裏霧裏,這裏不能完全怪讀者的理解能力不行,更重要的是作者本人目前沒辦法以更少的字去把這個問題講解的更加透徹。
所以,人,是需要保持不斷學習的,你不用擔心,這些知識學來學起都是那些的問題,當你的所學達到一定高度,你的思維層面就上升了。
就好比這個問題,我當初對這個問題那是百思不得其解,覺得自己學了就忘,難受的很吶,一直在尋求如何解決這樣的問題,我當時的總結就是,爲什麼我們會學了就忘呢?大概有如下幾個原因:
知識沒有用起來
知識缺少必要的複習
知識的學習不成體系
知識學習方法有問題
怎麼樣?你覺得是這樣嗎?我當初似乎找到了問題所在,那怎麼解決這個問題,我的解決辦法就是輸出,也就是寫博客,然後集中系統化的去學習一個系列的知識,然後把它輸出出來,就比如我自知,自己的計算機基礎知識比較差,於是我就集中的去做這塊的輸入和輸出,然後就有了以下文章:
(還有更多,就不一一列舉了)
是的,剛寫完這些文章的那段時間,我覺得自己的基礎還是可以的,覺得心裏的知識量鼓囊囊的,但是現在,對,就此時此刻的我看着這些標題,我又迷茫了,不知道自己都寫了什麼……
是的,我又忘了……
這還寫個錘子啊,知識學了就忘不還是沒有解決嗎?不過,我得告訴你,這並不是全部!
雖然以上我寫的東西,我覺得我忘了,是的,我說我是覺得我忘了,實際上呢?看到某一個標題,我還是有點印象的,然後重點是,我點開看這篇文章,很多熟悉的字眼立馬就來了,有些內容,我甚至能回想出當初思考它的時候是怎麼想的,然後我可以用比較快的時間去看這篇文章所講的內容,然後我就會突然覺得自己腦海中之前這塊的知識被突然喚醒了。
這也許就是輸出的真正意義所在吧!
有時候做筆記,說的是爲了以後看,但是實際上以後看的機會很少,不過這個做筆記的過程,就是建立知識結構的過程,這個過程遠比以後看有效多了,你說呢?
還有一點就是我在寫這些文章的時候,當時確實是下功夫了,其中我記憶比較牢固的一個知識點就是關於鏈表的理解,之前我對鏈表一直不太理解,搞不懂這是個啥玩意,但是當我真正下功夫去研究學習它的時候,我發現當我真正的去理解了它的時候,我基本不會忘記它了,就是說這個知識真的成了你的知識了,這種感覺超棒的。
所以,輸出真的特別重要!
經歷這樣的一個過程,讓我對知識學了就忘的問題不那麼恐懼了,但是實不相瞞,它依然是我的一個心結,我還是會是不是想起它,伴隨而來的是無助與難受。
直到有一次我請教了幾位大佬前輩,得到以下兩句話:
1、不要把知識遺忘當成問題去解決,你解決不了的,知識遺忘是一件正常的事情
2、忘了就忘了,忘了就再看看,用的多了自然就記住了,用的不多的記它幹嘛
首先第一句話,讓我擺正心態,正確去面對知識遺忘這個問題,從心裏慢慢接受這不是個問題,另外第二句就是讓我知道得不斷的去學習去輸出,去把知識用起來,如果沒有實際運用的場景,那如何達到“用的多了自然就記住了”的一個狀態呢?
答案是,真正的去理解它,反覆強化這一知識點,讓其成爲長期記憶!
好了,看到這裏,我有沒有幫你解決知識學了就忘這個問題呢?
接下來,咱們來談第二個問題。
很多私底下詢問我關於自學編程問題的人,我都會告訴他們,編程這個行業需要你持續不斷的學習,因爲技術的更新迭代非常的快,而且要學習的知識點真的是特別的多,所以,對於一個想要自學編程的人來說,掌握正確的學習新知識的方法,尤爲重要!
那這樣的方法有人告訴你嗎?不管有沒有,反正我今天要和你分享一下,所以等下看完記得點贊哦!
你覺得最好的學習新知識的方法是什麼?對於編程來說,我們大致把它分爲理論和實戰,就是你學習的知識,後期是可以用到的,那這個該如何學習?
大部分人應該是先學習理論知識,之後再去實戰,這其中會存在一個嚴重的陷阱,就是很多人學了無數次的理論,卻不曾有一次的實踐。
由於知識遺忘是個正常現象,所以你這樣的學習其實是付出和收穫不成正比的。
那學習新知識的方法是什麼呢?
其實啊,最好的方式就是邊學邊用,也可以說,理論和實踐要五五開,甚至實踐還要多一點,不要只學不用,然後這樣的效果其實還不好,想要更好的效果,你還得把自己學到的東西交給別人,是的,這就是所謂的費曼學習法,把所學教授他人,做到輸出,有入有出,然後你還可以讓你的學習效果更好一點,是什麼呢?就是你要注重輸出這一步,就是不能爲了輸出而輸出,你必須得做到真正的明白,教授他人的時候,你得保證給別人教懂啊,不要自己費盡口舌,別人一臉懵逼,這就不行了。
那怎樣才能做到真正的明白呢?就是你可以用自己的話敘述出來,而且說給別人,別人能聽懂,你要知道,能做到這樣,說明你對這一知識點是真的理解了。
現在有很多的技術文章,看起來就跟讀書一樣,完全看不到作者自己對這塊的一個思考,這樣就很沒意思,這個可以忽略,就是突然想起來吐槽一下!
所以這裏就有兩個重要的方法:
教別人
做到能複述
這裏我想特別強調一下複述,爲什麼要把知識自己能夠複述出來呢?因爲我們一般死記硬背的知識都是最原始的一些知識,但是對於一個知識,你如果能複述出來,則說明,你在複述的過程中和學習這個知識的過程中是有自己的理解的,這點非常重要。
這樣做的好處就是,你不但清晰的瞭解了這些信息,而且更重要的是由於你的理解,它們都內化成了你的知識,也就是形成了長期記憶。
ok,到了這裏,本文就結束了,如果你能隻字不差的讀到這裏,說明你是一個具備深度閱讀能力的人,恭喜你,你已經超越99%的人了。
好啦,看在我寫的那麼幹的份上以及文章結束還不忘誇上你一句,點個贊給個在看如何,我保證,下一篇文章更幹,我誇的更好聽!
下期見!
— 【 THE END 】—
本公衆號全部博文已整理成一個目錄,請在公衆號裏回覆「
m
」獲取!
3T技術資源大放送!包括但不限於:Java、C/C++,Linux,Python,大數據,人工智能等等。在公衆號內回覆「1024」,即可免費獲取!!
本文分享自微信公衆號 - 程序員書單(CoderBooklist)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。