其實上一篇原本的標題就是線上學習資源心得比較,沒想到前言打一打,開始打 Ruby 跟 Rails 的差別,反倒獨立成一篇了。老師的通病好像就是想到哪裡就會講到哪裡,Out of control XD(?)
以下為新手學習 Ruby 語言時所使用的幾個資源心得比較,將簡單介紹(1)Codecademy、(2)Codeschool、(3)Ruby Monk與(4)Ruby Warrior:
Codecademy 在第一篇文章有稍微提過,他是目前免費線上學習程式界中非常具知名度的一個平台,你只要有 Facebook 、Google+ 或 twitter 的帳號就可以直接登入不用重新註冊(基本上現在線上很多平台都有做這樣單一登入的功能,真的很方便),登入後在多種程式語言列表中找到 Ruby 就可以立即進入學習囉!他的學習畫面:
在參加Rails Girls 活動之前,我有用這個學習平台完成了 HTML, CSS 的練習,這類前端語言在顯示結果時較能正常顯示,比較沒出什麼問題,不過當我自己開了 JavaScript 來學,就開始覺得顯示處會出現一些雜訊,同樣的,在學習 Ruby 的課程,也有出現一些雜訊,幸好當初在學習時,是有教練在旁邊解釋,我才不會有多餘的疑問。只是左邊的教學指引,當出現一些如物件導向這種對我來說比較深的概念時,會因為英文閱讀的問題而導致一些理解錯誤= =,他的用字比較精深一些,所以還是建議要真的一行一行逐字逐句理解,才不會一知半解。 目前我在這裡的 Ruby 學習只完成了 32%,主要是因為這幾週(三月底~四月初)只要登進去都會無法正常顯示頁面,好像是網頁在進行改版,可能過一陣子要複習 Ruby 語言時才會再回來使用他。
Code School 跟 Codecademy 一樣都是提供一個線上平台讓學習者直接能用他們的介面逐單元的練習程式語言,只是 Code School 大部分需要付費,但有兩個免費與 RoR 有關的課程很適合入門導讀!一個是Try Ruby 、另一個是Rails for Zombie ,這裡先講 Try Ruby ,因為 Rails for Zombie 已經在講 Rails 的架構了,雖然已有在練習,但還是待之後自己熟一點再整理心得。以下為 Try Ruby 學習畫面:
可以發現這個畫面非常可愛(大心),這個編輯程式的方式比較貼近真實寫 Ruby 的感覺,因為 Ruby 是一行打完就送出執行,Ruby 很聰明,你第一行結尾如果是{
,他自己會知道你還沒打完,還有接下來的內容,直到你打}
,他就知道你結束了。而且你可以注意到,如果你要看下一單元,你也直接在編輯器輸入next
就好,很符合Ruby 給人直接、人性化的感覺!所以建議真的完全對 Ruby 沒概念的可以從 Try Ruby 下手,他連左邊的教學指示都比較平易近人!
終於發現有中文化的線上學習資源了,雖然是簡體版本,只要多注意兩岸之間對於某些名詞的稱呼差異之外,基本上不影響閱讀!以下是他的學習畫面:
可以發現他的排版與前面兩個差異很大,不過他的解釋很清楚,就以教學的角度來看,他幫學習者鋪的學習鷹架還蠻穩的,跟著他的練習,你真的會感覺自己在一步一步往上爬,不過我建議先去 Try Ruby 練習過,再過來 Ruby Monk 試試看,對初學者來說,他的練習不像 Codecademy 或 Try Ruby 一樣大部分造樣造句就可以完成,Ruby Monk 還蠻需要進一步深層思考才行,有程式底子的人可能比較好上手,不過幸好每一題都有正解可以參考,遇到不會的再筆記下來,找個強者詢問XD
最後這個,其實是一個打怪的遊戲!這裡有他的介紹文章(簡),他最特別的是,輸入操控勇士的Ruby 程式碼後,他會直接用遊戲畫面顯示你的指令,如下面的畫面:
勇士前方有怪物,所以得寫出程式,讓勇士可以往前走,並且還能判斷遇到怪物時,要攻擊,如上面關卡的解法是:
class Player
def play_turn(warrior)
if warrior.feel.enemy?
warrior.attack!
else
warrior.walk!
end
end
end
雖然我個人非常提倡遊戲式學習,哈,因為我研究論文就是在研究遊戲式學習對學習者的效益XD 但我不得不說,才第二關就進入if
判斷式,不太適合初學者直接進入啊!雖然打鬥畫面很酷、很好玩,但如果每一次過關都要靠找正解,那成就感根本無法提升!
所以阿,就一個中文為母語的 Ruby 初學者來說,以上這四個學習資源,我比較推薦的學習順序是: (2)Try Ruby » (3)Ruby Monk » (4)Ruby Warrior » (1)Codecademy
先有了簡單的Ruby畫面(2),再用中文解說加強(3),途中用個遊戲提起動機(4),最後再以一個完整的學習系統複習並鞏固知識(1)(主要是中文都讀過了,回來看英文較深一些的字詞應能比較快速吸收XD)。建議是建議啦,不過自己還沒有完成(1)和(4),也正在努力中!也許完成所有練習後也有別的想法,再寫出來:P
其實厲害的人根本不需要四個線上資源都練習過,我只是一個大嬸心態,阿這些東西就免費放在網路上阿,不用白不用,多給自己練習機會也不錯啊XD!