2016年3月23日 星期三

Growth School 的Rails 商務網站X即戰力班 學習心得

由XDite辦的rails 商務網站X即戰力班,趁著記憶猶新好好的整理一下心得分享。

這門課幫助我哪些

時間、時間、時間

至少可以說出這門課三個節省時間的模式,還有因為感受很深所以說三次。

  1.  提出問題到解決的時間 : hours -> minutes
  2.  完成一個夠水準作品的時間:months -> weeks 
  3.  達到知道怎麼發問,問什麼問題會得到解答的能力:months ->weeks

以往曾經嘗試自學過php, python+django架構,但是結果總是在完成一個最陽春功能後開始撞牆(開始嘗試約二、三個月),然後開始fade out,轉頭嘗試其他的東西。也許部份的原因是注意力不集中症後群(!?),最重要的原因也是因為沒有成就感,覺得要完成一個簡單的作品就這麼難,何況是自己腦海中刻劃的那有點複雜的作品原型呢?人的本能反應就是轉頭嘗試其他解法。

仔細想了其中的原因是什麼,一是不熟悉這種自己找答案自學的方式,網路上接收到的資訊太雜亂了,有時根本不知道問題在哪邊,以try and error方式花費了不少時間,要解決一個問題可能是以小時為單位的。二是不知道怎麼問問題,所以問題很容易一直發散。這堂課的規劃幾乎沒有讓人有以前不停撞牆的感受。

有如工具書般的教材

可讀性很高,極少有看了但不知道要加在哪的程式碼,這點很細節不容易被注意,但是非常重要。而且只要照著步驟去做,一定可以完成。自己遇到一半以上的問題,幾乎都不是教材的錯誤,而是來自於自己少做了其中哪幾個步驟。曾經嘗試寫過教學文件的人都知道要寫一個"讓九成以上的人照作就可以得到成功的結果"的教材有多麼的困難,顯示得出這份教材是非常用心在撰寫的。

經驗傳承

講師XDite傳授了許多心法,舉凡開發產品時會用到的技巧,開發者常遇到的問題QA,如果說怎麼寫rails網站是招式,那這些技巧、經驗就是內功了,這些經驗往往是經過大大小小專案才洗鍊而成的心法在這堂課也一併傳授,很受用。

此外這堂課也有非常強大的助教群,人數上也很足夠。每當實作上有任何問題的時候,助教也可以馬上協助。甚至我覺得助教在課堂上的跑步速度可能每經過一季課程都有在被檢討進步的(!?)雖然這樣說有點誇張,但總結來說我覺得是一門有用心經營的課程。(感謝強大的助教群,以極快的速度回應協助我們)

上這門課遇到的難題

ruby的文法

rails是用ruby寫的網頁框架,在語言特性的熟悉上也遇到一點點的麻煩。有寫過python的人可能也會跟我類似的經驗(因為python的文法限制較多,連空格都有嚴格規定),在讀rails的code時,會對於許多文法感到疑惑。因為rails有許多省略的寫法,但是功能、目的是一樣的,比如說引用一個函式 adder(a,b),也可以寫作adder a,b,這兩個是等效的。讀code時最常遇到在這種等效的statement上困惑的,而這種問題對我來說最不好線上發問,因為不知道怎麼問。只有當助教在的時候直接指著句子問才恍然大悟。意謂著在這個問題上會分心。也許在上這門課前的準備工作可以先準備這方面的背景知識

 rails 專屬的潛規則!

在上這門課以前,聽說rails 的學習曲線很抖,但是無法體會,但是在上了這幾次課,寫了許許多多的課程、作業時終於有所體認,因為rails有好多的潛規則(或稱rails的黑魔法)需要去理解、背誦。但也因為這些黑魔法,讓rails這個框架非常的強大,因為他在背後做了非常多的事,而因為我們不知道rails有多自動與強大,因為不知道為什麼,所以學習的時候會恐慌。

也許這堂課就是教我們不要一直想問為什麼、為什麼、為什麼,先背起來、先做起來,然後自己就會懂了。這時不禁想到以前補習班老師的座右銘:為什麼我會,因為我有背!此言不假。

如果說rails學習曲線當成是一條極度抖上的山坡,那我覺得這堂課很像是在旁邊打下的一階階樓梯。路還是一樣陡,但是至少我們可以一階一階知道自己在哪,而當自己覺得好像有點迷路的時候,只要舉手、發問就可以被引導回路徑,繼續這條陡上的路。

什麼人我覺得推荐來上這門課

腦中有想法,但是不知道怎麼實現的人

如果前面所說的這門課會節省你非常多的時間,先求有再求好,這堂課可以大大的縮減"先求有"的時間。Rails本身讓網站功能的開發大幅減少,而Rails 商務網站即戰力班則是幫助度過Rails前期學習曲線很抖的階段。