Mackenzie Child 是一名设计师、工程师、也是一名 Youtuber 兼 Blogger,白天在 Precision Nutrition 担任前端工程师,晚上则一边自修程式设计、一边荧幕录影(Screencast),把学到的东西用 Youtube 分享给大家。
同时 Mackenzie 也会在他的博客 mackenziechild.me 上纪录一些想法、设计作品、工作点滴。Mackenzie 在 Medium、Instagram、Twitter、Dribbble、Github 等平台上都十分活跃。
身为一名前端工程师,Mackenzie 认为世界上需要更多的「独角兽(Unicorn)」,Mackenzie 口中所谓的「独角兽」,是程式开发界传说中的生物,不但精通 UI / UX 设计,还能同时进行前端和后端开发的厉害角色。「独角兽」稀有的原因不难明白,毕竟要能成为同时精通前端设计和后端开发的工程师并不简单,就像找一名文科理科都爆强的学生不容易一样。
想成为独角兽,左脑右脑都要可以灵活使用,要拥有敏锐的设计天份,还要有厉害的逻辑思维。Mackenzie 相信,如果进行后台开发的工程师能有一点设计美感,进行前端设计的设计师能会一点程式开发,如果世界上有更多这样的「独角兽」,那生活将会更美好!
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 新手们学习的过程中提供一点帮助。
第 一 周
如何用 Rails 制作一个 Reddit
博客步骤详解、Github Repo
第 二 周
如何用 Rails 制作一个博客
博客步骤详解、Github Repo
第 三 周
如何用 Rails 制作一个食谱 APP
博客步骤详解、Github Repo
第 四 周
如何用 Rails 制作一个 Pinterest
博客步骤详解、Github Repo
第 五 周
如何用 Rails 制作一个电影评价 APP
博客步骤详解、Github Repo
第 六 周
如何用 Rails 制作一个 Todo 待办事项 APP
博客步骤详解、Github Repo
第 七 周
如何用 Rails 制作一个求才职缺版
博客步骤详解、Github Repo
第 八 周
如何用 Rails 制作一个健身纪录 LOG
博客步骤详解、Github Repo
第 九 周
如何用 Rails 制作一个维基百科
博客步骤详解、Github Repo
第 十 周
如何用 Rails 制作一个论坛
博客步骤详解、Github Repo
第 十一 周
如何用 Rails 制作一个记事本 APP
博客步骤详解、Github Repo
第 十二 周
如何用 Rails 制作一个类似 Dribbbe 的 APP
博客步骤详解、Github Repo
转自 我是這樣學會 Ruby on Rails:12 個星期打造 12 個網頁 APP
收藏一下,慢慢学,感觉学完会很厉害的样子!