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