Mackenzie Child 是一名設計師、工程師、也是一名 Youtuber 兼 Blogger,白天在 Precision Nutrition 擔任前端工程師,晚上則一邊自修程式設計、一邊熒幕錄影(Screencast),把學到的東西用 Youtube 分享給你們。前端
同時 Mackenzie 也會在他的博客 mackenziechild.me 上紀錄一些想法、設計做品、工做點滴。Mackenzie 在 Medium、Instagram、Twitter、Dribbble、Github 等平臺上都十分活躍。git
身爲一名前端工程師,Mackenzie 認爲世界上須要更多的「獨角獸(Unicorn)」,Mackenzie 口中所謂的「獨角獸」,是程式開發界傳說中的生物,不但精通 UI / UX 設計,還能同時進行前端和後端開發的厲害角色。「獨角獸」稀有的緣由不難明白,畢竟要能成爲同時精通前端設計和後端開發的工程師並不簡單,就像找一名文科理科都爆強的學生不容易同樣。github
想成爲獨角獸,左腦右腦都要能夠靈活使用,要擁有敏銳的設計天份,還要有厲害的邏輯思惟。Mackenzie 相信,若是進行後臺開發的工程師能有一點設計美感,進行前端設計的設計師能會一點程式開發,若是世界上有更多這樣的「獨角獸」,那生活將會更美好!web
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」 分享給你們,本文並不是逐字翻譯,有興趣請閱讀原文。架構
幾個月前我決定開始學 Rails,在這以前我也曾經「玩過」 Rails ,只是老是遇到瓶頸就半途而廢,或是找到更「有趣」的事情而無疾而終。app
你知道,我是一名圖像設計師兼前端開發人員,16 歲時開始進行圖像設計(Graphic Design),到了 20 歲時主要致力於網頁前端設計,在這段時間裡,我一直有綿綿不斷的點子想完成,卻沒有多餘的錢聘請專業的網頁開發者(Web Developer),也沒有本身學著開發製做。ide
一直以來我都很想將一個點子,從頭至尾、從前端到後端,全都本身開發完成,成爲開發界的「獨角獸」–– 一個精通 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 新手們學習的過程當中提供一點幫助。
轉自 我是這樣學會 Ruby on Rails:12 個星期打造 12 個網頁 APP 收藏一下,慢慢學,感受學完會很厲害的樣子!