Rails學習心得&Rails EC網站x即戰力班心得

先說我絕對不是為了吹風機才打這篇心得文的啊!!!
先說一下自己的背景
我是日文系,程式經歷大概三年左右吧,主要是寫flash的as3(ActionScript3),中間還寫過html,css,jquery,php,mysql,unity3d,android。在程式寫了三年之後,想要有一個比較不一樣的人生體驗所以離職並到了澳洲去流浪了兩年。

會開始學習ruby on rails是因為adobe不更新as3了,所以as3可以說是掛了,但又不想回去寫android,android的碎片化跟每次改版就壞一堆的api實在很惱怒我,所以就決定要另外學習新的程式語言。在找資料的過程發現ROR這一套網頁framework,他有幾點還蠻吸引我的

*薪水偏高。
*使用ORM的關聯式資料庫,不用另外學習sql語法(雖然以前學過)。
*比較容易找到國外工作,且薪水更高。
*英文資料不用說,日文資料也是很多,對於日文系的我有很大的幫助。

雖然我比較喜歡前端的特效或是ui,但也覺得後端的技術還是必要的,ROR可以同時滿足這兩件事所以就決定開始入了這個坑。(後來才發現要學的東西還不是普通的多啊!

其實自學這件事對我來說沒有太大的困難(但在Rails有挫折到,所以在回台的前半年就開始透過codecademy跟Rails實戰聖經還有rails101學習,後來偶然看到xdite的這門rails即戰力課程,對xdite的印象就是在台灣寫rails很有名的人,大概看了一下課程大綱覺得還不錯,而且可以直接學習業界經驗這點還蠻吸引我的,畢竟很多寫code的經驗網路上是找不到的,所以當收到課程開始的通知後就立馬報名了。

另外好像還蠻多人有說到12個小時的課程就要要價40000(早鳥35000)好像太貴了點吧,但其實看不見得時數很多(等等會說,回到價錢這件事老實說因為我當初是刷澳幣大概是一千初頭澳幣(還多扣了22澳的手續費哭哭,其實我工作一個禮拜就有了所以當初沒什麼感覺啊~,要是我在台灣刷這筆的話我應該會認真考慮一下。不過就像xdite說的一樣,這個錢花下去了你才會認真看待這件事情。

上這門課我覺得如果要有不錯的成果的話60%是要靠自己的努力,剩下的40%是課程的知識,如果你只想要靠著在課堂上短短的12個小時就學會用ROR架一個EC網站,那我只能跟你說真的不可能。這門課所需要花的時間是要非常多的,大多在於自主練習,所以在報名的時候xdite就有說了把那整個月的時間空下來(這是真的一定要空!,剛好我也是個剛從澳洲回來的無業遊民所以時間也很多啊。

課前準備

課前所要做的準備其實蠻多的我的建議是課程的前兩個月就開始準備,第一件很重要的事情就是把rails101教材做3次,按照xdite的教學方式她稱之為肌肉學習法,一開始不要問為什麼先跟著教材的code打然後把功能做出來,之後再重複的練習第二次第三次等腦袋對程式的syntax有基本的記憶之後再來問為什麼,詳細可參考xdite的文章[如何在五天內快速的「學會」一門技能]。

但我有點天生反骨所以其實我並沒有照著這個作法做,我自己的做法是遇到疑問時會開始google大量的資料跟實作去解決我的疑惑但這邊的前提是一定要先做過一次先搞懂要做的功能及做出來的效果是怎樣再去研究why,所以我自己有時候會在同一章節卡的有點久(也是因為我有時間可以這樣做拉,但對於我自己來說我比較偏好這樣的學習,我一定要弄懂why才會繼續往下跑除非這個問題已經讓我炸很久了,我就會半放棄的先略過他,所以我的rails101其實才做了大概一次半吧,不過我還蠻清楚ROR大概是怎樣的架構跟他的程式流程(我自己的記憶方式比較不同。

另外學rails之前要不要先學ruby呢?xdite也清楚地告訴你學 Rails 需不需要先學 Ruby?(不需要),但這邊我又要開始反骨了,其實我自己並不贊同拉,當然我覺得xdite的很多出發點都是為了要讓新手尤其是程式新手在學習的初期不會因為過大的挫折感而降低學習慾望,是要先讓新手得到成就感的一個做法,但對我來說我就是求知慾旺盛所以這並不會降低我的學習慾望,而且我覺得與其把時間花在矇懞懂懂的練習上倒不如把那個時間花在基礎上,有了基礎之後再去學習才有事半功倍的感覺,我自己是不太喜歡帶著過多沒解決的疑問然後去做一件我搞不懂的事情,我會覺得有點空虛不知道自己在幹麼。

所以在課前準備的時候我有把codecademy的ruby課程做完,我覺得ruby可以不用真的要學到很精深,但至少基礎的syntax還是要看一下,html跟css的知識因為之前就有了所以沒有特別的去看如果要看的話codecademy也有w3cshool也可以看,Git的話我有去看了codecademy的git課程跟連猴子都能懂的git入門

另外其實rails101我自己是覺得對初學者會有點難理解,所以我的建議是搭配著rails102rails的實戰聖經還有Ruby on Rails 指南一起看。

第一週課程

第一週的課程其實算是熱身,把rails101的東西拿出來再多做一點延伸,做了使用者跟產品的前後台還有上傳圖片,所以如果rails101有搞懂的話其實第一週就是一塊蛋糕啊如果沒搞懂的話就會在第一堂課就會炸掉了,所以上課前才再三叮嚀一定要練習rails101,而且上課的tempo真的很快,練習時間其實只能夠讓你貼code去看做出來的功能是什麼,根本沒時間用key的而且貼code還會貼錯啊,練習時間就在貼code跟找助教求救下很快就結束了,所以我的建議是認真地聽課,練習的時間就貼code或是問問題,不要試著在上課的時候搞懂全部,這樣只會更炸。另外在第一堂課有教到growth hack的知識怎麼去寫user story,對於要做自己產品的人,你可以更清楚產品開發的走向,對於工程師而言你可以拿user story去打腦殘PM的臉,認真的覺得某出版社的PM都該去學學什麼叫做user story然後再回去看看自己寫的狗屎企劃(怨念。
便當:三寶飯,普普

第二週

到了第二週就來真的,課程內容明顯比第一週多很多很多,回家作業也多很多很多,第二週主要在做購物車功能部分,從購買->加入購物車->結帳->產生訂單->假結帳->管理訂單,在這週需要花更多的時間去練習跟查資料,不過這門課在定上課時間的時候也有把第二週的量考慮進去,所以第二週跟第三週的時間隔了一個禮拜,也就是你有整整兩個禮拜的時間可以好好的研究上課的內容,在上課的時候會比第一週更明顯的感覺到時間的不足,而且東西很多會一不小心就突然放空掉了,所以我的建議是在第二週上課前先做預習,大概瞭解一下上課內容,如果有時間的話更可以先在家按照教材把第二週的實作一起做了,如果是用貼code的單純run過一次應該不太會有什麼出現error或解不開的問題,這樣在上課的時間你也不用再貼一次,就可以拿那個時間來問問題。
便當:牛楠飯,不錯吃

第三週

這是我最有感的一週,這週是做寄信及EC網站最重要的串金流,不過我有感的地方並不是串金流成功了,因為其實串金流的部分xdite已經消化了39頁智付寶的api guid並且把複雜call api的部分都已經整理好了,所以只要申請好帳號,照著教材的方式走應該都可以順利刷卡。我有感的地方是課程後半段的開發技巧及code及view的整理術,還有一些新手容易犯的一些錯誤,亂用migration或是helper的地方,這些東西靠自學的話真的無法學習到,尤其在自學階段很容易自己硬幹反正只要功能有出來就好了,code亂不亂管他的,通常整理code這件事只會在開始工作之後被前輩刁code的時候才知道自己的壞習慣,然後就必須經歷那個要把自己壞習慣改正的過渡期,在這一堂課就先把這些新手容易有的壞習慣先提出來,讓大家養成好的寫code習慣,我覺得這件事情很重要。在課堂的最後有偷跑了一點第四週的課程內容教你如何調教前台跟後台的效能我也覺得超實用,更期待了第四週的課程
便當:雞肉飯,普普

第四週

期待中

這門課的優點

前面有提到了表面上這門課看起來只有12個小時,但其實還有很多看不見的時數其實是指課後的部分,我必須要說比起教學方式跟教材內容,我覺得課後服務的部份才是這堂課最棒的地方,在上課之前學員都會加入slack頻道裡,你有任何的問題在slack留言都會有助教回覆你的問題,我最晚問到凌晨一點多,除了回覆問題之外你還可以把code push到git上,助教們都會幫你debug。如果在slack上面真的無法解決的問題的話,每個禮拜二跟禮拜四助教們都會在deroot回答學員的問題,想要吸取更多的開發經驗或是自己想多做的延伸功能都可以找助教討論,而且slack的線上回覆不是在課程開始時才有的,是當你報名後上課前一個月就開始了,所以當你從裝環境開始練習rails101的時候,就可以開始扒著助教問問題了,這是我在其他課程裡沒有看到的服務。
還有在上課的時候遇到問題,有助教三位加上講師一位四個人可以幫助學生debug,而且助教都用衝的去幫你deubg

另外還有一點覺得不錯的地方是,當學生要得越多的時候,老師就會給的更多,像有人問到如何串臉書登入或是如何在rails使用ajax等等講師都會看狀況在上課時候講解,如果課堂沒時間講解的話也會請助教另外寫教學在放在線上的教材裡讓學生去實作,當然有問題的話就還是可以在slack上面問。

3/26新增

這堂課的使用方法

1.把這個月的時間空下來。

2.作業一定要做,上課可以貼code回家就請一行行的key,這樣才會發現問題點在哪裡。

3.不要害怕問蠢問題,你就當作大家都一樣蠢就好,總之就是拼命地問,就當做你去吃吃到飽所以要吃到吐才回本,所以學費都繳了就要問到吐,助教們都是現職的rails developer,你只要問得出來的通常都會得到一個滿意的解答。

4.記得去參加每個禮拜的聚會,個人覺得禮拜二一定要去。

5.隨時留意slack上的問題,別人的問題也許要會是你的問題或是你沒想到的問題。

6.試著去幫同學解bug,當你可以順利解決別人的問題時其實你也更了解了課程內容。

7.課後約幾個同學組個讀書會或是自救會,大家聚在一起寫作業可以互相解決問題,而且有一起學習的夥伴是一件重要的事情。

8.開一個技術blog(個人推薦logdown,blogger貼code實在有夠難貼),記錄所有學習的過程有遇到的問題,並且整理成Q&A。

9.試著做課前預習,收穫會更多。

10.試著去犯錯就算沒錯也要改到錯,有犯錯才有解決才會成長,如果都照著教材key功能是會出來沒錯,但只要一遇到bug就GG了

建議

講了這個課程好的地方當然也要提到自己覺得可以再加強的部分
1.希望在教材的部分有更多的文字說明或是code或是method的講解,有時候只用一些圖或是箭頭帶過其實稍嫌不足,這樣即使在上課時有不小心遺漏的地方,回去之後也能看著教材的文字解說理解。

2.雖然rails101是免費教材,但同時也是事前教材,希望事前跟課程中的教材內容可以再細修寫得讓初學者更好理解些。

3.覺得可以在教材裡加入Q&A,因為這堂課也開了很多次了我相信助教們應該大概有頭緒初學者會卡在哪些地方,尤其時rails有很多黑魔法,加s不加s,或是path自動mapping的問題等等,覺得開個Q&A把這些問題記錄下來或是直接在該章節多加個tips提醒這邊容易出錯,可以避免學員踩到過多的雷被炸得體無完膚,也可以減少助教一直在回答一樣的問題。

4.可以在課程裡加入教學生如何debug的心法及方法還有debug的gem,例如pry debug或是rails panel(發現其實蠻多人不知道的)。

5.如果可以花一點時間檢討一下課後作業筆記會更好。

6.希望便當可以附飲料

關於這門課

1.這門課不是教Rails的課,而是教怎麼用Rails做出EC網站的課,你可能會說這兩個有什麼不一樣,前者比較著重於教你程式語法及使用方法甚至是原理及參數說明,後者比較著重於EC網站的架構包括要怎麼開controller及model,還有資料庫的關聯比較偏網站結構方面。

2.程式新手可不可以學?我不會說可以或是不可以,我只能說程式新手要來學之前就要有個覺悟是這門課的學習門檻頗高,要學習的東西很多,雖然這門課標榜著有很多程式素人來學,我個人是覺得這也算一種行銷手法,畢竟如果一開始就把門檻開的超高也不會有什麼人來學吧,這門課所做的事情只是讓“現階段或說是在課程期間”的門檻變低,有點像是他先借了一個梯子給你所以你看起來牆變矮了但把梯子拿掉事實上牆還是一樣高,除非你今天長高或是會自己做梯子了才跨得過去,所以該補的坑遲早要補(html,css,js,jquery,ruby,rails,commandline,git),今天不會因為你會了rails就可以做了一個網站出來(跟著教材跑不叫做做出一個網站),如果你是要轉職的話更躲不掉,所以要先有這個認知。

3.你只要付出時間及精力並且好好運用這堂課所給的資源一定可以得到收穫。

4.課程內容的部分我覺得大概有75~80分,不過課後服務的部分我覺得有到90分

5.另外這門課在結束的時候會送GrowthHack的心法課程,一個買菜送蔥的概念,也算是一個好康。

comments powered by Disqus