很多人與開發者溝通的困擾在不知道「程式」是什麼,對相關術語存在有許多恐懼障礙。因此,對於資訊技術相關的需求或限制就往往難以理解,許多時候也會覺得 開發者像在講另一個自己不懂的語言一樣,覺得溝通邏輯不同於一般人。如果你也有這種症狀,不妨趕快細看這篇文章,記得快存檔!把這些網路資源通通記下。另 外當然,也別忘記分享給跟你有一樣症頭的朋友。
目前,在網路上有關程式語言教學相關的內容主要有兩種來源:
- 學校或企業所提供的收費或免費公開課
- 新創公司以網頁互動介面設計的程式語言教學課
全觀直白的中文入門程式課
一般來說,電子、電機、資訊工程、資訊科學、資訊管理等相關領域的大學科系,入門的第一門課程叫做「計算機概論」,這個概論課程其實是一個全觀介 紹。在一般大學的實務課程設計上,每個星期用 2 - 3 小時,在 16 個星期左右告訴你整個資訊技術軟硬體發展的歷史、術語、定義、分類與簡介。他們可能會提到一般電腦系統運作的硬體架構(介紹 CPU、記憶體、主機板、晶片、匯流排、各種儲存硬體、讀寫、傳輸介面與裝置等等)與其上的軟體運作邏輯(作業系統、韌體、驅動程式、輸入法、應用程式、 編譯器、瀏覽器、檔案、編碼、演算法、資料結構甚至資料庫)等等。
有些學系會將「計算機概論」的課程設計與「計算機程式」、「計算機程式設計」這類的課程相近,不同的程式語言發展有不同的歷史背景與適合的應用場 景,很難單純選用一個程式語言就可以統括所有需求(例如網頁、伺服器控制、資料庫或資料整理與分析可能都有各自合適的語言工具)。因此,這些課程通常選用 一門不一定最新潮,但具有代表性、歷久而彌新的程式語言(例如 Fortran、C、C++ 或 Java)來介紹給學生程式入門基礎,透過這些基礎類推到不同的語言間都是相對容易理解的。這些課程幾乎可以算是程式設計的基礎入門。
拜科技所賜,現在就算你坐在家裡也有一些中文(當然因為目前程式語言發展的天生特性仍帶有許多英文,所以讀者需要接受許多老師在講解的時候會帶有英文單字)的開放式課程可以選讀。
按照學習順序,我們推薦讀者:
透過互動網頁,直接學習某個程式語言
近年來,許多新創網路服務公司都企圖透過網際網路即時互動提供程式語言的教學,常見的服務如「Codecademy」(編程學院)或「Code School」 (編程學校)。因為新創公司的需求,這些服務所涵蓋的程式語言範疇,通常比較偏向開發網路服務語言的類種;無論是網路服務常用的語言 PHP、Python、Node JS、Angular JS、Ruby、資料庫語言 SQL、大型網路專案開發常用的工具 Git 或 iOS、Mac 開發所需要的 Objective-C 或甚至常見的計量分析語言 R 或近來流行的 Scala 等等。隨著不同進階的學習難度或特殊語言需求,這兩者服務都有免費或訂閱月費計價的課程,月費價格從 19- 29 美金/每月不等。
Code School 通常有真人影片講解,課程比較偏重這些語言的應用或小技巧等;相較之下, Codecademy 更強調這些程式語言的基礎語法。這些服務都強調使用者無須架設任何編程環境(特定作業系統、環境、安裝了某些指定的函式庫或編譯器 Compiler)的情況下,可以讓使用者快速親近某些程式語境的效果。以編程所需要灌注投入的學習時間與成本來說,筆者認為相對自己以前的學習成本不見 得更高昂,如果讀者有一定的英文程度不妨試試。
如果你想嘗試用遊戲來學習程式語言,則也許可以考慮 Code.org 或 CodeCombat,前者是一個非營利組織,網站裡有與微軟合作的 Minecraft 教學版遊戲,用磚頭化身電腦程式的方式來吸引孩子對程式設計的興趣。 Code.org 裡一小時學習程式語言的課程也深受好評。
CodeCombat 的設計也與遊戲有關,透過 Google 或 Facebook 帳號登入並挑選英雄並選擇自己想要學習的程式語言,使用者將循著遊戲學習關卡,透過程式語言指令合成道具來過關斬將。
延伸閱讀:
新年新希望,Codecademy建議~來學寫程式吧!
玩知名遊戲學寫程式! Code.org 一小時學會寫小遊戲
拚命玩遊戲就能學寫程式! CodeCombat 還有中文版
更進一步的開發或應用課程
台灣大學資訊工程學系林軒田教授的機器學習基石課程深受行內好評,翻攝自其課前聊天室
如果讀者有更進一步興趣想要學習一些近來常常被討論的進階應用課程。例如,如果你有興趣想要學習機器學習(Machine Learning),則也許可以參考最近借調到 Appier 的台灣大學資訊工程學系林軒田教授的「機器學習基石」,或參考蘋果與史丹佛大學合作共同開設免費的「用 Swift 語言開發 iOS 9 應用程式」課程(英語教學、需要使用 iTunes)。
請注意!留言要自負法律責任,相關案例層出不窮,請慎重發文!