我是這樣學會 Ruby on Rails:12 個星期打造 12 個網頁 APP

Mackenzie Child 是一名設計師、工程師、也是一名 Youtuber 兼 Blogger,Mackenzie 認為世界上需要更多的「獨角獸」—— 精通 UI / UX 設計,還能同時進行前端和後端開發的厲害角色。於是專精前端的他,決定學習後端開發的 Ruby on Rails,並且完成一項艱鉅的挑戰:連續 12 個星期,每個星期用 Rails 做出一個不同的網頁應用程式。Mackenzie 將這項挑戰稱作「12 in 12 Challenge」。
評論
評論

Mackenzie Child 是一名設計師、工程師、也是一名 Youtuber 兼 Blogger,白天在 Precision Nutrition 擔任前端工程師,晚上則一邊自修程式設計、一邊螢幕錄影(Screencast),把學到的東西用 Youtube 分享給大家。

同時 Mackenzie 也會在他的 部落格 mackenziechild.me 上紀錄一些想法、設計作品、工作點滴。Mackenzie 在 MediumInstagramTwitterDribbbleGithub 等平台上都十分活躍。

身為一名前端工程師,Mackenzie 認為世界上需要更多的「獨角獸(Unicorn)」,Mackenzie 口中所謂的「獨角獸」,是程式開發界傳說中的生物,不但精通 UI / UX 設計,還能同時進行前端和後端開發的厲害角色。「獨角獸」稀有的原因不難明白,畢竟要能成為同時精通前端設計和後端開發的工程師並不簡單,就像找一名文科理科都爆強的學生不容易一樣。

想成為獨角獸,左腦右腦都要可以靈活使用,要擁有敏銳的設計天份,還要有厲害的邏輯思維。Mackenzie 相信,如果進行後台開發的工程師能有一點設計美感,進行前端設計的設計師能會一點程式開發,如果世界上有更多這樣的「獨角獸」,那生活將會更美好 1

I believe the world could be a better place if more designers learned how to code and more developers learned how to design. –– Mackenzie Child

於是去年底,Mackenzie Child 在部落格上分享了一個特別的經歷,專精前端設計的他,決定開始學習後端開發的 Ruby on Rails,並且完成一項艱鉅的挑戰:連續 12 個星期,每個星期用 Rails 做出一個不同的網頁應用程式。Mackenzie 將這項挑戰稱作「12 in 12 Challenge」。

在這裡將 Mackenzie Child 完成「12 in 12 Challenge」所記錄下的文章 「How I finally learned to build stuff with Rails」 分享給大家,本文並非逐字翻譯,有興趣請閱讀原文。


How I finally learned to build stuff with Rails

Hint: I built 12 different web apps in 12 weeks

幾個月前我決定開始學 Rails,在這之前我也曾經「玩過」Rails ,只是總是遇到瓶頸就半途而廢,或是找到更「有趣」的事情而無疾而終。

你知道,我是一名圖像設計師兼前端開發人員,16 歲時開始進行圖像設計(Graphic Design),到了 20 歲時主要致力於網頁前端設計,在這段時間裡,我一直有源源不絕的點子想完成,卻沒有多餘的錢聘請專業的網頁開發者(Web Developer),也沒有自己學著開發製作。

一直以來我都很想將一個點子,從頭到尾、從前端到後端,全都自己開發完成,成為開發界的「獨角獸」––  一個精通 UI / UX 設計,還能同時進行前端和後端開發的厲害角色。

所以啦,我決定開始好好學習 Rails!

之前我學 Rails 都是跟著線上的教學,但一牽扯到教學裡沒提到的部分就完蛋了,當然更多時候,光是線上教學的內容我就搞不定了。看教學固然重要,但是要真正的瞭解 Rails,最重要的是「動手打造」!於是我決定挑戰我自已:

挑戰自己用 Rails 連續 12 個星期,每個星期製作一個截然不同的網頁應用程式,我將這項挑戰稱作:「12 in 12 Challenge」。

不只如此,我讀了一篇文章在講「教別人會讓自己學得更好(You learn better by teaching)」的道理,相信大家都曾聽過這個說法,因為在教別人之前,必須將所學的東西吸收、消化,再整理出來,要解釋得讓別人聽得懂,那又是另一個境界的理解!所以除了動手做 Web 應用程式以外,我還將製作的過程錄成了教學影片,也在部落格裡將步驟一步步記錄下來。

我得非常誠實的告訴你們,這項挑戰...... 還真他 x 的難啊!

對我而言這麼困難的主要原因,也是因為在進行這項挑戰的過程中,我還得同時兼顧白天的全職工作。這 12 個星期裡,好幾次我都想放棄、想辭職,也氣自己傻!為什麼不選個「4 in 4」就好,偏偏選個「12 in 12」。

每個星期我都在掙扎中度過:動手寫程式、遇上困難、出了找不到原因的 Bug,接著花上好幾個小時 Google 如何解決問題(要能夠打出對的關鍵字去 Google 出答案,這又是另一門非常高深的學問了...),通常我能在 Stack overflow 上找到我要的答案而順利解決,有時候則無意間在某某不知名開發者的部落格裡抓到一點頭緒,一知半解、硬著頭皮繼續寫下去。

但就在我死撐、硬撐過每個星期的同時,奇妙的事情發生了。

這些挑戰變得一個星期比一個星期簡單!大概在第五個星期時,我對我打造的 應用程式基礎架構已經很有自信,開始接著理解 MVC 模型(Model/View/Controller)概念!寫程式時 Debug 速度變得越來越快,對於未知錯誤的恐懼也慢慢消失了。

在完成這項挑戰後,我可以很自信地告訴你們,每個迸到我腦中的點子我都有把握能寫出 MVC! 更重要的是,任何沒寫過的應用程式,我現在都有自信,我絕對能把它們搞懂,想辦法把它們生出來。

不過別誤會我的意思,我不是因此變成了「高高手」,在開發 Rails 這個領域裡,這項挑戰只是一個很棒的「開始」,我還有太多需要學習、太多不同的主題需要嘗試,這些都是我未來需要做足功課、計劃周詳的。

廢話不多說,就來看看我 12 個星期裡完成的 12 個應用程式吧!以下是我在「12 in 12 Challenge」裡完成的作品跟教學影片,所有的程式碼都放在 Github 上免費提供給你們。

學習任何程式語言都是一個障礙重重的挑戰,我希望我製作的這些教學步驟、影片,能夠在 Rails 新手們學習的過程中提供一點幫助。

Week 1

如何用 Rails 製作一個 Reddit

部落格 步驟詳解 、Github Repo

Week 2

如何用 Rails 製作一個部落格

部落格 步驟詳解 、Github Repo

Week 3

如何用 Rails 製作一個食譜 APP

部落格 步驟詳解 、Github Repo

Week 4

如何用 Rails 製作一個 Pinterest

部落格 步驟詳解 、Github Repo

Week 5

如何用 Rails 製作一個電影評價 APP

部落格 步驟詳解 、Github Repo

Week 6

如何用 Rails 製作一個 Todo 待辦事項 APP

部落格 步驟詳解 、Github Repo

Week 7

如何用 Rails 製作一個求才職缺版

部落格 步驟詳解 、Github Repo

Week 8

如何用 Rails 製作一個健身紀錄 LOG

部落格 步驟詳解 、Github Repo

Week 9

如何用 Rails 製作一個維基百科

部落格 步驟詳解 、Github Repo

Week 10

如何用 Rails 製作一個論壇

部落格 步驟詳解 、Github Repo

Week 11

如何用 Rails 製作一個記事本 APP

部落格 步驟詳解 、Github Repo

Week 12

如何用 Rails 製作一個類似 Dribbbe 的 APP

部落格 步驟詳解 、Github Repo

《延伸閱讀》

Ruby on Rails 發明人的告白:賣掉股票、變身百萬富翁的那天,我得到了什麼呢?

歡迎加入「Inside」Line 官方帳號,關注最新創業、科技、網路、工作訊息

好友人數

中小學生家長別錯過幫孩子報名!宅在家也能邊玩邊學的CodeComabt線上程式競賽開跑!

遠距學習已是近日趨勢,怎麼讓孩子的學習跟上國際的腳步?2021國際青少年程式爭霸賽,讓8~16歲的孩子在家就能線上參加程式競賽。
評論
評論

即將到來的暑假是讓中小學生放風體驗各種活動的時機,但眼看疫情蔓延,家長們還遲遲未動手幫孩子選擇夏令營活動嗎?現在有一個針對中小學生的國際性線上程式競賽正在舉辦,已吸引全國從北到南甚至花東許多學校的中小學生報名參加,千萬別錯過!

「2021國際青少年程式爭霸賽」是針對 8~16 歲孩子所籌辦的線上程式競賽,由科技教育新創公司 AI4kids、南一出版集團與社團法人中華多元智能教育協會合作發起第一屆賽事,採用全球有 2000 萬用戶的遊戲化程式教育平台 CodeCombat 作為參賽選手的學習與比賽網站,免報名費即可參加,讓中小學生從「零基礎」開始,透過解題關卡練習,逐步學習 Python 程式語言,並透過精心設計的英雄程式對戰系統來比賽。

過去這個競賽機制每年會在香港、新加坡、美國等各地區辦理,吸引廣大的學生參賽,今年第一次由主辦單位引入台灣,自七月起,分初賽、複賽與決賽三階段競技,最後決賽勝出的選手,更將代表台灣參加美國 CodeQuest 全球競賽!

▲2021國際青少年程式爭霸賽四月先在桃園祥安國校舉辦前導校內賽 讓小六學生熱血投入、大喊好玩!

邊學習邊參賽 接軌 108 課綱程式設計能力

目前中小學校大部分以 Scratch 積木式程式語言來培育孩子運算思維,主辦單位希望透過這場比賽,讓中小學生進一步接觸真實的 Python 程式語法,以提早接軌 108 課綱國、高中科技領域的程式設計能力。而這對中小學的孩子來說會很難嗎?一點也不會,因為競賽平台 CodeCombat 的設計是以遊戲化介面、英雄與寶石故事場景來吸引中小學生從淺入深一步一步的學習程式基礎語法,從資料型態、變數、參數、字串一直到迴圈、條件式、函示等程式邏輯概念,都能透過關卡大量練習來精進,在新加坡、香港等其他國家也用 CodeCombat 平台舉辦過多屆青少年的程式大賽。

競賽平台 CodeCombat 的遊戲化學習程式介面,讓中小學生躍躍欲試
初賽競技場 選手需寫出程式讓自己的英雄戰勝對手
初賽競賽場,選手須充分發揮運算思維,寫出程式來操控英雄挑戰對手取得勝利。
從初賽、複賽到決賽 每個階段合格選手,均能取得電腦科學國際證書

怎麼讓孩子準備比賽

效法均一教育平台,主辦單位亦為參賽選手們準備了程式教學影片,家裡只要有一台上網電腦,就可以讓孩子來參加比賽,孩子將透過專業講師的指導加上大量程式關卡練習,在分階段的賽程中取得好成績。主辦單位也積極籌辦線上選手營,在暑假期間,讓中小學生可以透過線上真人講師指導的方式,精進競賽的實力。

參加賽事過程中有教學影片讓小選手們從零開始準備競賽所需的程式能力
準備電腦與網路給孩子,在家就能學程式參加比賽
進入決賽的選手將獲主辦單位推薦參加 CodeQuest 全球青少年程式競賽

如何報名

2021 國際青少年程式爭霸賽,自即日起自 7/10 止,開放所有中小學生報名,分國小組與國中組兩個組別,競賽採多人程式對戰方式,可重複上傳自己的程式碼,由系統自動計算成績並更新排名,直到競賽日期截止。初賽自即日起~7/11、複賽 7/13~7/18、決賽 7/23~7/25,通過每階段挑戰的選手均可以獲得證書與排名獎狀,決賽優勝選手由主辦單位推薦參加 CodeQuest 全球競賽,與來自全世界的青少年一同競技,難得的競賽盛會,家長們千萬別錯過為孩子報名的機會!

競賽報名網址:https://ai4kids.ai/itcc2021/

競賽報名QRcode

(學校或教育機構團體報名,請洽社團法人中華多元智能教育協會 02-26624610)

主辦單位

競賽平台

聯繫主辦單位

Email:[email protected]
Messenger:https://m.me/AI4kidsTW

本文由「愛奇智慧科技」提供,經關鍵評論網媒體集團廣編企劃編審。