Photo by Danielle MacInnes on Unsplash
什麼是 Ruby on Rails ?
Ruby on Rails 是一種結合 Ruby 這款程式語言與 Rails 函式庫的一種網頁程式框架!
Ruby 以自然、簡潔、快速著稱,全面支援物件導向程式設計。
而 Rails 則是 Ruby 廣泛應用方式之一,在 Rails 上設計出一套獨特的 MVC 開發架構,不但減少了開發中的問題,更簡化了許多繁複的動作。
所以在學習 Ruby on Rails 的之前,我們必須要先掌握 Ruby 這款程式語言!
但......我應該要去哪裡學習?
友善的網路世界
網路上對於 Ruby on Rails 的教學資源不計其數,但對於完全程式新手來說,尋找一個有系統且免費的學習平台實在是相當不容易...... 而且通常免費的東西都沒有好貨
喂!不要亂講~這世界有很多樂於分享的人,願意無償的教學,只為了讓程式的世界更美好!
在我成為工程師之前,我也不覺得這世界上有這麼多熱心的人,但當你真正的踏入這個領域後,你會發現人性還是本善的呢。
今天我也要擔任那個傳遞善心的人,我會把我篩選過後的免費學習資源推薦給看文章的你 / 妳!
The Odin Project ( 全英文 )
主打全課程免費的 Odin Project 是一個開源專案,從一開始就以教學做為核心精神,整個網站的目標是希望可以幫助對於網站開發有興趣的人能夠從零開始到獨當一面。
從 Ruby 教到 Ruby on Rails 甚至是 JavaScript 以及 Git。
最有幫助的地方在於,每一個章節都有幫助初學者編列作業以及目標,可以快速的讓你理解這個章節應該要學會什麼!
課程的後半段也會有小型專案實作,上傳至 GitHub 展示。
這樣的流程能夠幫助初學者理解從建立檔案到呈現在瀏覽器上的過程,未來更能對於不同的工具舉一反三,利用模式比對的方法找到解決方案!
特點:
- 適合新手上路,內容平易近人。
- 涵括前後端的基礎教學,甚至還有 Git!
冷知識分享:
為什麼叫做 Odin Project?
Odin 就是我們熟悉的希臘神話人物,宇宙之王。相傳他為了獲得魯納斯的智慧而把自己的右眼給犧牲了。
所以這邊就是希望我們可以貢獻生產力直到右眼失明。
喂~當然不是這樣啊,網站開發可不是一個簡單的任務,這個故事是希望我們可以像奧丁一樣渴望知識,不斷地成長~
但眼睛還是要顧ㄟ,一天一顆葉黃素,讓你眼睛保得住。
Codecademy ( 全英文 )
Codecademy 是一個提供基礎程式教學的網站,在上面可以學到基礎的 HTML、CSS、Ruby、Rails 等等,都是不需要收費的!
但其實它也有提供更進階的課程,需要升級付費才可以使用的選項,但基於今天是介紹免費的資源,就不著墨太多付費課程的內容。
對於新手來說這個網站有很大的特點是它提供了線上的開發環境,讓你可以不需要安裝編輯器就可以開始學習,從基礎的 Ruby 語法開始上手,這樣的環境對於真正的新手來說,可以先拋開環境設定以及安裝程式語言的問題,直接地開始學習程式語言。
網站還會根據帳號的學習程度來製作百分比提示你的學習情況,能夠讓新手理解自己大概學了多少的程度,而且 Codecademy 也有一個強大的社群討論版,能夠在上面找到問題的答案,或是主動發文提問,也能夠大幅度的加速學習效率!
特點:
- 線上編輯環境,免去環境設定問題。
- 搭配提示直接動手寫程式,快速顯示成效。
- 介面清晰的討論版,快速掌握問題。
為你自己學 Ruby on Rails ( 中文 )
衷心建議:
新手要記得先打好程式語言的基礎觀念,否則直接學習框架是一件危險的事情。
尤其是 Rails 有許多的黑魔法,更應該要打好基礎!
剛剛推薦了一個全英文的免費學習資源,這邊幫大家補上一個中文的免費學習資源。
我知道你們要說這是在業配我老闆的書,但相信我,這本書真的有非常多基礎的觀念,而且我知道中文對於初學者來說有多麼的友善~
但為了讓想窺探框架的人能夠有所獲,這本書中強調了許多關於 Ruby 的基本知識,讓你能夠理解 Ruby on Rails 的黑魔法以及他能做些什麼!
最有趣的地方就是書中有許多圖片以及口語化的敘述,讓人能夠抽象化思考過程的本質,針對 Rails 的 MVC 架構 以及 Route 也有著有趣的說明,使初學者能夠快速地了解不同物件之間的交互作用!
書本尾段的購物車實作,更能讓人體會到程式語言這麼抽象的東西,到底是如何呈現在網頁上?
跟著做過一次之後,才能體會到那些抽象的東西,到底是從哪裡傳向哪裡,在這過程中又得到什麼?轉變了什麼?原來電商是這樣子啊......
啊......不說了不說了,我也要來去做一遍,不然要落後給別人了呢~
特點:
- 中文書,看起來就是爽!
- 使用會發生在身邊的案例來解釋重要觀念。
- 手把手的環境安裝教學。
UPCASE by thoughtbot ( 全英文 )
衷心建議:
看著影片學習刻畫雖然會有短暫的成就感。
但別忘記要內化成自己的東西,才有辦法舉一反三,做出自己的作品唷
thoughtbot 本身是一間設計以及開發諮詢的公司,針對客戶的 APP 提供諮詢和顧問的服務!
他們在指導客戶團隊時,發現缺少了許多中等級別的教材,所以他們決定建立 UPCASE 這個網站來填補那些空白!
除了 Rails、Git、JavaScript 之外,甚至還教你用 Vim 的課程都有提供,相信我,學會 Vim 這個輸入法,對於撰寫程式的速度有著極大的提升......
不小心離題了,總之這是個難度比前面兩個免費資源稍稍高一些的網站!
但當你有確實的學習並理解前面兩個免費資源後,這個網站對於提升你的理解又有更大的幫助。
雖然 Intermediate Ruby on Rails 這部教學是 Rails 5 的版本,且其內容也確實稍稍難了一些,但版本對於學習 Rails 的基礎並沒有太大的不同,反而能夠看到一些有趣的寫法呢!
特點:
- 下方有討論區,可以看看別人對於影片內容是如何提問的,對!提問很重要。
- 每支影片的標題都很明顯,還有 Note 來告訴你這支影片你該學會什麼。
- 不定期會發布深度討論 Rails 的影片。
Ruby on Rails Guide ( 全英文 )
等等......這看起來一臉官方手冊,是不是拿這種網站在交差了事?
你先聽我娓娓道來,這個網站的作用就像是字典一樣,當你在前面的學習資源遇到瓶頸的時候,歡迎進來這個網站逛逛,嘗試找到你不懂的名詞,裡面都會有非常詳細的說明和範例!
我知道第一次進入這個網站的時候,會有一種 我在哪 我是誰 的感覺!
以下會帶你做一次追尋答案的過程是什麼情形?
假設情境:
看著學習課程中,出現了一段沒有看過的程式碼......
class UserController < ApplicationController
before_action :find_user # << 這是什麼?
def index
....
end
真是的,我完全不理解這個 before_action
到底是什麼東西?
登登登愣!Ruby on Rails Guide
這時候就派上用場了,我們先根據這個名詞出現的場合來做分析!
可以得知他在 Controller 的下面,那我們把畫面跳轉到 Ruby on Rails Guide
點擊黃色框框處會彈出一塊面板,這時候我們仔細的找到 Controller 相關的標題
點擊 Action Controller Overview
就會進入到介紹 Controller 的頁面!
勇敢地使用你網頁的搜尋功能 ( mac: command + f
,window: CTRL + f
)
打上 before_action
這時候就會協助你跳到這個名詞出現的地方,我們就可以看到關於 before_action
的敘述
以上,Ruby on Rails Guide 就是幫助你查找的工具,希望有幫助到你!
特點:
- 絕對正統,不容質疑,基本上不會有錯誤資訊。
- 完整度也是不容質疑,即便是工程師也還是會翻來自我檢視一下。
自我學習的優缺點
優點:
自我學習很棒的優點在於可以自行安排學習時間以及進度。
若你是一個學習速度快、自制力也很高的人 ( 英文也要很好 ),那我很推薦你可以在家裡面自我學習,畢竟參加線下課程的進度是規劃好的,若你的學習速度太快,老師也不會為了你而加快進度。
在家自己學習就可以根據自己的理解來調整該學些什麼,也可以在想要休息的時候休息,比較不會有被綁死在一個地方的感覺!
缺點:
我認為自我學習最大的缺點在於缺乏社群團體的推力!
畢竟學習程式語言本身並不是一件簡單的事情,當自己一個人學習又找不到問題的答案時,很容易陷入自我放棄的漩渦,以及你沒有辦法驗收自己的學習程度。
怎麼說呢?假設你今天已經自學了兩個月了,但你很有可能不知道自己現在的學習情況到底是好是壞,畢竟沒有人可以告訴你現在的方向是正確的,還是其實已經歪掉了?
還有關於團體討論的問題,因為人類的腦袋很容易陷入錨定效應,若在撰寫程式的時候,沒有加入其他人的意見來激盪你的腦力,很容易寫出自己覺得很棒,但其實成效不好的程式碼!
自我學習的小訣竅
誰都會有需要自我學習的時候,一些嶄新的技術,或是你自己有興趣的技術都是,都會需要自己上網查看文件,看看別人的 Demo。
我自己的方式都是先看成品,了解整個運作的方式,再來想像背後的邏輯,而且不會要求自己一定要想到正確的答案,畢竟這並不是一件好事,當你被正確答案的桎梏住的時候,就更容易陷入尋找所謂正確答案的漩渦。
在一開始你可以先用自己的理解來說服自己,然後持續的吸收相關知識,看更多的討論,有些時候你就會遇到 aha moment
,這種豁然開朗的感覺,是自我學習的時候最棒的時候了!
aha moment 也稱作尤里卡效應:指的是人類突然理解一個以前無法理解的問題或概念時的時刻。一個以前無法解決的難題突然變得清晰和明顯。這種從不理解到自發理解的轉變往往伴隨著喜悅或滿意的感嘆。
還有在剛開始學習程式語言的時候,也能透過聯想的方式,和現實生活中的例子做連結,找到可以讓自己快速理解的方式!
結語
說了那麼多關於自我學習的方向和優缺點,免費學習資源其實才是這篇文章的主軸啦!
我們從上述的免費學習資源來看,到處都充滿著英文的文件和影片,這也意味著英文對於軟體工程師是不可或缺的工具!
希望不要因為是全英文就放棄掉自我學習的機會,如果對於你的英文沒有信心的話,那現在更是你練習的好機會,因為是自學的關係,你可以大方地打開你的 Google 翻譯,趁著這波自我學習順便把程式常常出現的英文記起來吧!
也要謹記學習框架的優缺點,不要本末倒置,學習好 Ruby 這個程式語言會讓你事半功倍喔!
👩🏫 課務小幫手:
✨ 想掌握 Ruby on Rails 觀念和原理嗎?
我們有開設 🏓 Ruby on Rails 實戰課程 課程唷 ❤️️