為什麼說現在是學習Ruby和Rails的最佳時機!
今年在臺灣各式各樣的 Ruby 以及 Rails 社群活動如雨後春筍一般到處舉辦,Ruby 以及 Rails 究竟有什麼厲害之處?初學者們又該如何上手呢?
什麼是 Ruby?
Ruby 是一個源自於日本的程式語言,並且由於 Ruby on Rails 這套便於快速開發網頁應用程式的框架而在近年走紅,如果你從事網頁相關開發工作,我想大概已經聽過 Ruby on Rails 這套網頁框架,但或許你分不太出來 Ruby 以及 Rails 的差別,以及 Ruby 除了 Rails 之外、還能用來做些什麼?
與其他常見的程式語言相比,Ruby 具備了更有彈性的語法,在 Ruby 的哲學當中,通常要完成某個行為不一定只有一種方法,往往會有數種不同的方法讓開發者選擇。也因為這樣的彈性,通常開發者會透過 Ruby 設計「特定領域語言」(Domain Specific Lanauge)來解決問題,有點像是我們平常講的是中文、但是會透過中文定義一組針對「法律」相關問題的「法律語言」。
Ruby on Rails
不過當然,Ruby on Rails 還是多數人接觸 Ruby 語言的主要原因,同樣使用 DSL 的設計概念,Rails 標榜著以下兩個設計哲學:
1. 慣例大於設定(convention over configuration),在多數的情況下都使用 Rails 預設的設定,而減少手動去指定各項引數
2. 不重複(Don’t repeat yourself),儘量減少重複的程式碼複製貼上到各處,而用比較有架構、組織的方式重用
在開發上速度很快,加上 Rails DSL 的語法相當簡易,透過Rails Girls 這樣的新手教學活動,幾乎在一天之內就可以做出簡單的網站。也因此很多人甚至常常開玩笑說會寫 Rails 不見得會寫 Ruby。
為什麼現在是入門的好時機?
說了這麼多,作為一個長期的社群參與者以及 Ruby 語言的使用者,在今年當中我觀察到很多跡象,都顯示目前是大家尚未入門要學習的好時機。主要原因有三個:
廣泛地被大小企業採用
以前提到 Ruby 或 Rails 的使用狀況往往我們會想到的都是新創或網路公司的例子,但近年來越來越多傳統企業在面對網應用路開發需求時,也紛紛選擇 Rails 作為主要架構,像是在國內的部分,我們可以發現在社群的求職看板上,包含知名連鎖書局、紡織業等等的例子。
Ruby 以及 Rails 的效能有很大的進步
以往通常 Rails 開發者都會被其他語言的開發者嘲笑在速度上可能不佳,但在近期的改版當中,Ruby 2.1 以及 Rails 4.1 都有很大的效能進步,是有史以來最快的版本。
以往被嫌棄在記憶體使用肥大的問題也有具體的改善:
社群以及教育資源遍地開花
在臺灣今年就有以下的活動:
- 兩場大型的國際研討會 RubyConf / Rails Pacific
- 不定期舉辦的 Rails Girls 以及 Rails Outreach Workshop 學習課程
- 不定期舉辦的 Ruby Tuesday 分享會
- 每週固定的社群聚會 Rails 新手村以及 Rails Tuesday
而在針對企業方面,也有像五倍紅寶石這樣的單位專門針對 Rails 及 Ruby 提供企業教育訓練的服務。
如何開始?
- 線上有很多既有的學習資源,其中我特別推薦 Code School,相對於傳統的教學而言、他提供了互動式的教學環境,讓你可以一邊看影片、一邊動手試著做做看
- 在網路上有相當多的 Ruby / Rails 中文社團,比如說: Ruby Taiwan、Ruby on Rails 讀書會或Ruby on Rails 新手村
- 最後,也可以參考包含 Inside Job Board 以及 Ruby Taiwan Job Board 找尋相關的工作機會
別再猶豫了,趕快開始學習 Ruby 以及 Rails 吧!
相關文章
- 為什麼說現在是投資加密貨幣的最佳時機加密
- 為什麼說現在是成為前端工程師的好時代!?前端工程師
- rails on ruby,ruby on rails 之程式碼塊(二)AI
- ruby on rails筆記和理解AI筆記
- 肖威洞察 | Ruby on Rails 的快速學習的體系框架;AI框架
- Ruby on Rails 生成指定版本的 Rails 專案AI
- 為什麼說現在是手機雲算力挖以太坊的紅利期?
- Ruby on Rails中的MVC架構是如何工作的AIMVC架構
- 都說python是最佳程式設計入門語言,為什麼你學習卻是如此坎坷?Python程式設計
- ruby on rails 小技巧AI
- Ruby on Rails Ping ++ 支付AI
- 【學習】介面是什麼?實現原理的是什麼?
- 為什麼說過早最佳化是萬惡之源?
- 機器學習 # 為什麼機器學習要求資料是獨立同分布的?機器學習
- 為什麼說基於機器學習的AI預測更智慧?機器學習AI
- 為什麼說 TCP 是安全的TCP
- 為什麼說 HTTPS 是安全的?HTTP
- 你知道什麼是人工智慧和機器學習嗎?說說你對它們的理解認知人工智慧機器學習
- 為什麼說DFMEA識別的是“潛在”的特殊特性?
- 什麼是框架?為什麼說 Angular 是框架?框架Angular
- 什麼是機器學習治理?機器學習
- 什麼是遷移學習?什麼時候使用遷移學習?遷移學習
- 機器學習可解釋性系列 - 是什麼&為什麼&怎麼做機器學習
- 為什麼說DevOps是大型企業在數字化轉型時的“必修課”?dev
- Python優勢是什麼?為什麼要學習?Python
- 獨家 | 日本機器學習領軍人杉山將:為什麼說弱監督學習是未來的熱門?機器學習
- 為什麼說是時候擁抱.NET CORE了?
- Rails並不是用Ruby編寫的AI
- 什麼是 AI、機器學習與深度學習?AI機器學習深度學習
- 什麼是AI、機器學習與深度學習?AI機器學習深度學習
- 實時機器學習是什麼,面臨哪些挑戰?機器學習
- 為什麼說GitOps是基礎架構即程式碼 (IaC) 和 DevOps 最佳實踐?Git架構dev
- 為什麼程式設計師在學習程式設計的時候什麼都記不住?程式設計師
- 漫畫:什麼是機器學習機器學習
- 機器學習到底是什麼?機器學習
- 什麼是機器學習MLOps? - kdnuggets機器學習
- 為什麼說自動化特徵工程將改變機器學習的方式特徵工程機器學習
- Linux是什麼系統?為什麼要學習Linux?Linux
- 什麼是Spring Boot?為什麼要學習Spring Boot?Spring Boot