學習程式經驗談(三)

在學習Ruby on Rails的初期階段,靠著一些入門書,教學影片與同事的協助下,勉勉強強的學會如何設定資料庫與網頁CRUD的製作。那時候心想大部份動態網站的需求都是CRUD,那只要會CRUD根本就可以開始做網站了,現在想想那時候真的是憨膽。有天老闆找我,告訴我他有一個網站的需求,當時公司的同事正忙著其他網站開發的事,因此我想是否可以先用學習不久的ROR來開發老闆要求的網站,所以答應老闆三個月內把他需要的網站做出來,因為那個網站的需求其實不高。在找到一個可以嘗試練功的機會當然要好好把握。當時白天進行開發,遇到問題就上網找或者詢問同事,晚上就開始K書與上論壇請教高手。初期學習最好的方式就是硬把程式碼背下來,反覆練個幾遍,在練習的過程學著理解。

完成了第一個網站後,我便嘗試著進行第二個網站的開發。當時RSS算是蠻流行的網站功能,透過這個功能使用者可以以訂閱的方式最快的獲取該網站的最新資訊。當時的想法是,透過爬蟲定時的去指定的部落格或具有RSS功能的網站,將撈取回來的資料分類,例如像是運動,娛樂,科技,或是kuso等類別,再將這些類別轉成RSS供會員訂閱;還有可以讓會員設定特定的關鍵字,然後定時的從資料庫中撈取這些關鍵字相關的文章,轉成RSS格式供會員訂閱。後來又做了一些功能簡單的小品網站,當然以當時開發的速度是非常非常的慢,但是還是跨出了那一步。我開始學習的年紀已經超過三十歲,在學習速度上比不上年輕人,所以把學習這些技術作為是一種興趣也是相當重要的。當時只要有相關文章或教學聚會,就會找時間閱讀或參加。隨著累積的知識與經驗越多,開始給自己設定一些能夠完成的小目標,例如可以完成什麼功能或效果,這樣做的好處是可以加強自己的自信心並培養更強烈的興趣。

後來因為生涯的規劃上的改變,暫時離開了網站的開發而轉做別的行業。有朋友認為如果有興趣,開發網站可以拿來做副業,因此鼓勵我繼續,並主動介紹一些機會給我,因此在中斷了幾個月後,我開始接了一些簡單的網站,直接面對客戶,畢竟以前都是在自己公司內,做著自己會的部份,超過能力範圍的功能連想都不敢想。但是出來接案子就不是這麼回事了。客戶有各式各樣的需求,有些要與外部網站做串接,有些是要在網頁上產生效果,有些是金流與購物車方面的流程。在接觸這些案子的過程中,學習將客戶的想法轉成實際的功能真的是一項挑戰。透過教學影片與Google大神的協助一一克服了許多超過自己想像的功能與技術。回首過去這段學習史會發現,其實要學會怎麼製作網站,特別是程式化的網站,最好的方式就是看影片學習。就我自己最常用的如lynda.com, Railscasts,Nettuts或者是Codeschool等都是非常好用的資源。有時候第一次看並不會馬上懂,但多看個幾次就能夠體會出當中的精髓。雖然這些線上教學都是需要付費的,但這是自我投資的最佳方式,對我來說比買書回來看更有效,當然前提是英文的部份也是要能夠聽與閱讀。

遇到不懂的問題或者套件錯誤時,我會推薦直接到相關的專案的github去找尋答案,又或者是到stackoverflow上詢問,這些都是碰上問題時解決的方法。在取得相關技術資料方面,我會利用facebook的社群,加入與網站開發有關的社團與追蹤這個業界較有名氣的高手或前輩;另外也可以訂閱電子報來取得最新消息,例如像ruby weekly, javascript weekly與html weekly這些都是很不錯的。參加聚會與年度Conference也是一個方式,不過我認為最好的還是教學影片。以上就是這幾年學習的一些經驗。我的心得是,只要有心學習,要取得相關的學習資源是非常非常容易的,相較於其他專業技術,能在這個時代學習程式真的太幸福了。