在一個寫程式正夯的年代,常遇到有朋友問我:「一點技術都不懂的人可以學寫程式嗎?學的起來嗎?」我的答案通常是:「當然可以學,但是學不學的起來不一定。」
怎樣才能學的起來呢?我歸結幾點觀察如下:
1. 三要素:動機、熱情、成就感
不管學習任何事物,動機都是最重要的。學寫程式本來就不是件容易的事,有動機才會有熱情,遇到挫折也較容易撐過去。2年前我決定開始學寫程式,是想要打造一個(自以為)有趣的產品,過程中遇到挫折與挑戰不計其數,好在有明確的動機與目標,學習的熱情才不至於被瞬間澆熄。
成就感則是另一個關鍵因子,想像你在學英文,每天要背100個單字,過程枯燥乏味,但如果你人在國外或有外國朋友,可以馬上實際應用你每天新學的東西,那成就感絕對比無聊的背單字高得多。學寫程式也是一樣,如果可以在初期很快地在網路上看到你架的網站,或是手機上看到你寫的 app,成就感的提升,自然而然會轉化為你繼續前進的動力。
2. 有系統的入門
學程式要怎麼入門?要自學還是上課,很多人討論過,在此就不贅述。
我想提的是「有系統」的入門,對於完全沒有任何技術背景的人來說特別重要。在進入 ALPHA Camp 以前,我也曾經在網路上找過很多相關的教學課程,免費資源雖然很多,但因為過於零散,東看西看的最後什麼也學不會,反而更加深挫折感。
當然,有系統不是一定要報名XX補習班的課,雖然專業的教學機構,理當是會提供你一個比較有系統的入門,但是,一本可以讀的懂的也讀得下去的書,或是一套完整的線上課程,只要是你能夠吸收的,適合你的模式,就算是有系統的入門,找到對的方向,學習的效果才會好。
3. 找尋同好
在學習的過程中,同儕的影響超乎想像的大,有上課的人,可以跟同學互相討論、相互扶持,是學習上很大的助益。自學的人,也可以透過參加程式相關社群或是 hackathon 結交同道中人。學習的路上即使再有熱情,如果永遠是孤軍奮戰,也是大大地加深了學習的難度,因此開始找尋同好一起學習吧!
4. 練習、練習、再練習
Erik Trautman 在 Viking Code School 部落格中的文章《Why Learning to Code is So Damn Hard》分析學習程式有多難,中間要經過一段漫長的絕望沙洲 (The Desert of Despair)。在過程中,就不是單靠有熱情有動機可以撐得過去,不斷的練習、不斷地找尋答案才能不斷的進步,這段時間是過程中相對痛苦的一段時間,因此前一點提到有同好一起互相扶持,在此時就顯得更重要。