[程式教育] 如何學習程式語言?5個推薦的免費學習平台
上一篇我們提到了3種不同的學習管道,有些管道,像是教學機構,會設計專屬的學習平台,當然是只有付費加入課程才有機會使用。不過,大部分的學習管道,其教學的內容,還是以線上既有的一些免費學習平台為主。
所以,這一篇我們就來介紹5個推薦的免費學習平台。不同的平台,其設計上針對的學習年齡層也有所不同。透過這一篇,希望讓大家在進入學習前,有一些簡單的概念,並選擇適合的平台去學習。之後我會再針對這些平台,提供對應的學習管道給大家。至於,要透過自學或是付費找教學機構學習,就依照個人需求而決定。
一、Scratch
Scratch是由麻省理工學院所開發出來的一套「視覺化程式語言」開發平台。上圖就是Scratch的開發介面,透過這個開發介面,利用左方的一些控制元件(積木),將其拖曳至中間的工作區,依照順序設計出腳本,就可以讓右方那隻貓咪依照設計進行對應的動作。
這個平台是支援多國語言的,中文當然也是其一,所以學習上不用擔心語言的問題,只是需要了解這些翻譯過的控制元件和操作介面的用途,是必要花費的學習成本。這個平台,據我所知,目前大部分的小學和中學,在學校的資訊科技相關課程,都有教授這個平台。如果你的小孩是中小學生,應該對這隻貓都蠻熟悉的。
二、Code.org
Code.org是一個非營利組織,由Hadi Partovi兄弟所創立,該組織致力於電腦科學教育的推廣。這個平台上,設計了適合各種年齡層及不同程度的學習課程。課程內容的學習方式與Scratch類似,大多以圖形化的介面,操控設計好的角色,執行特定的動作。其中的「一小時玩程式」系列,就像是益智類的闖關遊戲一樣,是具有挑戰性的邏輯訓練。特別的是,除了平台上已經設計好的遊戲外,也可以自行設計遊戲並上傳到該平台,讓其他人進行闖關遊戲。
另外,該平台也與教育機構合作,進行教師的培訓,以覆蓋更多原本無法學習相關知識的學童。如果你的小孩對Scratch有接觸過,我認為Code.org會是一個不錯的選擇,提供更多元類型的學習。它所涵蓋的範圍更廣,不單單是以「程式語言」為主而已,而是整個「電腦科學」都包括在內。
三、Codemoji
Codemoji也是提供「視覺化」的開發學習平台,跟上述兩個的差異點是,這個「視覺化」的開發工具是對應到某一種特定程式語言,透過圖形化的元件(emoji)拖曳到設計區,可以產生對應的程式碼。
Codemoji提供的學習課程,主要都是以網頁開發的相關技術為主。學習過程是依照課程指示一步步的往前進,完成指令就可以前往下一關。在過程中學習者不需要撰寫任何程式碼,用拖曳指定元件的方式,過關解鎖,也可以看到對應的程式碼。目前這個平台只有支援英文,學習者需要懂得簡單的英文,才能看懂指令,不過透過翻譯工具的外掛也能解決這個問題。
四、Code Combat
Code Combat看起來想是這遊戲網站,類似PaGamO的設計概念,是以「遊戲化」的學習方式,將設計好的關卡搭配角色與裝備。透過遊戲闖關,用引導的方式,提示學習者輸入程式碼,讓遊戲中的角色依照輸入的程式碼執行對應的動作。
在每個關卡中,學習者可以選擇想要採用的程式語言,主要有Python、JavaScript等主流語言,從遊戲環境可以直接看到程式碼執行的結果,從基礎到進階,完成指令過關以解鎖更多功能。對喜歡遊戲的學習者,可以享受破關的樂趣,同時學習到簡單的程式運作概念。
五、Code Monster (crunchzilla)
Code Monster是crunchzilla這個平台其中,設計給最初階的學習者,除了Code Monster之外,還有Code maven跟Game Maven兩種給不同程度的學習者。相較於前面介紹的幾個學習平台,都屬於比較偏遊戲化的教學,Code Monster則比較像是有一個指導者(Monster),與學習者用對話的方式,提示學習者撰寫程式碼。
這個學習平台比較陽春,設計上單純是以JavaScript的程式碼,搭配一個顯示區塊可以即時呈現修改的程式碼效果。對程式碼的理解,是從指導者(Monster、Maven)的提示,自我思考後推論出可能的邏輯,跟上述的平台比較起來,是稍微多一點難度的。另外,這個平台也是只有支援英文。
總結
對於所有初學者來說,這些平台都是推薦的學習平台。以年齡層來說,前面兩個(Scratch、Code.org)比較適合小學生或剛升國中階段的學習者,兩個平台的共同特點就是「視覺化」的程式語言,也就是學習過程中是不需要接觸任何程式碼的。
其他三個學習平台(Codemoji、Code Combat、Code Monster),就是以「程式碼」為主,透過「互動式」和「遊戲式」的設計,讓學習者不會感到太過枯燥乏味,學習到程式碼是如何運作的。如果是國高中生的初學者,可以考慮跳過前兩個視覺化學習平台,選擇這三個,有機會碰觸到簡易的程式碼,對之後的學習撰寫時,比較容易上手。
從以上篇幅總結,所有的學習平台都具有一些共同點,像是「視覺化」、「遊戲化」、「互動式」,讓學習過程相對有趣,比較容易引起學習動機。對於毫無經驗的初學者來說,透過這些比較容易上手的學習平台,在學習初期就能得到一定程度效果,有助於之後往更高程度的學習內容。