當(dāng)人們試圖學(xué)習(xí)JavaScript或其他編程語言的時候韧骗,他們通常會遇到如下挑戰(zhàn)。
o? ? 一些概念讓他們感到困惑零聚,特別是如果之前學(xué)過其他類型的語言袍暴。
o? ? 很難找到學(xué)習(xí)的時間(或者動力)去學(xué)習(xí)。
o? ? 你很容易忘掉之前學(xué)到的東西隶症。
o? ? JavaScript工具太多并且經(jīng)常更新政模,以至于很難找到學(xué)習(xí)的切入點(diǎn)。
幸運(yùn)的是蚂会,這些難題最終能夠被克服淋样。在這篇文章,我將展示六個能夠幫助你更快胁住、更開心趁猴、更高效地學(xué)習(xí)JavaScript的六個思維技巧。
1? ?不要讓未來的憂慮干擾你現(xiàn)在的學(xué)習(xí)
有些JavaScript初學(xué)者會問剛開始要學(xué)習(xí)哪種框架彪见,但是如果你還沒能熟練使用原生JavaScript儡司,你就不應(yīng)該問這種問題。因?yàn)槟銜ê芏鄷r間研究各種框架而得不到進(jìn)步余指。
走出這個陷阱的一個方法是制定一個學(xué)習(xí)路徑圖捕犬。例如,要成為前端開發(fā),你的路徑圖可能是下圖或听。在將來你能夠使用HTML和CSS制作動態(tài)頁面探孝。
將上圖步驟分開執(zhí)行,每個時間段只專注于提高一項(xiàng)技能誉裆,你將不會把時間浪費(fèi)在擔(dān)心后面的技能上顿颅。
2? ?不要讓自信騙你進(jìn)入持續(xù)遺忘的陷阱
快速理解一個概念會是JavaScript進(jìn)步的最大阻礙,下面我將解釋足丢。
當(dāng)你遇到一個知識點(diǎn)粱腻,而你好像理解了,你很可能抑制不住內(nèi)心跳到下一個知識點(diǎn)的沖動≌兜現(xiàn)實(shí)可能是你會理解下一個知識點(diǎn)然后繼續(xù)跳到下一個知識點(diǎn)绍些。但是,很快你會到達(dá)一個節(jié)點(diǎn)耀鸦,在這個節(jié)點(diǎn)你發(fā)現(xiàn)自己已經(jīng)忘了前面所學(xué)柬批,于是你需要回過頭復(fù)習(xí),你快速瞟了一下之前所學(xué)然后又繼續(xù)學(xué)習(xí)新的知識袖订。但是現(xiàn)在氮帐,你忘記了其他東西。你一直重復(fù)這種繼續(xù)-回顧-繼續(xù)-回顧模式直到你發(fā)現(xiàn)自己完全迷失洛姑。你開始沮喪上沐,想要休息,然后當(dāng)你開始重振旗鼓楞艾,卻發(fā)現(xiàn)自己已經(jīng)忘掉所有参咙。
幸運(yùn)的是,我們有兩個應(yīng)對上述問題的方法:
1.? ? 一次只學(xué)一樣?xùn)|西
2.? ? 做練習(xí)-實(shí)際上是敲代碼
當(dāng)你學(xué)習(xí)一個新的概念硫眯,你要將它實(shí)踐出來蕴侧,練習(xí)它,與它和善相處两入,甚至能夠?qū)⑺c其他概念聯(lián)系到一起戈盈。當(dāng)你學(xué)習(xí)一個示例,最重要的是你要自己將代碼敲出來谆刨,這樣能幫助你吸收它。另外归斤,一次只學(xué)一個東西能夠幫助你鞏固所學(xué)痊夭,因?yàn)橛洃浉俚臇|西更容易。
這個過程看起來貌似比閱讀然后快速跳到下一個知識點(diǎn)要花費(fèi)更長的時間脏里,但是實(shí)際上它所花的時間更少她我,因?yàn)檫@樣你就不需要頻繁復(fù)習(xí)之前所學(xué)。我在好幾個場合后才艱難的領(lǐng)悟到這個道理。
3? ?使用正確的思維方式練習(xí)
很多人認(rèn)為敲代碼是煩人的重復(fù)性工作番舆,所以他們通常會跳過這個步驟試著尋找捷徑酝碳。如果你試圖為JavaScript練習(xí)尋找捷徑,你將會為此花費(fèi)更多的時間恨狈。但是我們?nèi)绾尾拍苁沟们么a更加的有趣疏哗,使得我們愿意去敲代碼呢?
試著改變?yōu)橄旅娴乃季S模式:
如果你剛學(xué)了一個JavaScript概念禾怠,然而你被告知不能使用它返奉,對此你感覺如何?個人來說我會感到有點(diǎn)惱火吗氏,特別是為了弄懂它我花費(fèi)了寶貴的時間芽偏。這就像是一個小孩得到了一個新的玩具,但卻被限制不能玩它弦讽。
當(dāng)你學(xué)習(xí)JavaScript的新知識污尉,試著將這個知識點(diǎn)視作一個新玩具,例如新車往产、一雙新鞋被碗、或任何你覺得值得有趣的東西。然后捂齐,不要把敲代碼當(dāng)成工作蛮放,將敲代碼視作你正在玩游戲。你正在使用剛學(xué)的技能做一些很酷的事情奠宜。給自己驚喜包颁,把成果展示給你的朋友。
帶著游戲的思維模式你將學(xué)得更快压真,將記憶的更牢娩嚼,同時你將體會到更多樂趣。
4? ?使用Facebook技巧為編程騰時間
人們遇到的一個普遍問題是滴肿,他們通常找不到時間去敲代碼岳悟。
通常,這些人會花好幾個小時瀏覽例如Facebook泼差、YouTube贵少、Wikipedia或者Reddit這樣的網(wǎng)站。無論你是否符合上述描述堆缘,我們都能從中學(xué)到一些東西滔灶。
我當(dāng)然有時間只瀏覽Facebook一會兒,但通常我會在上面待好幾個小時瀏覽往返吼肥。這是如何發(fā)生的录平?我認(rèn)為原因在于麻车,剛開始我并沒打算花在這上面花費(fèi)那么多時間。開始行動是做一件事情最困難的部分斗这,所以將目標(biāo)設(shè)定的足夠小能夠幫助我們進(jìn)入狀態(tài)动猬。如果有人問我是不是打算花幾個小時瀏覽Facebook,我會回答不表箭,因?yàn)槲覜]有時間赁咙。然而,對于僅僅嘗試一下我是能夠接受的燃逻,這也是我能夠沉浸其中的方法序目。
好消息是,你能夠?qū)η么a運(yùn)用同樣的心理技巧伯襟。不要計(jì)劃花幾個小時敲代碼猿涨,因?yàn)槟銜l(fā)現(xiàn)自己沒有時間。相反的姆怪,告訴自己只敲三分鐘代碼叛赚。這樣你就不需要為尋找敲代碼的時間煩心。
5? ?思考的更慢你將學(xué)得更快
這一條聽起來違反直覺稽揭,所以下面我將用一個故事來解釋俺附。
我的一個朋友又一次對JavaScript的一個特性感到困惑。我讓他將他知道的解釋給我聽溪掀,然后告訴我哪兒讓他困惑事镣。當(dāng)它向我解釋代碼,我發(fā)現(xiàn)他在跳步揪胃。
“等會兒璃哟!”我說道『暗荩“慢慢來随闪,然后將這些一步步解釋給我聽∩Э保”
我的朋友直接將整個代碼的功能總結(jié)給我聽铐伴。
我再次讓他暫停∏味铮“你還是在跳步当宴。再解釋一次,這次我需要你一步步將每一行代碼發(fā)生了什么解釋給我聽泽疆〖垂”
這一次,我的朋友能夠更好的解釋代碼是如何運(yùn)行的于微。關(guān)鍵在于他花時間去理解每一行代碼而不是試圖一下理解所有逗嫡。
在上述這種案例中,思考的更慢實(shí)際上讓你學(xué)得更快株依。
6? ?在寫復(fù)雜代碼前先用簡單語言寫下
如果你要寫的代碼是復(fù)雜并且不常見的驱证,先用簡單語言將代碼寫下。這樣恋腕,你能夠你能夠在真正寫之前知道自己要做什么抹锄。下面是使用這個方法的兩個好處:
1.? ? 你將更容易更快速的寫代碼,因?yàn)槟悴恍枰獣r刻停下來思考自己將要怎么做荠藤。
2.? ? 由于你知道代碼要干什么伙单,能夠更好的排除錯誤。
7? ?總結(jié)
我們已經(jīng)講了好幾個更快速學(xué)習(xí)JavaScript的方法哈肖,但是你也能將上述方法運(yùn)用于學(xué)習(xí)其他東西吻育。下面是上述方法的概括:
1.? ? 不要再想將要學(xué)什么,沉浸于現(xiàn)在
2.? ? 通過把新技能當(dāng)做玩具使得練習(xí)更有趣
3.? ? 就像瀏覽Facebook淤井、YouTube之類的網(wǎng)站一樣布疼,在敲代碼前告訴自己只敲幾分鐘,這樣你就擁有了敲代碼的時間
4.? ? 慢下來币狠,小步向前游两,你將學(xué)得更快
ps:這段時間看到一篇文章《前端這條路,我們該何去何從》漩绵,看完后贱案,覺得很真實(shí),卻又透露了很多東西止吐。在前端的世界里很多這樣的事宝踪,有興趣的可以去看看,很有寫實(shí)的意義祟印。對入門的人來說肴沫,還是值得一看的