• 全栈营感想 at 2016年10月02日

    我上過 xdite 在台北開的 Rails 課 現在是 Ruby on Rails 程序猿 不清楚北京的實際上課情形,但我在台北的上課經驗與感想,可以分享給各位 (繁體 & 台灣用語請見諒)

    先講結論:

    1. 台北這堂是 3H/堂 X 4 次 = 12 H 的課程,收費 NTD 35000 , 大概 RMB 7500
    2. 跟樓主一樣,老師會在課程快結束時拿獎品 ( 我們那次是用 Panasonic 吹風機Rails 4 way 當心得大賽的頭獎與優選獎 ) 來『鼓勵』我們寫心得
    3. 然後很妙的,心得當中寫得非常好的,就會被老師拿來貼在她的宣傳管道上 (在台灣是 Facebook , 這裡就是本篇貼文)
    4. 這是一種行銷技巧,用上課當事人的視角,來寫出『感覺非常好』的心得文章,看似是學生自己自發性,實際上是用獎品換來的
    5. 這沒什麼不好,作者拿到了獎品,老師有了絕佳的宣傳素材,又不會被人認為是廣告,還會提高 google 的 SEO 排名
    6. 回到初衷:如果再開,這堂課值得上嗎?

    Yes , but 僅限於 2016 四月以前


    上課前作業

    在付錢報名之後,距離上課前一個月,開始陸續收到 xdite 寄來的信 要我們拿 railsbridge 裝機教材, railsbridge 初探 Rails, 跟 rails101 來當課前作業練習

    有任何問題可以到台北的 rails meetup 技術聚會找助教求救

    信裡面寫了很多警告字眼,主要是表達『如果沒做課前作業會跟不上進度』,最好要做三次以上

    當時我們的助教 (在 slack 上的 id) 是 sdlong, ff2248, berniechiu, 還有技術聚會的 host wildjcrt 他們都是現役的 Rails developer,這些助教非常的專業,而且任何疑難雜症 (甚至跟教材沒關的問題) 都可以回答得很好 不吝嗇地分享他們在 Rails Developer 工作上的經驗

    不只是 office hour 與上課時,連下課時間也有非常熱絡的問答 早上醒來,常看到 Slack 上一連串學生與助教們之間的問答

    感覺助教比老師還會教 (不只我,其他同學也有這樣的感覺,原因後述)

    因為我有其他語言的經驗,算蠻進入狀況的 課前作業的教材做得蠻細心的,step by step 跟 code 要在哪一行 刪/寫 都清清楚楚 會出錯大都是寫錯 code , 忘了存檔或忘了重開 rails server 理解上有問題,助教都能幫你解決


    第一堂課

    要我們 clone 上課用的 repo https://github.com/growthschool/artstore 馬上就可以看到 week-1 的 branch (今日上課的 commit 進度) 第二堂課前幾天會出現 week-1-homework (第一週回家作業的解答)

    以此類推

    技術上的部分 主要是安裝 devise, bootstrap, 用了 routes.rb 的 namespace 技巧來做出後台網址 (/admin/) 在 User.rb 加上 column is_admin 來做使用者是否有管理權限的功能

    回家作業是要我們套一個 bootstrap 的 layout , 做後台 Product.rb 的 CRUD, 用 carrierwave 做圖片上傳,讓商品可以有圖片 不會寫?沒關係,教材網站上都有解答,照著打就好 (當然,你也可以用 copy & paste ...)

    實際上課過程:

    聽老師講課 => 一段講完 => 底下實作 => 再講下一段 => 再實作

    很特別的是,老師講完以後就在她的講台上滑手機,有任何實作問題,以及講課聽不懂的部分只能跟助教求救 只要沒學生主動問老師,就是在滑她的手機

    我必須老實說,助教反而比老師還進入狀況,有一個助教只看 error message,或是只聽到某個關鍵字,馬上就找出問題在哪 一些比較難懂的,還能用學生可以理解的例子跟角度來解釋 舉個例子,Class 跟 Instance 的差別,還有 controller 裡的 instance variable 的解說,助教真的比較會講,老師常忽悠一下就帶過 甚至還會酸學生:『問這麼基礎的問題,一定是你沒做課前作業的關係』


    第二堂課

    製作購物車功能,可以把商品加入購物車 購物車可以 checkout 變成訂單

    本週開始,超過 2/3 的同學哀嚎遍野 因為裡面有好幾個的 ActiveRecord Association 的設定,nested form 以及計算購物車總金額的 method 等根本搞不懂 (有興趣的可以參考 source code, 現在回頭看是 piece of cake, 對於當時完全不理解 Rails 運作的我們來說,真的是噩耗)

    看不懂 code 怎麼辦? => copy & paste 功能是做出來了,覺得好神奇,但是真他媽不知道為什麼貼一貼就就會動

    實際上課一樣是 聽老師講課 => 一段講完 => 底下實作 (滑手機) => 再講下一段 => 再實作 (滑手機)

    三個助教不停地跑來跑去

    回家作業: 購物車裡的商品可以調整購賣數量,總金額會正確計算 用 AASM 來做訂單的 state 變化與邏輯 使用者可以看他自己的過去訂單資料,admin 可以查閱所有訂單資料


    第三堂課

    一樣的 copy & paste

    一樣的 一段講完 => 底下實作 (滑手機) => 再講下一段 => 再實作 (滑手機)

    一樣的 三個助教跑來跑去

    功能: 金流串接 用 figaro 來做機密資訊管理 用 mailgun 來做寄信功能 用 heroku deploy, 變成真正的網站

    坦白說,當自己千辛萬苦 (貼) 出來的 source code, 變成網站而且成功完成線上金流功能測試那一刻 真的感覺到一種非常極度的 ... 開心

    然後,就跟本篇文章開頭所說的,趁大家那麼開心的時候,拿出了獎品來做心得比賽 看到自己跟同學的心得被轉貼到 xdite facebook 的時候,有一種被肯定與那麼辛苦終於有成果的感動 我的文筆沒有樓主那麼好就是了

    幾個月後,我開始找 Rails developer 工作,實際面對真實的 programming 生態的時候,感受又不一樣了


    第四堂課

    沒有任何實作 整整三個小時聽老師講課

    前半段是 從 how to refactor : services object, helper, partial 到 如何調教效能 (前端,後端) 最後是如何找工作、寫履歷

    後半段是 Growth hacking 的演講


    結論

    正如我前面所說,在聽老師講課的過程,感受到一種『自我感覺非常良好』的喜悅 程序猿的世界就如同講課的內容般那麼美好

    老師:『我跟你說,上完這四堂課,去面試的時候還可以電你的面試官,他們可能懂的還沒你多』 實際:真的開始找工作面試,才發現真實的世界 ... 沒有課堂中讓你想像的那麼美好

    課堂的介紹頁 寫了非常多教學內容與上課方式

    在開始真的實際在業界打仗的時候,回過頭來看

    就是教你一堆 trick (耍小聰明的手段、招式) 為了降低你上課的疑慮,老師還說過:『學 Rails 根本不用先學 Ruby, 寫一寫就會了,基本功根本不重要』

    哪些 trick? 用一堆 Gem 迅速包裝成一個『看似』成品的玩意出來

    deploy to ubuntu? 不重要,用 heroku 就好啦,git push 就完成了 (直到五月才看到 deploy to ubuntu 的補充教材出現) front-end? 用 bootstrap 或是買個版就好啦,我們官網也是買版套的,你以為我那麼多時間自己刻嗎? 如何使用 AWS ? 我沒教這個喔 那些 Gem 要怎麼做運用?自己看 github 的 README 就會了啊 我要如何開發 XX 功能?你教材多做幾次就會了

    某次 rails meetup, 剛好看到不知道哪梯的學生在找老師改履歷內容 那個景象讓我震驚了:她要學生灌水履歷內容 像是作品只有寫過上課教材,拿 github 某些 source code (例如 TODO MVC) 改一改變成自己的作品集 明明只有不到半年的經歷,要學生灌水成『將近一年』 還有一些文字上的修飾

    如果從課堂介紹頁上裡那一列的學生心得文,似乎有種老師真的很厲害,上完課都可以變成 Rails developer 不管是找工作還是自己做產品都無往不利 但實際上,那些『應徵上』、『我覺得學會了』的學生,到現在快半年過去了,沒陣亡的有幾個?

    那些活下來的學生,是真的『一開始不會,上完課以後就變成 Ruby developer』, 還是『本來就有其他程式的底子,就算沒上課也自己學的起來?』


    回到初衷:如果再開,這堂課值得上嗎?

    Yes , but 僅限於 2016 四月以前

    這堂課最大的價值在強大的助教群,以及扎實細心的實作教材

    五月以後,換了一批新的助教 我只認識其中一位叫 @bboyceo, 是之前的學生

    新助教們的程度如何?我只能說 ... 科科

    最後我才知道原來課堂上所有教材,包括課前教材都是由某位助教一個人弄出來的 我曾在 office hour 聽老師在跟其他人閒聊時說到:『開 Rails 課真的很簡單,我就上台當唸稿機講一講交給底下助教處理就搞定了』

    後面因緣際會拿同學的票上了老師的 專案管理班 的課

    一樣的拿心得換獎品大賽,一樣的聽課過程真的非常的『自我感覺良好』 上課中老師推薦使用 redmine 來說程式開發的專案管理,but 要怎麼安裝並使用它?自己想辦法 最後還是從前助教的 blog 上找到教學完成安裝

    專案課裡的東西有沒有實際在工作上有幫助?有,但沒那麼理想 你拿老師講的原封不動丟給內行的人 ... 等著被電吧,不知天高地厚的小鬼 講得一嘴好球,跟自己實際下場打是不一樣的

    我覺得 xdite 老師最厲害的地方在於它可以把一個看似很難的東西,用『不懂的人』可以理解的方式表達出來 感覺老師花在行銷、演講跟社交的時間 >>>> 程式技術上的時間,她的表達能力跟思考反應能力很厲害 至於『懂的人』怎麼看待內容 ... 我還在不斷地學習與精進的路上,這就交給高手們回答了

    如果老師對所謂的『全棧工程師』的定義,就只是拿 gem 組裝一些基本功能,買個版面套一下,然後放聳動的文案跟圖片 那可能跟我的定義不太一樣

    PS1: 老師在今年五月的 railspacific conf 講的主題:Talk: Successful Speedy MVP Website Development 實際內容卻是已經講過的 『我如何贏得 2012 facebook hackathon 大賽』 的英文版 ... (幹,我花了 5000 NTD 買票你給我講這個)

    PS2: 老師在今年 rubyconf china 也是 2014 年就講過的,不過原本的 blog 文章好像刪掉找不到了,我的印象中跟 conf 裡投影片內容有 87% 像

    PS3: Xdite Rails 課的負面心得 1 2

    PS4: 我聽六月上課的同學得知,原來北京班的交作業系統不是老師做的,是花錢外包給 thoughtbot 做出來的