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