更快學(xué)習(xí) JavaScript 的 6 個思維技巧
我們在學(xué)習(xí)JavaScript,或其他任何編碼技能的時候,往往是因為這些攔路虎而裹足不前:
-
有些概念可能會造成混淆,尤其當(dāng)你是從其他語言轉(zhuǎn)過來的時候。
-
找不到時間(有時是動力)學(xué)習(xí)。
-
很容易忘記已經(jīng)理解了的東西。
-
工具多又在不斷變化,所以不知道從哪里開始。
幸運的是,這些攔路虎是可以被識別,并消滅的。在這篇文章中,我將介紹六個思維技巧來幫助你更快地學(xué)習(xí)JavaScript,并成為一個更快樂、更富有成效的程序員。
1.不要讓未來的決策阻止你現(xiàn)在前進(jìn)的方向
很多人學(xué)習(xí)JavaScript,問的第一個問題往往是“我應(yīng)該使用哪個框架?”。但是,如果你還沒有掌握最最基礎(chǔ)的JavaScript,那這顯然是一個錯誤的問題。你將你所有的時間用來研究不同的框架,于是,你開始停滯不前。
幫助擺脫這種陷阱的方法之一是畫一個你需要學(xué)習(xí)的路線圖。例如,要想成為一個前端開發(fā)者,你的路線圖可能是這樣的:
進(jìn)一步分解的話,你可以做一個只有HTML和CSS的功能性web頁面。然后像這樣一步步列出每個步驟,那么對于現(xiàn)在應(yīng)該專注于做什么,就一目了然了。你也不會浪費時間去擔(dān)心應(yīng)該以后操心的事情。
如果你覺得這種路線圖很有用,那么可以看看我以前寫的《learning road map for becoming a front-end developer》,里面介紹得很詳細(xì)。(注:對于學(xué)習(xí)JavaScript的路線,你也可以參考學(xué)習(xí)Javascript的8張思維導(dǎo)圖這篇文章)
2.不要讓自信誘騙你忘事
快速了解一個概念,也許是學(xué)習(xí)JavaScript的道路上最影響你進(jìn)步的事情之一。下面請允許我解釋一下。
當(dāng)你讀到某些東西,你覺得的確如此的,那么很可能就會直接跳到下一個內(nèi)容。然后你覺得接下來這個內(nèi)容也非常淺顯易懂,于是繼續(xù)往下看。但很快,你會 發(fā)現(xiàn)你已經(jīng)忘記了前面自認(rèn)為已經(jīng)掌握的內(nèi)容,所以只能回過頭去溫習(xí)。你快速地瀏覽了一遍,感覺又明白了,然后繼續(xù)前進(jìn)。但是你又發(fā)現(xiàn)自己忘記了別的東西。 你一直處在這個循環(huán)中,直到最終迷失了自己。你不由地氣餒,想著那先休息一下吧,然而當(dāng)你休息完了再回來的時候,你發(fā)現(xiàn)你已經(jīng)忘記了所有的內(nèi)容。
解決這個問題,也很簡單,只需要兩步:
-
限制一次學(xué)習(xí)的量。
-
實踐——實際編寫代碼。
當(dāng)你去學(xué)習(xí)一個新概念的時候,一定要試用它,擺弄它,熟悉它,甚至將它和其他概念結(jié)合起來。而且實際輸出到示例代碼中非常重要,因為這能幫助你消化吸收它。此外,限制一次學(xué)習(xí)的量,有助于記住資料,道理也很簡單,東西越少越好記。
雖然這種學(xué)習(xí)進(jìn)程會讓你感覺所需的時間更多,但實際上恰恰相反,因為你不再需要走那么多的回頭路。我也是經(jīng)過了很多次慘不忍睹的教訓(xùn)才明白了這個技巧。
3.用正確的心態(tài)去做練習(xí)
很多人認(rèn)為反復(fù)的練習(xí)特別無聊,所以他們通常會選擇跳過或嘗試走捷徑。如果你快進(jìn)JavaScript練習(xí),那么最終反而需要更多的學(xué)習(xí)時間。試著讓練習(xí)變得令人感興趣,這樣是不是就不會那么抗拒呢?
試著轉(zhuǎn)變心態(tài):
如果讓你學(xué)習(xí)一個新的JavaScript概念,卻不能試試,會怎么樣?你是什么感覺?從我個人而言,我會特別懊惱。這就像一個孩子得到一個新的玩具,卻不能玩一樣。
當(dāng)你學(xué)習(xí)JavaScript中一些新內(nèi)容的時候,試著將它當(dāng)作新玩具,新車,新鞋,或者其他任何你有興趣嘗試的東西。然后不要將練習(xí)當(dāng)作工作,要將練習(xí)當(dāng)作是玩耍。用新技能去嘗試一些很酷的東西。讓你自己都不由的驚嘆。然后顯擺給你的朋友看。
用一種游戲的心態(tài),你會學(xué)得更快,記得更久,擁有更多的樂趣。
4.寫代碼的時間魔法
在學(xué)習(xí)JavaScript中最常見的問題是,找不到時間寫代碼。但是,與此同時,卻有大把大把的時間瀏覽各種網(wǎng)站,如Facebook,YouTube,維基百科和Reddit等。
我有好幾次,一開始只是想打開Facebook,看一小會,然后不知不覺就發(fā)現(xiàn)已經(jīng)看了幾個小時。這是怎么發(fā)生的呢?或許正是因為我并不打算看很長 時間。萬事開頭難,一旦開了頭,后面陷進(jìn)去就變得容易多了。但是如果有人問我,是否愿意花時間在Facebook上,我會堅決地說不,因為我本身時間就不 夠用。然而,只允許看一會會時間往往更容易接受,然后深陷其中。
好消息是,你也可以利用同樣的心理來學(xué)習(xí)寫代碼。一開始不要想著要編碼幾小時,因為你永遠(yuǎn)找不到這么多的時間。就告訴自己你要去寫3分鐘的代碼。這樣你永遠(yuǎn)也不用愁擠不出時間了。
5.思考得更慢,學(xué)得更快
這聽起來貌似有悖常理,下面我會用一個小故事解釋。
我的一個朋友曾經(jīng)對JavaScript的某個功能感到困惑。于是,我讓他詳細(xì)地說一遍哪些是他知道的,然后給他解釋他感到困惑的那部分。不過,當(dāng)他檢查代碼片段的時候,我注意到有一段代碼,他說得非常倉促。
“等一下!”我說, “慢點講,每一步都詳細(xì)地說一下。”
我的朋友繼續(xù)給我做代碼發(fā)生了什么的全面總結(jié)。
我只好再次叫住他。 “你還是太倉促了。再試一次,但這次,我希望你能從字面上去檢查每一行代碼,告訴每一行的代碼都發(fā)生了什么。”
這次,我的朋友終于能夠很好地解釋代碼中正在發(fā)生什么。問題的關(guān)鍵是,他終于可以一步一步地檢查了代碼片段,而不是囫圇吞棗想要一次性理解所有代碼。
在類似于這樣的情況下,思考得更慢實際上能讓你學(xué)得更快。
6.首先用簡明的語言來寫復(fù)雜的代碼
如果碰到一段復(fù)雜的或你不熟悉的代碼,那么先用通俗易懂的語言寫出來。這樣一來,你就可以在寫代碼之前明確地知道你想要代碼做什么。這么做有兩個好處:
-
代碼更易寫,因為你不需要總是停下來想,你想要它表現(xiàn)什么。
-
在bug發(fā)生之前就能捕捉到,因為你對代碼應(yīng)該做什么有一個明確的概念。
結(jié)論
我們已經(jīng)討論了一堆如何更快地學(xué)習(xí)JavaScript的方法,而且你也可以將這些技巧應(yīng)用到其他的技能上。下面來回顧一下:
-
不要擔(dān)心以后會做什么決策,先好好深入學(xué)習(xí)。
-
將新技能當(dāng)作玩具一般快樂地練習(xí)。
-
以小承諾的方式找時間來寫代碼,就像你一開始安慰自己只逛一小會時間網(wǎng)站。
-
慢下來,步子邁的越小,學(xué)得越快。
對了,你是怎么學(xué)習(xí)的?你有什么好的技巧嗎?或者,你認(rèn)為我說的全是一派胡言,唯一的學(xué)習(xí)途徑就是一天12小時地投入進(jìn)去?無論是什么,歡迎不吝點評。
譯文鏈接:http://www.codeceo.com/article/6-ways-learn-javascript-fast.html
英文原文:Six Simple Mind Tricks to Help You Learn JavaScript Faster