程式初學者的入門生存指南 — 心態與學習資源

如何在茫茫學習資源中,找到適合自己的學習方式

Chloé
YiYi Network
7 min readApr 9, 2018

--

Photo by Toa Heftiba on Unsplash

之前我寫了一篇學程式的辛酸血淚史,談到初學者其實不需要抱著一本課本讀。或許因為學程式的方法,跟我們從小到大熟悉的國英數社自這種知識型學科不一樣,所以初學者一開始容易產生很大的挫折感。

我回想自己的學習過程,發覺漸入佳境的關鍵點是:容忍自己像笨蛋一樣不斷失敗後,終於找到了適合自己的學習方法。

這篇文章我想分享,在摸索如何學程式的過程中:

那些我失敗過的經驗

以及提供一些你可以試試看的方法

1. 寫程式是技能、工具,沒有最正統的教材,只有學不學得會。

我一開始打算學 iOS App 的時候,覺得要學程式,就要學最正統的!於是我在 YouTube 上找到一門史丹佛大學資工系開的 iOS App 課程錄影,授課的是一個白鬍子老先生。然而,我第一堂課看了三遍都成功在前 30 分鐘睡著。

現在回過頭看白鬍子老先生的課,我才意會到,這堂課的受眾是已經相當有程式經驗的資工系學生,課堂中夾雜很多電腦科學的專有名詞及理論,並不適合程式小白。

就像學游泳,第一步應該先求不會溺死,可以往前打水了,再來講求姿勢的優美跟正確。了解電腦科學的理論會讓你的程式更好,但不適合作為初學者跨出的第一步。

2. 還不知道自己適合怎樣的學習方式時,就亂買書,結果書放在桌上當裝飾品都沒看。

Photo by Clem Onojeghuo on Unsplash

學生時代的記憶,要學什麼科目就是去書店挑一本看得順眼的參考書,回家硬啃。然而,幾次到書店挑程式類書籍,而且花錢買回家之後,我都遇到一個問題:看作者的文字描述很簡單,真正回家打開電腦跟著做才發現問題一堆,再看著像原文書一樣厚的東西,耐性很容易就磨掉了。

或許,過去習慣「看書、理解、記憶、解題」的學習方式,並不適合用在程式學習上,線上的程式學習資源很多,有教學影片、部落格文、還有人直播 coding 呢,先在線上嘗試免費的資源,只要發現自己可以順順的跟上、一開始沒有挫折感,那就是適合自己的。

3. 寫程式的都是大神,有天分真的很吃香。但…

剛學程式的時候,這個想法困擾我非常久。

電影裡的駭客都是不假思索地打出幾行程式碼,然後電腦螢幕就跑出一堆酷炫的東西,很不幸的,現實生活中也是如此。當你對著電腦苦惱的時候,大神可能正帶著耳機,手指輕快地在鍵盤上跳舞。

但以結果論來說,像我一樣不是大神、沒有天分的人,其實一樣學得會,再舉游泳的例子,不是每個人都要當奧運選手,所以別太快否定自己。反而應該「給自己一些機會摸索適合自己的學習方式」,因為不適合的起手式,真的很容易讓人感覺挫敗、懷疑人生!

那麼,要如何找到自己的起手式呢?

不只新零售業要「線上線下整合」,學程式也是一樣的。我的經驗是:「從線上教材開始摸索,然後實際找人一起學,最後做一個自己的作品。」

關於線上教材

一開始你可以順順的跟上、沒有強烈挫折感的教材,就是適合自己的起手式了,千萬不要追求完美去找太艱深的東西。

請先善用網路的免費資源。

  1. 透過 YouTube 搜尋

在 YouTube 上其實很難找到有系統的好教材,但你通常會找到不錯的「第一堂入門課」,讓你可以大致了解你要學的東西到底是什麼。

2. 善用 Udacity

學程式的線上課程網站很多,我曾經用過 Coursera,但 Coursera 都是由大學製作的課程,難度還是偏高。

我後來喜歡用 Udacity 的原因是:它會根據不同主題開設微學位(Nanodegree),既然叫做「學位」,而且還宣稱使用者修完這個學位就有能力找到工作,它自然把你在這個主題要學的東西通通列出來,省去你自己拼湊的力氣。

以學習 iOS App 為例,它的 Syllabus 列出了五個 project,以及相對應的 supporting courses。使用者要付費才能拿到微學位,但是,有些 supporting courses 是完全免費的!

如果你還沒找到你要的,其實可以花點小錢買線上課程。

3. 到 Udemy 挖寶

Udemy 是一個大家可以在上面開課、賣課程的程式學習平台。因為經常做促銷,常常一門課只要 NT$300。Udemy 唯一的缺點就是課程選擇實在太多了,經常帶給我選擇障礙,看評價也不見的準,因為適合別人的課不一定適合我。但我曾在上面找到過超棒的網路全端課程,還為此寫了一篇課程筆記

4. Treehouse

Treehouse 跟 Udacity 一樣每個主題只有一套自製課程,所以不會有選擇障礙,但它是付費的,每個月 NT$750 左右,就可以不限主題看上面所有的課。我使用過的心得是,課程實在做的非常好,更棒的是通常網路上好的進階學習資源比較難找,Treehouse 卻是從初學到進階課程都有。

如果你還是覺得迷茫,或者覺得用英文的線上課程學習太難,那麼請不妨試試看實體課程

5. 到大學旁聽

初學者建議不要直接挑戰到資工系旁聽,台大其實有一系列專門開給非資工系學生上的程式課,叫 CS+X Program,都是從應用、從直接寫程式出發,不會有可怕的離散數學或演算法。(但還是請尊重每個老師開放旁聽的意願喔)

6. 去補習班

因為數量太多,就請大家自行 google 了。對於比較難用英文線上課程吸收,或是自學能力還不夠強的初學者,其實去資策會、台大系統訓練班等機構不失為一個打基礎的方式。

關於線下活動

看線上課程容易怠惰,如果目標不夠明確,真的很容易放棄。

找一群朋友共學吧!但如果你跟我一樣,身邊沒有想學相同東西的朋友呢?

大家第一個想到的應該是所謂的「程式社群」,程式社群的氣氛通常比較輕鬆,聚會時間可能一周一次,或一個月一次,每個人的目標也不太一樣,主要是社交+學習+放鬆。

所以如果非常積極想學東西,我反而推薦去參加短期的程式 bootcamps,我當初學 iOS App 時參加了 AppWorks School,在那裏所有人都有相同的目標,而且非常強烈。每周五天,每天至少八小時在寫程式,也因為朝夕相處而讓參加的學員擁有一種革命情感,大家都是想找工作的,根本不可能怠惰下來。

最後,請一定要 Do a real project.

最好是你非完成不可的專案!如果想不到要做什麼,就從模仿開始吧。比方說你在學網頁,就找一個真正商業用的網站當成模仿目標,看自己能做到什麼程度,即使不能完全做出來(理論上做不到很正常),也會學到很多。

Photo by Carl Heyerdahl on Unsplash

總結

  1. 做好心理準備:你一定會失敗很多次,但學程式的方法很多,學習資源百百種,你很可能只是還沒找到適合你的,先別否定自己。
  2. 「線上+線下」整合,然後做一個真正的 project 吧!

上面寫的線上課程主要都是英文,如果大家有使用過中文的好課程,歡迎補充在底下留言,造福大眾!

如果你喜歡我的文章,請拍拍右下角的綠色小手給我鼓勵

後記

--

--

Chloé
YiYi Network

📍Taipei, Taiwan 👩🏻‍💻 Software Developer