我在 2017 年 1 月 6 日看到 Facebook 跳出一年前的貼文,這貼文是發佈用 Ruby on Rails 做出的易經創業卜卦網站(因只是練習作品故已關閉)。而在這卜卦網站發布後的一年,我和共同創辦人 Joanne (負責產品設計和規格制定)打造的譯者雲端服務網站 Termsoup.com 已經公布兩個個月了,這網站從訪談、功能規劃到陸續改版也花了五個月時間,目前已有數千人註冊,而且越來越多譯者已經完全從 Word 轉移到 Termsoup 工作了,因為在這裡可以節省 50% 以上的查詢詞彙和資料時間,飛快地完成翻譯文件,而不需要開啟 Word 和一堆瀏覽器頁面辛苦的查詢資料。

一年前貼文:

yi_jing_site

一年後的譯者雲端服務:

feature-explain

 

由於網路學習資源非常豐富,尤其是線上付費課程已經越來越流行(尤其是歐美國家),許多厲害的線上課程老師已獲得好幾萬名學生且獲得極高分數評價,現在要學習新技術的門檻和時間已經比以前降低很多。

我自己之前在美國唸博士班最大的收穫,就是學到如何更有效率的學習新事物,關鍵有兩個:

第一,要找到最好的學習材料。

第二,根據程度和學習進度依序使用這些學習材料。

如果有極佳的老師提點,可以明顯加快學習速度,減少摸索時間。但如果沒有好老師就寧可自學,不要浪費任何時間在二流的學習教材和課程上。學到錯誤觀念或一知半解的觀念比沒學更糟,因為要花額外的力氣移除錯誤觀念並塞進正確觀念,等於要重整自己的腦袋。

我自己在建置 Termsoup 之前,主要會的是 HTML5、CSS3、非常簡單的 jQuery 和 javascript,以及部落格等級的 Ruby on Rails 技術。我花了約半年到一年時間陸續在線上學習 Ruby on Rails,也在五倍紅寶石上過幾次免費課和付費課(這裏也有每週定期聚會可以參加)。我花在線上課程的時間不少,但自己做一個「認真的專案」才能極大化進步幅度,因為碰到問題會被強迫要去解決它、在網路上找答案,甚至有三次在 Codementor 上付費找厲害的工程師協助,節省我一堆找答案時間。在這種較為痛苦的過程才能真正提升等級。如果只是做一個練習作品,很容易碰到問題就繞過去用簡單的方式解決,進步會相當有限。

以下列出我的自學清單,而且是從基礎和進階的學習材料,希望可以幫助到想要學習建立網站卻不知從何開始的人。但這裡講的網站建立技術主要以 Ruby 材料為主,不包含像是 Python 或 PHP 等網站技術。大部份都是英文學習材料,但不用害怕英文閱讀和英文聽力,逐漸習慣就好,而且功力要提升,勢必要一直接觸英文內容。

從零開始:HTML5 & CSS3

要學習網站技術,就一定要先了解 HTML5 和 CSS3,嚴格來說 HTML 和 CSS 算是語法,而不是程式。學會這兩種語法,至少也能做出漂亮的自適應的靜態網頁(responsive webpage),嵌入一些簡單的第三方服務,就能自製 landing page。

  • Web design | Treehouse:Treehouse 是一個付費的學習程式的平台,是很適合初學者的地方,每個月$25美金,可以下載課程影音供日後複習。Web design 的 track 包括 CSS、HTML的課,還有 Adobe Photoshop 和 Illustrator 的基礎課程。
  • HTML & CSS | Codecademy:Codecademy 是國外知名免費學習程式的網站,主要以非常基礎的知識為主,也有線上練習機制,每講一段就會出一個練習題。雖然很基礎,有時候練習題不一定很好做,但不必覺得受挫,被練習題難倒是很正常的事情。出有難度的考題重點不是要考倒學生,而是強迫學生去思考背後的邏輯。
  • HTML/CSS | CodeSchool:Code School 也是付費學習程式平台,每個月 $29 美金,看可以下載課程影音供日後複習。Code School 有些課程難度偏進階,但 HTML/CSS 這門課還好,如果上述兩個還不夠,可以考慮這門課。
  • 鬍子科技學院:這是一個在香港的程式教學服務,他們提供了簡單上手又易懂的 HTML 教學CSS 教學Javascript 教學。他們特別的地方在很多說明都精心設計容易了解的圖案解說,讓學習者很快了解哪些語法會是什麼效果。非常推薦初學者可以看這些免費資源。

前端基礎:jQuery、Bootstrap框架

在學會 HTML/CSS 後,可以開始了解簡單的 jQuery。jQuery 可以做出不錯的網頁動態效果,例如一個區塊或文字的淡出、淡入等,有一些適當的動態效果會讓網站的質感提升,強化使用者體驗,尤其使用者體驗在製作網站時是很核心的元素,是一定要掌握的技巧。jQuery 其實是 Javascript 的框架,但 Javascript 較難,可以先直接用 jQuery 操作。React.js 和 Vue.js 也是竄起相當快速的 Javascript 框架,但我自己還沒深入了解,而目前 jQuery 也仍是最多數人使用的框架,免費第三方資源也最豐富,所以我覺得仍是必學的前台技術。

Bootstrap 是相當好用的前台 HTML/CSS/jQuery 框架,由 Twitter 製作和分享。由於製作 responsive webpage 非常耗時,例如製作各種狀態和情境的表單(form)、按鈕等,使用 Bootstrap 可以快速做出這些元素而且介面優雅,要變更顏色等屬性也非常方便。另一個好用的框架是 Foundation,但我自己沒用過。

  • jQuery | Codecademy:在 Codecademy 可以學習基礎 jQuery,也可以了解到他的效果和威力。
  • Try jQuery | Code School:Code School 這門課可以了解初階 jQuery,但它的下一門課 jQuery:the Return Flight 可以先不要上,等先學了 Javascript 再上這門課。
  • Frontend Web Development | Treehouse:Treehouse 這門系列課程可以學到完整的前台網頁建置。這門課程系列也包括簡單的串接第三方資料,在這個階段學習起來也不會有太大障礙。
  • Learn Bootstrap Development By Building 10 Projects| Udemy:這是在知名學習平台 Udemy 上的課程,有了 jQuery 的基礎概念後,可以先在這裡學習 Bootstrap。我學了這門課之後,建立大部份前台網頁架構就很快了。提醒一下,要購買任何 Udemy 上的課程之前,都先 Google 課程名稱加 “coupon”,因為有很多 coupon 可直接使用,找打折數最多的就對了,打折後一門課現在大約台幣三百元左右。
  • Projects In JavaScript & JQuery:這也是 Udemy 的課程,雖然名稱有 Javascript,但實際上仍以 jQuery為主,其中的 Section 6 Ajax PHP Shoutbox 可以先跳過沒關係。

後端基礎:Ruby、Ruby on Rails

要學 Ruby on Rails,還是要先對 Ruby 有一定程度的了解,畢竟 Rails 是從 Ruby 延伸出來的框架,而且在寫 ROR 時也還是經常用到 Ruby 語法和功能。

Ruby

  • Ruby | Codecademy:在 Codecademy 可以先初步了解 Ruby 的功能和語法。
  • Try Ruby | Code School:Code School 上的這門 Ruby 基礎課是免費的。
  • Ruby | Treehouse:Treehouse 上的 Ruby 課程有完整的基礎知識和技巧,上面的習題大部份是選擇題,較為簡單,挫折感會較低。
  • Ruby Bits | Code School:這門 Code School 課程也很不錯。下一堂 Ruby Bits 2 可以接著上,但是難度會提升一些,若是覺得都不太懂,就留著以後對 Ruby 有更多了解後再看也可以。

Ruby on Rails

  • Rails Development | Treehouse:學 ROR 可以先從 Treehouse 這門課開始,裡面也會講到基礎的資料庫和版本控制(Git)觀念,非常不錯,但這裡講的 Rails 非常淺,是很好的起步但不夠。
  • Rails for Zombies Redux | Code School:這門課也是免費的,把 Rails 的觀念講得很清楚,尤其是把 ROR 的一些核心觀念用圖解說是很友善也易懂的方式。但內容會比較硬,有時需要來回看或是看其他材料再回來看才能吸收得好,這算是很重要的教材。
  • Rails for Zombies Redux 2 | Code School:從上一門課接下來上這門課,其實難度會有一點跳耀,所以若覺得很挫折是很正常的。但建議把它先啃完,以後做一些練習或看其他教材後,可再回頭參考。我自己的經驗是 ROR 需要一直來回練習和學習才能逐漸消化。
  • Ruby on Rails 實戰聖經:這是由 ihower 撰寫的很豐富的 ROR 知識和技巧,但建議當作工具書查詢,如果當成教科書唸會很累。

資料庫基礎:

雖然要做 Ruby on Rails 網站,很多資料庫工作都可透過 ROR 的方法處理,而不需要自己撰寫資料庫語法,但是了解資料庫原理還是非常有幫助。而且未來開發較複雜的網站也很容易碰到自己撰寫一些 SQL 語法。在非關連資料庫(NoSQL)如 MongoDB 的部分我比較沒辦法提供學習素材,因為自己目前還沒有用到,但這是需要學習的部分,NoSQL 很強大也越來越受歡迎。

版本控制基礎:

版本控制(version control)雖然不是程式語言,但不論是個人或團隊撰寫程式,都是很重要的工具,可以避免版本混亂,或是當程式出錯可以回復到之前版本,降低各種開發時的不確定性。

前端進階:Javascript

後端進階:Ruby on Rails、AWS

  • Ruby on Rails Tutorial:這本由 Michael Hartl 寫的免費的線上電子書,是非常有名的 ROR 教材,現在最新版是講最新的 Rails 5。需要耐心一面看一面手動練習,看完且有做實際練習之後收穫會非常大,我會列為必要教材。
  • The Professional Ruby on Rails Developer:這是 Udemy 上的課程,包含完整的 ROR 網站程式撰寫和串接AWS雲端伺服器資源,裡面有些部分如 AWS 若還不了解,也都還可以依樣畫葫蘆,並有初步了解。這門課的好處是除了練習建置完整的 ROR 網站,也可以先學到如何部署程式到雲端伺服器 Heroku ,以及如何使用 Github 做版本控制和備份程式。
  • AWS Certified Solutions Architect – Associate 2017 | Udemy:這門課有完整的 AWS 服務教學,比較全面。但若需要深入使用個別服務,需另外 google 找資料。AWS 的官方文件很豐富,但有些處理方式也沒辦法寫得很完整。我很推薦使用 AWS 上的 Elastic Beanstalk,它非常方便的整合 S3 儲存、EC2 運算、RDS 資料庫等資源,部署程式也很容易。這服務可以降低非常多管理伺服器成本,對於不熟悉伺服器管理的工程師是非常棒的工具。但也因為這些方便性,使得一些管理彈性較低,因為 Amazon 擔心工程師有太大權限會搞亂系統重要設定。但我覺得初期都不用太擔心這個,重點是驗證產品和營收模式,日後有錢再找工程師升級、搬遷、優化都不是問題。
  • Rails 4:Zombie Outlaws | Code School:進階 Rails 技巧,較深入。
  • Surviving APIs with Rails | Code School:進階 Rails 技巧,主要以串接 API 的技巧為主。
  • Rails 4 Patterns | Code School:進階 Rails 技巧,較深入。

繼續升級

學完這些教學之後,要繼續升級寫出更強大的程式,我覺得有幾個重點:

親手製作專案

最重要的還是自己做專案才能進步,否則只是上課練習或甚至只有聽課,幫助極為有限。可以從簡單的開始做起,例如 to-do list、部落格,之後再自己想一些服務試著做做看,做出來會很有成就感。也有的 Ruby 學習網站就是讓學習者做出一些知名網站的功能,例如 AirnBnB、Twitter 這些,一方面學得快,二方面從練習成果也比較容易獲得信心。

Google

Google 技巧其實是很重要的部分。我曾碰到某些難題,知道非得找高手幫助不可,就在 Code Mentor 上找人協助,用遠端協作看到他們如何 google 問題找答案,而且能只看前面幾筆結果就能判斷答案是否在那,如果前幾筆沒有就轉換搜尋策略。從觀察高手 google 我才學到更多技巧。

Stackoverflow

Stackoverflow 也是非常重要的網站,這裡有很多工程師回答問題。其實大部份基礎問題幾乎都已經可以在這找到了,也可以張貼問題,但這網站是有等級制度的,也就是要多發問、點擊 upvote 到一定數量才能評論、回答問題,這也才能累積出有公信力和實力的答案。

善用第三方資源

現在外部資源非常豐富,就算是免費的幾乎都用不完了,包括 API、Ruby gem、Javascript library,不需要每個功能都自己重新寫,這樣開發速度才快。

AWS

AWS 的服務種類增加非常快,現在甚至有 AI 的平台,讓開發者不必自己開發 AI 程式就能分析數據或做出有機器學習能力的功能。所以多利用和熟悉 AWS 資源也非常有幫助。

《創新產品煉金術:獲得第一千個鐵粉客戶,打造不敗產品》讓你了解如何創造第一千個鐵粉客戶,先立於不敗之地,再獲得更大成功
線上課程「創新產品從零到一:產品規劃、客戶開發與市場策略」讓你系統性的了解創新方法和豐富案例
折扣碼:Vincent100
Summary
從零到完整架設雲端服務網站的自學材料
Article Name
從零到完整架設雲端服務網站的自學材料
Description
我在網路上自學 Ruby on Rails、Javascript 等語言,從開始學習到做出簡單的部落格和數千使用者的雲端服務,約有一到二年時間,中間大部份都是下班回家自學。這裡分享我自學的資源清單和注意事項,供想要學做雲端服務網站的人參考。
Author
Publisher Name
NovaPoints
Publisher Logo