記住這五點,沒有學不會的程式語言

MH Tsai
May 5, 2019

如果常常覺得明天再開始學程式
那不妨今天來讀一下這篇文章

這篇文章適合…

想學程式,卻不知如何開始
買了程式語言課程,卻一直還沒開始
學了一陣子,卻不知道怎麼繼續往下鑽研
熟悉這個語言,卻不知道去哪找個地方大展身手

只要記住這五點
相信你在學習任何程式語言時
會更有方向和方法

1. 設定一個具體目標

最常聽到的問題都是線上課程看完後,不知道要幹麻。

如果沒有設定一個具體的目標而學習,就像是摸石頭過河,感受不到具體在進步的感覺,而學習中最重要的就是「挑戰 →想出解法→成就感」,刺激大腦分泌多巴胺,讓自己養成coding的習慣。因此,建立一個個的小目標是非常重要的。

舉例如果今天想要學 NodeJs,一個很好的起點就是用 NodeJs 來建一個Server。再來試著在server的endpoint中做不同類型的資料處理,之後是針對header、cookies做不同的功能。

隨著一個個目標慢慢疊上去,不只可以拓展水平方向的技能知識,也能縱向地將程式語言鑽研地更深。

2. 熟練程式語言裡最常用的字和語法

學程式語言就跟學英文、西班文一樣,有些單字需要背,有些語法需要學

每個語法和單字都有不同的意義。單字和語法是學習一個語言的最小單位,因此在背這些東西的時候,學習曲線很陡是很正常的,但記熟這些最小單位,才能寫出好的段落和文章。
程式語言也是一樣,記熟和弄懂這些保留字和單字,就能讓你把程式寫的更好, 寫出更好的函式和系統。

舉NodeJs來說,裡面就有不少保留字是需要記起來和瞭解的。
var, let, const.
import, export default, export module.
array, object.
map, reduce, forEach, entries
還有很多的保留字和語法

但就像學其它語言一樣,最好瞭解的方法,就是把不斷地使用這些語言和熟練它,去感受一些這些保留字和語法使用場景和用途。

3. 不只動手做,還要循序漸進

回想那件,自己很想做,後來卻沒有繼續做下去的事情,是為什麼呢?

大多數都是在開頭的時候,充滿衝勁,排了強度很高或是負擔過重的任務給自己,過個三、五天後,成就感遠不及疲累無力感,因而放棄。

自學程式也很容易如此。

適當地分配時間,比如每天晚餐後8點-10點,寫兩個小時的程式,沒完成的留著隔天做。雖然寫程式很容易為了一些bug,一頭栽進去,不小心就天亮了。不過切記要維持固定的時間分配,才不會在熟悉這門語言前,就因為負擔太重而放棄了。

4. 看其它厲害的人都做了些什麼

學習東西最怕的就是缺乏想像力和眼界

當你發現別人已經做過的事情,你就會發現眼前的難題都不是問題。
因為只要是有人做過的事情,就是你也能做到的。
在Github上可以多看一些其它人都做了什麼類似的、厲害的Repository,大家可以去搜尋自己正在學的程式語言,在前面加個awesome,例如 awesome-nodejs, awesome-go,就會找到其它人整理一些,當前已經有人做過的東西,可以從裡面找到一些靈感和參考其它人寫過的東西。

更重要的是參考和瞭解其它高手的寫法,就像寫文章會去參考別人的寫法,背後寫的邏輯、架構。要精進程式語言,這些方法也是一樣的。

5. 越級打怪

這個是最重要的一步,找一件你直覺上只有靠運氣才能完成的事情。

試著去完成它。
可能是去面試一個工程師的缺,去參加一場黑客松,挑戰 Live Coding 。

面對這些挑戰只有兩種可能,一個是你成功完成了,那代表你以為的挑戰其實游刃有餘,你遠比你想像的還熟悉這些技能。
或者,你失敗了,但過程中的每部分會讓你更清楚你對什麼不了解。所以越級打怪,不管是哪個結果,都是很有幫助的。

還有什麼原因阻擋著你學習或精進程式語言嗎?
歡迎留言或聯絡我
說不定手邊有些資源可以幫上你的忙!

如果大家還好奇在軟體團隊裡面
都跑什麼開發流程
歡迎看這篇 敏捷開發介紹

如果這篇文章有幫到你的話,幫我拍個手吧!
對了,你知道每個人都可以拍50次手嗎?試試看吧!

求職或轉職上有問題嗎?
你可以到這裡問問題!

感謝您的閱讀! :)

你還可以在這些地方找到我
Instagram, LinkedIn, Facebook, Github

--

--

MH Tsai

https://mhtsai.me | Software engineer by day, Web3 enthusiast by night. Dreams of being a productivity guru.