Loading...

在端午節展開的 AC Side Project 黑客松,於 6/12 Mini Demo Day 中來到尾聲,當天分別有學習教練與學員分享他們如何從「一個想要解決的生活問題」出發,用最少的時間、先求有再求好做出一個小而美的作品。你想知道 AC 社群是怎麼玩 Side Project?學員們光是運用課程所學,就做出什麼好玩的專案嗎?或是想了解教練給程式新手哪些 Side Project 提案嗎?一起來看看 Demo Day 當天精彩回顧吧!

為什要做 Side Project?建立動手做的習慣

在學習總教練 Victor 大力推動下,AC 社群掀起大家都來做 Side Project 的熱潮。但等等,Side Project 不是求職面試時要用的作品集嗎?有那麼容易?學到一半的人,也可以做嗎?其實,就像 Victor 鼓勵大家的那句話:新手就要開始做 Side Project!

廣義來說,Side Project 是指用個人時間進行的專案。所以,大至求職面試作品集、小至解決生活問題的小工具、撰寫技術筆記部落格等任何形式,都可以算是 Side Project 。

在工程師求職路上,Side Project 非常重要,因為作品能幫你說話。當還沒有工作經驗,Side Project 能提升你的說服力,讓雇主相信你有技術能力。但有作品集當然不夠,重要是要能說出起心動念、想解決什麼問題、怎麼定義問題,怎麼解決問題,這才是雇主想知道的。

回頭理解 Victor 的話:新手就要開始做 Side Project,是建議大家初學程式就要養成與建立動手做的習慣,為日後求職與工作提早做好準備。這是 Side Project 的核心精神、也是魅力所在。無論想要應用所學、累積技術或抵達求職彼岸,這都能讓你從中累積經驗、甚至找到寫程式的樂趣,持續前進。

好的 Side Project 和作品集如何做?給新手工程師的懶人包

前端作品集如何準備:7 種累積作品的方法

怎麼開始?先求有,再求好

在 Mini Demo Day 中,Victor 首先展示了他做的 Discord chatbot,這個 bot 會推給同學打氣或督促學習的話,bot 更開放同學能運用 Git 在裡面自行投稿新的句子。Victor 說自己只花了 2 個小時完成專案,其中寫程式的時間佔得很少,大部分時間是花在拆解問題、然後參考 Discord 官方文件,運用適合的套件來達成想要的功能。

「Side Project 的重點不在寫程式,而是先把問題拆解到適當的大小,還有運用既有套件來幫助你解決問題也是很常見的事。」Victor 強調重點是「麻雀雖小,五臟俱全」,做 Side Project 不需要你花太多時間,就像打造最小可行性產品(MVP)一樣,重點是在你鎖定的小範圍中,完成基本功能,關於優化都是「以後再說」。如果一開始專案範圍想太大,很容易因為「花了時間卻看不到成果」,而越寫越挫敗,最後就不了了之。

他提醒,學新工具就像開車。沒有人在剛學開車時,就去研究引擎如何運作,一定是先專注在學會開車上。做 Side Project 也一樣,先專注完成目標,日後有需要、有興趣某些主題,再去研究。

原來真的能做出這些好玩的東西!

桌遊記錄系統

AC 學員 Vanessa,分享他為喜歡玩桌遊的朋友,建立的紀錄系統,希望能解決「常常忘記桌遊玩到哪、不確定誰還沒當過關主」的問題,所以這個網站提供了「紀錄每次完成關卡、與隨機抽取關主」的功能。

Vanessa 在做專案前,先透過從流程圖來分析需求,發現系統結構並不複雜,只需要用 AC 學期 2-1~2-2 課程有教的技術就足以應付,他秉持著「先成功再說」的想法,做好基本功能,就先上線,未來如何優化就等到以後再說,這也是新手在做 Side Project 可以特別注意的,能讓你更專注完成眼前的目標,而專案的延展性不該是你現在的焦點。

Vanessa 也說,一開始會想做這個專案只是娛樂用途(因為自己也是桌遊愛好者)而已,但過程中發現,正是因為做的是自己會「用得上」的網頁,所以做得很開心、很有成就感,有更大的動力想要完成。

AC 社群小精靈自動管理系統

AC 校友、現為後端工程師的翊廷,則是幫 AC 社群小精靈 (管理員) 製作了管理 Discord 的 chatbot,功能是能針對學員常見的問題做自動化回覆,如果被判斷需要專人回答、非辦公時間時,bot 則會自動回覆說「小精靈會在明天上班時間幫你處理」。

翊廷說,寫程式不難,最難的是在構思。你要解決什麼問題?問題的定義又是什麼?他說過程中,很容易不小心越弄越大,記得請夥伴把你拉回來。

適合程式新手的 Side Project 提案

看完當天 Demo Day 精彩回顧,讓你對做 Side Project 躍躍欲試嗎?那就來看看學習教練 Yunju 給新手(例如學期二程度的 AC 學員)做 Side Project 的提醒吧。他認為最好以純學習、練技術為目標,所以適合從以下方向著手:

  • 復刻簡易頁面(例如 instagram, twitter, Google 首頁)
  • 用 if-else, for loop 練習印數字 / 三角形等經典程式入門練習
  • 結合 JavaScript & DOM,可以試試看打造小工具 / 小遊戲:計算機、井字遊戲
  • 練習特殊版面的切版,像是手刻箭頭、上彎月等

若想做出一些常見的網頁功能,可以往下面這些方向發展:

  • 不同視覺檢視 (View) 切換
  • 清單排序
  • 彈出選單 / 下拉式選單
  • 即時預覽文字 / 顏色改變

若想再進階一點,除了基本頁面流的細膩、流暢度、框架的熟練度,還可以再多延伸:

  • 狀態管理 (Vuex, Redux, etc)
  • 動畫
  • Firebase
  • Measure page quality (https://web.dev/measure/)
  • 資料
  • 測試
  • 部署 (AWS, GCP)
  • Docker

若看完上面還是沒有 idea,那就⋯⋯挑一個你喜歡的網頁,直接開始複製吧!

最後別忘了,把想法變成實際,就是身為工程師的任性和浪漫!

加入 AC 一起做 Side Project,可求職、也能解決生活與工作上的問題,找到你學程式的樂趣