資訊種子職涯體驗 — mentor 心得分享 | Backend Engineer


Posted by AlanSyue on 2021-05-29

圖片來源:UI Designer 建良

2020 年第二次帶領職涯體驗心得可參考 資訊種子職涯體驗 — mentor 心得分享 | Web Developer,此篇紀錄 2021 年第三次帶領職涯體驗心得。

學員專案成果

  1. https://github.com/Malik705017/tomatoClockForPractice
  2. https://github.com/cydaf/tomatoClockForPractice

今年是我第二次與資訊種子 15 屆的學弟 Nick 一起帶職涯體驗,原本因為當時工作較忙碌,有猶豫說要不要開職涯體驗,最後還是想說可以再帶學弟妹找個專案玩玩。另外與上次不同,這次希望專注在後端開發,並能有更深入的討論。

以下將分享

  1. 職涯體驗進行的模式
  2. 體驗內容規劃與設計
  3. 最後產出結果
  4. 個人心得及收穫

職涯體驗進行的模式

在體驗開始之前會跟報名參加的學員面談,主要是想了解:

  1. 對於後端開發的熟悉程度
  2. 期望在體驗後獲得什麼
  3. 可以付出的時間

其中最想了解的是期望獲得什麼,因為會用來評估是否我們開的體驗可以提供,如果無法獲得,也不希望浪費學員的時間。

另外對於開發的熟悉程度及付出的時間,是用來做之後體驗如何設計的參考。面談完後,我們的模式基本上跟上次的模式差不多。主要為:

  1. Kick off :針對要開發的功能做說明,以及需要碰到的技術說明
  2. 開發 : 學員開始針對負責項目開發
  3. 階段性驗收 : 回報開發進度,分享寫的程式碼,問題討論
  4. 驗收 & code review

時間大致上為一週一次,採線上進行,學員需在討論前兩天將開發的功能發 Pull Request,討論前會先擬定議程,大致上分為:

  1. 功能 demo 及講解寫的邏輯
  2. 開發時遇到的問題
  3. 下週開發功能講解,列出 To Do
  4. Mentor 額外內容分享
  5. 針對會議進行 Retro

體驗內容規劃與設計

原先體驗內容是打算用 Nest.js 來實作會員機制,但 Nest.js 已經有把許多架構先實作好,擔心學習過程會不了解為什麼要怎麼設計,後來決定先用 Express.js 來開發。

這次專案是採用去年從 The F2E 前端修煉精神時光屋 找到的蕃茄鐘,因為去年的學員已經把前端畫面做好了,並且裡面的機制是透過前端存 Local Storage 實作的,我們想說可以把他改做成前後端分離,因為已經有前端畫面了,學員可以專注實作後端 API,我們再來開發前端跟他們串接。

今年的模式是兩個學員一同討論,並各自完成自己的後端 API,我們開發前端分別跟他們串接。這次後端使用 Express.js,資料庫用 Postgresql(透過 docker 啟 container),並實作以下功能:

  1. 會員註冊、驗證(透過驗證信)、登入
  2. JWT token
  3. 待辦事項 CRUD
  4. 報表資料 API

我們把去年的蕃茄鐘改成前後端分離,並可以透過會員機制,取得個人化的待辦事項以及分析報表資料。

另外今年我們有新增一些與去年不同的內容:

  1. 拆分出 routingcontrollerdtopipe
  2. 在 Linode 上開一台虛擬機、以及註冊了一個網域,讓學員在虛擬機上架自己的專案,並透過 Nginx 將網址反向代理導到自己的服務
  3. Coding Kata,透過 pair programming 的方式,練習用 TDD 的方式開發

最後產出結果


原本預期將專案做完後,再用 Nest.js 開發,但時間上來不及就沒有完成,今年完成的成果有:

  1. 8 隻的 API 開發
  2. API 文件以及資料庫 table schema 規劃
  3. 虛擬機啟動 Service 服務、Nginx 反向代理

今年比較可惜的是比較缺乏協作,去年是一個專案三個人各自負責不同功能,功能間會需要互相協作、對於 git 協作也會遭遇比較多問題。今年兩個人做一樣的功能,就比較無法接觸這部分。

個人心得及收穫

相較於去年,我覺得在技術上自己能帶給學員的幫助變多了(去年大部分都是靠 Nick),今年體驗過程中也學到蠻多新知識:

  1. Linux 的權限管理:因為要把虛擬機提供給學員使用,於是去了解了一下要怎麼管理權限
  2. JWT token:因為要跟學員一同討論,所以有先去研究,但討論過程也發現了不同的實作方式
  3. Coding Kata:Nick 帶大家玩的活動,後來真的在工作上用 TDD 方式開發,應用所學

如果明年還有機會開的話,再來想想有什麼有趣的方式可以來玩吧!

如果覺得文章對你有幫助,也可以透過贊助一杯咖啡給予我鼓勵唷


#itseed #nodejs #expressjs #learning #mentor







Related Posts

什麼是 Cross-Origin Resource Sharing (CORS)?

什麼是 Cross-Origin Resource Sharing (CORS)?

N3_gulp 簡介及使用

N3_gulp 簡介及使用

欄與欄的間距:Gutter

欄與欄的間距:Gutter


Comments