over 3 years ago

報名課程動機

本職為 IC 設計產業,因和在學校科系所學相去甚遠,所以自學各種軟硬體程式語言。對於寫程式不陌生也很有興趣,自覺基礎並不紮實,只是能做到 function work。網站和應用程式則是完全沒有經驗。

近幾年在職場中漸漸的感覺到台灣做硬體代工的優勢不再,有點擔心將來可能中年失業。正好各種自造者、軟體的社群、講座在台灣開始蓬勃發展,去年下半年參與了許多不同種類的課程,包括3D列印、Ardunio、Javascript,每一種都很有趣,參與的過程中感覺到有很多厲害的神人非常樂於分享、教學,期望在推廣後有更多人瞭解這些技術,可以併發出不同的火花。

在這個過程也接觸到了 ruby on rails。半天的工作坊給我的感覺是很驚奇的,對於網站架設概念還停留在十幾年前用筆記本敲 HTML,ROR 卻可以在短短五分鐘變出一個精美的通訊錄,甚至還不需要搞懂語法,原來框架的威力這麼強大。當時就萌生了想要繼續探究的動機,在臉書上看到高雄班要開課時,立馬就手刀報名了。因為這種課程要在南部開真的比發票中獎的機率還要低阿!(平均五年只中一次 ...)

課前準備

報名完就收到課前作業,本來不想添購新設備,打算在 Linux 上完成這次課程,也照著課程教學把環境建構好並成功佈署了一支範例程式。但白天工作量突然爆增,決定把學習的障礙縮到最小,避免浪費時間在排除環境障礙上,於是聽從老師建議買了一台二手 Mac book 並開始練習 Rails101。

沒有 MVC 概念的我在一開始遇到的最大障礙就是為什麼這個要寫在 contoller 裡?為什麼那個要寫在 Model 裡?還有對於變數不知道宣告在哪裡、怎麼產生出來的感到疑惑。但是還是依照課程建議先做完,再回來看看原因。Rails 101 做完雖然很有成就感,但心裡有滿滿的問號,就帶著滿滿的問號去上課了。

課程

第一堂有點像是暖身課,再複習了一次 Rails101。倒是 User story 這個概念第一次聽到,覺得這可以應用在任何一種產品開發上。從使用者的角度出發去設定目標,然後逐步分割成小項目,方便掌握進度、建立主要架構,團隊合作也方便分工,非常實用。第二堂實作購物車和前後台,更進階的功能,以及帶入前後台運作流程、狀態機等等。

第三堂重點是金流,因為沒有使用經驗,這個部分對我來說最吃力,不知道寫完應該會是甚麼功能,像瞎子摸象一樣。但卻是商業網站最重要的一個部分。另外老師說明了許多程式碼整理簡化技巧,都是前輩實戰經驗的心得結晶,非常珍貴。

第四堂課前半堂介紹了前後端調教方法,SEO技巧,才知道網頁設計也需要了解搜尋引擎的遊戲規則。後半堂則是求職履歷寫法、學長求職經驗分享、外包接案如何談訂合理的合約,都大大顛覆了我的認知。覺得最精采的是老師分享贏得 Hackathon 比賽過程,專案管理思維真的是每一位工程師都需要具備,原來這是一門可以學習的系統性專業,其重要性完全不亞於技術。

課程節奏很緊湊,如果跟我一樣是新手,又是下班後才過去上課,強烈建議前一天不要熬夜,中午記得午休。上課不能有一秒鐘恍神,需要全神貫注的聽懂講解,因為課程網頁上有詳細的實作流程,如果真的來不及code先用貼的,回家再看。但觀念講解就只有上課才聽得到,了解概念之後也有助於程式碼理解。其實第一堂課就會收到全部的課程材料(建議或許在第一堂課前就發給學員),在之後課前有空的話可以先實做一下及瀏覽投影片,對於吸收效果會有幫助。

課堂中在分秒必爭的實作時間裡面遇到 bug 真的很無助,強大的助教群幫了很多忙,有安撫人心的功能。如果以前念書的時候也有這麼強大的助教群,可能也不會因為一次又一次的挫折對許多有用的科目失去信心了吧(一大堆藉口...)

課後心得

  1. 我覺得課程的設計非常強大。主軸是四堂課讓新手做出一個商業網站。其一說明ROR擅長於做甚麼事、威力在哪裡;其二在實做中建立 MVC 概念,有些事情重複做幾次就會漸漸有一點感覺,有一點感覺後就可以知道用甚麼關鍵字著手查資料,程式碼搭配觀念慢慢就可以摸索出一點精神;其三順便介紹了一個商業網站的運作方式;其四讓初學者不要把重點放在語法上而忽略了架構的重要性。並不是說語法不重要,過去在自學C語言的失敗經驗就是一開始困在看不懂的語法而放棄,但是當直接拿來開發,知道其應用時,語法障礙就迎刃而解了。

  2. 過去學習的經驗來看,開始總是美好的,照著書本、範例,馬上就能做出會動的東西,會很有成就感,但之後才是學習的開始,要能夠去了解每一行程式碼背後的意義,知道整體架構脈絡,遇到 bug 知道怎麼找到資源排除,才有辦法獨立寫出屬於自己的東西。後續還有很長的路要走...

  3. 覺得非常非常非常可惜的是,工作在台南無法參加 office hour, meetup 和同學一起寫作業,只能在 Slack 上問問題,覺得有參加的話應該可以吸收得更好,更可惜的是沒有藉這個機會認識同學們。希望以後台南也有社群和討論空間~

  4. 希望能花三個月再好好消化一下這兩個月吃進去的東西(目前還是消化不良),找出時間去參加讀書會,然後試著寫一些自己的東西。網路上有看到一篇 "我是這樣學會 Ruby on Rails:12 個星期打造 12 個網頁 APP",把腦袋裡一些想做的功能實現出來,順便製造一些可以用來找工作的作品 XD。

  5. 專案管理的部分是沒有預期的收穫,感覺有點像買完手機老闆說再送你一台最新的平版電腦。上完最後一堂課覺得非常超值。

← Hello World