圖片來源:UI Designer 建良
2020 年第二次帶領職涯體驗心得可參考 資訊種子職涯體驗 — mentor 心得分享 | Web Developer,此篇紀錄 2021 年第三次帶領職涯體驗心得。
學員專案成果
- https://github.com/Malik705017/tomatoClockForPractice
- https://github.com/cydaf/tomatoClockForPractice
今年是我第二次與資訊種子 15 屆的學弟 Nick 一起帶職涯體驗,原本因為當時工作較忙碌,有猶豫說要不要開職涯體驗,最後還是想說可以再帶學弟妹找個專案玩玩。另外與上次不同,這次希望專注在後端開發,並能有更深入的討論。
以下將分享
- 職涯體驗進行的模式
- 體驗內容規劃與設計
- 最後產出結果
- 個人心得及收穫
職涯體驗進行的模式
在體驗開始之前會跟報名參加的學員面談,主要是想了解:
- 對於後端開發的熟悉程度
- 期望在體驗後獲得什麼
- 可以付出的時間
其中最想了解的是期望獲得什麼,因為會用來評估是否我們開的體驗可以提供,如果無法獲得,也不希望浪費學員的時間。
另外對於開發的熟悉程度及付出的時間,是用來做之後體驗如何設計的參考。面談完後,我們的模式基本上跟上次的模式差不多。主要為:
- Kick off :針對要開發的功能做說明,以及需要碰到的技術說明
- 開發 : 學員開始針對負責項目開發
- 階段性驗收 : 回報開發進度,分享寫的程式碼,問題討論
- 驗收 & code review
時間大致上為一週一次,採線上進行,學員需在討論前兩天將開發的功能發 Pull Request,討論前會先擬定議程,大致上分為:
- 功能 demo 及講解寫的邏輯
- 開發時遇到的問題
- 下週開發功能講解,列出 To Do
- Mentor 額外內容分享
- 針對會議進行 Retro
體驗內容規劃與設計
原先體驗內容是打算用 Nest.js 來實作會員機制,但 Nest.js 已經有把許多架構先實作好,擔心學習過程會不了解為什麼要怎麼設計,後來決定先用 Express.js 來開發。
這次專案是採用去年從 The F2E 前端修煉精神時光屋 找到的蕃茄鐘,因為去年的學員已經把前端畫面做好了,並且裡面的機制是透過前端存 Local Storage 實作的,我們想說可以把他改做成前後端分離,因為已經有前端畫面了,學員可以專注實作後端 API,我們再來開發前端跟他們串接。
今年的模式是兩個學員一同討論,並各自完成自己的後端 API,我們開發前端分別跟他們串接。這次後端使用 Express.js,資料庫用 Postgresql(透過 docker 啟 container),並實作以下功能:
- 會員註冊、驗證(透過驗證信)、登入
- JWT token
- 待辦事項 CRUD
- 報表資料 API
我們把去年的蕃茄鐘改成前後端分離
,並可以透過會員機制
,取得個人化的待辦事項以及分析報表資料。
另外今年我們有新增一些與去年不同的內容:
- 拆分出
routing
、controller
、dto
、pipe
- 在 Linode 上開一台虛擬機、以及註冊了一個網域,讓學員在虛擬機上架自己的專案,並透過
Nginx
將網址反向代理導到自己的服務 Coding Kata
,透過 pair programming 的方式,練習用TDD
的方式開發
最後產出結果
原本預期將專案做完後,再用 Nest.js 開發,但時間上來不及就沒有完成,今年完成的成果有:
- 8 隻的 API 開發
- API 文件以及資料庫 table schema 規劃
- 虛擬機啟動 Service 服務、Nginx 反向代理
今年比較可惜的是比較缺乏協作
,去年是一個專案三個人各自負責不同功能,功能間會需要互相協作、對於 git 協作也會遭遇比較多問題。今年兩個人做一樣的功能,就比較無法接觸這部分。
個人心得及收穫
相較於去年,我覺得在技術上自己能帶給學員的幫助變多了(去年大部分都是靠 Nick),今年體驗過程中也學到蠻多新知識:
- Linux 的權限管理:因為要把虛擬機提供給學員使用,於是去了解了一下要怎麼管理權限
- JWT token:因為要跟學員一同討論,所以有先去研究,但討論過程也發現了不同的實作方式
- Coding Kata:Nick 帶大家玩的活動,後來真的在工作上用 TDD 方式開發,應用所學
如果明年還有機會開的話,再來想想有什麼有趣的方式可以來玩吧!
如果覺得文章對你有幫助,也可以透過贊助一杯咖啡給予我鼓勵唷