身为一名前端工程师,Mackenzie认为世界上需要更多的「独角兽(Unicorn)」,Mackenzie口中所谓的「独角兽」,是程式开发界传说中的生物,不但精通UI/UX设计,还能同时进行前端和后端开发的厉害角色。「独角兽」稀有的原因不难明白,毕竟要能成为同时精通前端设计和后端开发的工程师并不简单,就像找一名文科理科都爆强的学生不容易一样。
想成为独角兽,左脑右脑都要可以灵活使用,要拥有敏锐的设计天份,还要有厉害的逻辑思维。Mackenzie相信,如果进行后台开发的工程师能有一点设计美感,进行前端设计的设计师能会一点程式开发,如果世界上有更多这样的「独角兽」,那生活将会更美好!
Ibelievetheworldcouldbeabetterplaceifmoredesignerslearnedhowtocodeandmoredeveloperslearnedhowtodesign.––MackenzieChild
几个月前我决定开始学Rails,在这之前我也曾经「玩过」Rails,只是总是遇到瓶颈就半途而废,或是找到更「有趣」的事情而无疾而终。
一直以来我都很想将一个点子,从头到尾、从前端到后端,全都自己开发完成,成为开发界的「独角兽」––一个精通UI/UX设计,还能同时进行前端和后端开发的厉害角色。
所以啦,我决定开始好好学习Rails!
之前我学Rails都是跟著线上的教学,但一牵扯到教学裡没提到的部分就完蛋了,当然更多时候,光是线上教学的内容我就搞不定了。看教学固然重要,但是要真正的瞭解Rails,最重要的是「动手打造」!於是我决定挑战我自已:
挑战自己用Rails连续12个星期,每个星期制作一个截然不同的网页应用程式,我将这项挑战称作:「12in12Challenge」。
我得非常诚实的告诉你们,这项挑战......还真他x的难啊!
对我而言这么困难的主要原因,也是因为在进行这项挑战的过程中,我还得同时兼顾白天的全职工作。这12个星期裡,好几次我都想放弃、想辞职,也气自己傻!为什么不选个「4in4」就好,偏偏选个「12in12」。
每个星期我都在挣扎中度过:动手写程式、遇上困难、出了找不到原因的Bug,接著花上好几个小时Google如何解决问题(要能够打出对的关键字去Google出答案,这又是另一门非常高深的学问了...),通常我能在Stackoverflow上找到我要的答案而顺利解决,有时候则无意间在某某不知名开发者的博客裡抓到一点头绪,一知半解、硬著头皮继续写下去。
但就在我死撑、硬撑过每个星期的同时,奇妙的事情发生了。
这些挑战变得一个星期比一个星期简单!大概在第五个星期时,我对我打造的应用程式基础架构已经很有自信,开始接著理解MVC模型(Model/View/Controller)概念!写程式时Debug速度变得越来越快,对於未知错误的恐惧也慢慢消失了。
在完成这项挑战后,我可以很自信地告诉你们,每个迸到我脑中的点子我都有把握能写出MVC!更重要的是,任何没写过的应用程式,我现在都有自信,我绝对能把它们搞懂,想办法把它们生出来。
不过别误会我的意思,我不是因此变成了「高高手」,在开发Rails这个领域裡,这项挑战只是一个很棒的「开始」,我还有太多需要学习、太多不同的主题需要尝试,这些都是我未来需要做足功课、计划周详的。
废话不多说,就来看看我12个星期裡完成的12个应用程式吧!以下是我在「12in12Challenge」裡完成的作品跟教学影片,所有的程式码都放在Github上免费提供给你们。
学习任何程式语言都是一个障碍重重的挑战,我希望我制作的这些教学步骤、影片,能够在Rails新手们学习的过程中提供一点帮助。