學習程式經驗談(一)

發現越來越多人開始學習Ruby on Rails,但還是有些人想學卻又不知如何開始。其實學習一項技術,除了本身要有興趣外,持之以恆與虛心學習更是重要。我本身並非程式人員出身,也是三十歲以後才慢慢開始接觸寫程式。以前看別人在寫總是抱以羨慕的眼光,一直告訴自己那是自己不熟悉的領域。在一個開發網站的Team中,除了程設與美工,或者前端技術工程師外,還需要統籌與行銷人員,自己扮演好自己的角色即可,但如果自己也能動手做的想法一直沒有停止,雖然現在網站的分工越趨細膩,一個人能做出的東西有限,但是這個想法還是一直停留在腦中。

一直到認識一個朋友推薦我去上巨匠。當時巨匠正在推廣終身會員制,終身會員報名課程也會打折,但是這項優惠當時就要結束了。抱著充實自己的想法花了一筆錢報名了巨匠,選了php,linux管理,dreamweaver與photoshop等課程,夢想打開進入”會做網站的工程師”的世界。但這個夢真的是做的太美了,上完這些課後,我連怎麼安裝php都不會,但打開PS做點特效倒是OK。上了這些課一年後又回到原點,連html的form與table都傻傻分不清楚,更別說要寫什麼程式了。當初為了學php而買的書,還放在架子上,只翻完幾頁而已,有買不見得有保佑。

時間又過了大半年,在工作上還是一樣瞎忙,只會與工程師打屁。每次討論網站技術問題時,就像是一個人站在門口,知道屋子裡有很多寶藏,但是沒開燈黑黑的看不清楚;或許知道可以那麼做,但要如何開始卻說不上來。直到有一天看了某人的文章,該系列文章目前已經找不到了,不過大意是說他本人不會程式,但卻能在兩個月內做出他心中的網站雛形。不會寫程式卻能做網站?這邊說的不是架部落格或者用Dreamweaver寫些靜態網站,而是做出能夠與使用者互動的動態網站。是PHP嗎?文章中沒寫,不過因為是系列文章,所以開始找下一篇,那位作者提到了Ruby on Rails,那是三小?趁著中午與同事吃飯的時候問他關於Ruby on Rails的問題,畢竟他懂得比較多。他回覆是一種網站框架,而且不是用php寫的。當時對程式語言我可是七竅通六竅,一竅不通,認為網頁的程式語言不是php,jsp,就是asp,什麼框架都沒聽過,現在想想真是井底之蛙。框架這個名詞,或許中文的翻譯如此是因為框架本身幫你排除了許多底層要處理的問題,就好像一棟房子你不用從頭蓋起,而是直接送你一棟房子,你只要做室內設計,然後把家具擺進來就可以住人了,省時省力。但似乎也有另外一個意思,就是被限制在原來蓋的房子裡面,你要加蓋,不行!你要挖洞,不行!你要加裝電梯,不行!因為框架把你限制住了,那如果我有偉大的idea要做,會不會被”框架”限制住?而且人家都幫你做好了,那你還是一樣不會蓋房子,會做室內設計又怎樣,沒有也可以住人阿。現在對照以前的想法只能框架這個詞真的是把人限制住了,還是直接用英文的原意framework來表達會更好。

雖然第一次接觸到了Ruby on Rails(簡稱ROR),但坦白說沒有任何要學習的念頭,只因為對ROR不了解,加上大多數的人都以php為優先,放著php不學跑去學一個沒人聽過的東西,將來若要以此技術工作或者開發遇到問題要怎麼辦?身旁沒有該技術的高手不說,就連中手,低手都沒有,但是php的人員可是很多。打開104一查,php需求職位3000,ROR需求0。這麼大的落差,選擇不是主流的ROR真的是一種勇氣,傻子才會去做。不過事情總有個轉變,當時台中的龍軒書局還沒結束營業,但也只剩下NOVA隔壁那家。我當時都有看硬體相關書籍的習慣,只是NOVA那家離我家比較遠,中友那家倒閉後我也很少在買PC DIY或Computer DIY一類的書,相關資訊都是上網查詢,基本上已經很少進電腦相關的書店買書了。但在那個沒上班的禮拜六下午心血來潮騎車到龍軒,逛完了熟悉的硬體雜誌區後莫名的走到程式語言相關的書架前,看著我不熟悉的專業名詞,C,C#,C++傻傻分不清楚。突然間眼角瞄到了一本書:

Ruby Programming-向Ruby之父學程式設計

Ruby?這不是ROR的其中一個字嗎?其實當時雖然知道ROR是個框架,但對Ruby本身是毫無所悉的,更別說知道他是一門程式語言。我想就是那時無意間翻開了那本書,一直站在那裡看完了前面幾章,然後改變了我後面的人生。如果我當時看到的是另一本:

Ruby 程式設計

我想我一定馬上放棄ROR。Ruby 程式設計雖然這本書我也有買,不過不推薦給初學者。Ruby Programming仍然是我至今最推崇的一本程設入門書藉,特別是給那些不會寫程式卻又想嘗試的人。或許別的程式語言也有相似的啟蒙書,但如果有遇到想學ROR的人我一定先推薦Ruby Programming。雖然本書的作者很重要,但譯者更重要,因為實在是讀過太多翻譯差的書了。當時鮮少花錢在買技術書籍的我,看著這本書非常猶豫,很怕買了又像擺在架子上的幾本php一樣生灰塵,所以當下並沒有馬上買。不過隔週上班後卻對該書念念不忘,所以才開始鍵盤研究ROR。

俗語說知難行易,要先克服自己內心的恐懼,才會鼓起勇氣向前邁進。當時看了許多關於ROR的介紹,特別是這篇 網站開發快10倍-探索Ruby on Rails的高速魔法 讓我看了增添不少信心。再來因為當時台灣web 2.0的概念開始萌芽,許多網站已經取得不錯的成績,例如當時台灣書籤網站的先行者黑米hemidemi也是使用ROR進行開發的,還有當時還沒什麼人聽過的twitter,沒想到所謂的框架並沒有框住網站的形式,反而已經通過市場的考驗。隨然當時台灣知道ROR的人還不是很多,但我心裡想,就是你了。那個週末就趕緊到書店買了那本書回家研習一番,心中那個寫程式的夢又開始悄悄萌芽…