當你是一個資淺的初學者時,需要什麼樣的技能才能漸步深入自由開源軟體專案的參與呢?
這個問題是許多自由開源軟體專案的初參與者們,都會捫心自問的問題。而其實,有許多 online 與 offline 的網站與資源,是可以協助這些初階的參與者,更加認識自己的能力、屬性,並找到他們適合參與的專案與活動。
首先,談談線上–online 立即可以取用的資源:
Codecademy 是一個讓使用者可以透過互動模式,學習程式寫作的線上網站。其提供的學習資料包括:HTML、PHP、Ruby,Python 這些許多自由開源軟體專案都會使用到的程式語言。該網站上提供的每一個程式語言學習資料,都從淺到深,最基礎的課程,會從程式語法與指令列的教學使用開始,使用者只要依線上課程指示完成每一個學習任務,就可以累積積分來獲得徽章,並逐步向下進行更高程度的學習教程。要使用這個網站的學習資源,使用者完全不用在自己電腦上安裝什麼額外的軟體程式,只要使用瀏覽器連上站台,就可以順暢的進行程式語言的寫作學習。
Codeschool 則採取另一種與 Codecademy 截然不同的錄影教學模式,他們稱之為「學習教程 (paths)」。這些錄影教程包括 Ruby、Javascript、HTML/CSS 還有 iOS 的領域與主題。與此相較,Codecademy 是提供線上可取得的學習文件,Codeschool 則改用課程錄影的方式,來讓使用者據以觀看與學習。Codeschool 每一個提供的學習教程,都包含上述主題的基礎說明與實作教學。同樣的,只要透過瀏覽器就可以觀看此網站上所有的學習教程,更值得一提的是,Codeschool 還在 iPhone 與 iPad 平台上提供了教程觀看的 app,所以這些行動裝置的使用者,將可以使用 app 得到更簡便的觀看效果。
Code.org 以它獨樹一格的「一個小時學會程式寫作 (Hour of Code)」專案而聞名,舉 Javascript 和 Python 為例,它讓使用者可以線上閱讀這些語言的初階導覽教材 (tutorials for beginners),即可依其在教材中反覆引導的基礎概念與語法,寫出可資運作的小程式。這些基礎概念包括重覆迴圈 (repeat-loops)、條件式語法 (conditionals),以及基本的程式演算法 (algorithms) 等。除此之外,Code.org 亦為其教材做了適齡資訊的標示,使用者只要透過一個網頁瀏覽器,或是使用 iOS 或 Android 行動裝置,就可以透過這些教材進行基礎程式寫作概念的反覆練習。
對 8 歲以上的小小程式碼學習家來說,有一個非常適合作為開源協作學習的程式語言叫 Scratch!
Scratch 是一款「圖形化」的程式語言,它有一個負責維護與開發新版本的線上社群,而這個程式語言的主要建置目的,就是要讓學童可以透過多媒體互動、遊戲、動畫製作的方式,來學習程式碼的寫作概念與邏輯。當學童透過 Scratch 來製作這些遊戲和動畫的同時,他們不但能發揮創造力、學習群體共工與邏輯思考,更重要的是,也一併體驗了程式運作的基礎架構。也因為 Scratch 的創立目的是如此,它的操作介面對於使用者非常友善,可說小朋友都可以簡易上手並進行操作。除此之外,Scratch 線上網站亦有提供讓教學者、學員家長能夠據以參照學習的教學範本,讓 Scratch 學習在學校教學與在家自學的環境下都一樣便利。
再來,除了上述的線上學習資源之外,若使用者已經有鎖定要參與的開源專案,或有想要主力投入的協作平台,也可以試著找尋下列「離線版本–offline」的輔助資源,來取得更多更直接的協助:
自由開源軟體專案相關的地區性使用者群組,通常會固定舉行每週一次或每月一次的聚會,參與這些實體聚會的好處就是,有任何問題可以當場直接提問、直接討論,所以相關知識可以被面對面的分享,也更容易找到符合參與者需求的學習指引。較具規模的自由開源軟體專案幾乎都會有這類的使用者群組,Linux、PHP、Drupal,甚至 MySQL,相關的使用者群組都可以說相當活躍。
所謂的 hackerspace 與 makerspace,是可以讓參與者「自己動手作」作品的共工實體空間,它的運作模式頗為社群參與化,參與者多對某一個領域的共同創作帶有相當的興趣,相關的議題包括電腦、科技、科學等,故而群聚在同一個共創空間裡,進行討論、交流,與作品的實體創作。透過這種面對面的群體互動,hackerspace 是參與者實際入手自由開源軟體專案協作,或開放硬體專案共創的絕佳方式,與地區性 user groups 不同的是,在 hackerspace 您可以在單一場合遇到不同開源社群的夥伴,從中了解到自己真正的興趣所在。
Coderdojos 是一個非營利的跨國運動,2011 年由 James Whelton 與 Bill Liao 在愛爾蘭設立,並逐步推展到全世界二十幾個國家都受到一樣精神的感召,而設立分部。簡單來說,Coderdojos 是一個藉由志工帶領、每週固定聚會、同儕互助,來幫助小朋友學習程式寫作的「道場」空間。其標誌以太極––陽者為 1、陰者為 0 作為表徵,代表太極循環,藉由程式碼 0 與 1 的組合,營建出整個繽紛的軟體世界。一般來說,7 歲到 17 歲的學齡兒童,都可以在 Coderdojos 找到他們感興趣的項目進行學習與實作。
如果看過上述的介紹,開始對程式寫作感到興趣,下面這個初階的建議列表,亦可一併參考: