Sunday, November 26, 2023
The Journey of Becoming a Software Engineer: Reflections and Insights from Phase Two of the WeHelp Bootcamp
Author:
Yuwei Yang
文章封面圖片
After completing Phase Two, I experienced a significant shift in mindset. On one hand, I felt that I had gained more technical skills and that my world had expanded; on the other hand, it felt like a new wave of challenges was just beginning. Similar to Phase One, I mostly finished each week’s tasks toward the weekend. Although my pace was about the same as before, the pressure felt much heavier this time around. This article captures some of the thoughts and reflections I had during that period.
宛如偵探解謎遊戲的第二階段
段落圖片
這階段的主要任務,是要獨立完成一項旅遊電商網站的專案。它幾乎是把第一階段的指定任務、自由任務、晚間討論的內容全都用上了,指引文件依舊簡潔,但要思考的地方多了很多,或者說,要完成的內容多了很多,必須運用僅存的一點線索,拼湊事實的全貌,就像是進行一場程式語言版的偵探遊戲,而努力找出文件中挖給大家的「技能洞」,完成自我設定的挑戰,是每週最大的樂趣。
記得有一次,在一個地方卡很久,一直解決不了,不停換方法就是得不到答案,我告訴自己:「再試一下,如果不行,明天就直接去現場用問的。」沒想到,這個「再試一下」讓我一試再試,直至天明。找到解決方法的瞬間,那份難以言喻的喜悅,讓我感到深深的快樂。
每個階段都像新的開始
段落圖片
第二階段開始的每個禮拜五,都是實體聚會的日子,每週都會發生很多不同的有趣事情。還記得第一週的任務是要處理後端相關的問題,而後端對我來說是很大的障礙,於是抱持著想找人求救的心態,參加了第一次的實體聚會。
結果到現場才發現,坐在我前面的人,不是已經完成就是正在等待通過(還有人在看動畫影片、做碩士作業),右半邊的人,也是都只剩一點點,不然就是已經有部署經驗,只有我和另外兩個同學還卡在 API 的設計。
我們從下午開始討論,一直處理到晚上10點,都處理不完,隔天再繼續努力,雖然我們晚了別人一些,但還是可以繼續前進,最後我們當然是都順利通過了,也都有進入第三階段。
從來都不覺得會無法通過任務
段落圖片
每週的任務都很難,需要花費相當多的時間,但好像從來都不覺得會無法通過任務,一直相信只要有行動、有不斷去嘗試,只要每天都很努力的往前一步,就能明顯感受到今天的自己比昨天更進步,這些問題也都能迎刃而解。
自由任務挑戰成功的時候、讀書會裡有人願意分享的時候、知道資料庫設計的精髓的時候、開始想進一步瞭解演算法的時候⋯⋯,這些時刻都很讓人很開心。知道一個新技術的使用方法,去實驗、測試,做出一個小作品,心裡也會感到很滿足。
一開始可能會追求「一次通過」,後來變成是希望收到「Good. Well Done.」,到後來當自己跳脫規格文件,做出額外的功能的時候,除了滿意之外,還會覺得很過癮。這個過癮是因為終於不需要依賴文件指引,而是根據需求更動既定規範,做出滿意的成果。
大量的助教 office hour
這階段有大量的 office hour 可以和助教們互動,每一場的主題都不一樣,我盡可能每一場都參加,有時是學到不同的技術操作方式,有時是學到不一樣的實作觀點,聽一聽其他同學的提問,收穫也很豐富,接近第二階段的尾聲時,也有抓住面對面的機會,和峰林與政儀助教討論第三階段的專案內容,讓第三階段不會太慌張。
無論是在線上還是線下,阿傑助教總是很願意分享,也會提點我們很多需要注意的地方,每週五的實體聚會,儘管沒有每次都去問問題,但看到阿傑助教的身影就會覺得很安心。對於講過的內容,他不只一次的說「我們聽過就會忘了」,但我還是很努力去記得,因為我相信這些內容都會變成「轉職的養分」,一定可以在未來的某一天發揮巨大的作用。
業界資深業師 Wu Chia-Hua:「面試就像相親!」
段落圖片
這場演講對我來說意義非凡,因為這是在完成全端專案開發後,第一次長時間思考想成為什麼樣的軟體工程師。思考人生,本身就是一件很費時、費力,又不見得在短時間內一定能得到結果的事情,剛好演講中拋出的問題,以及提到的幾個面向,都帶給我很多省思,邊聽的同時,心中的答案也慢慢浮現。
比起盲目地前進,我更偏好停下腳步,好好審視自己的狀況、確定方向再前進。很幸運的是,在演講後有一個另外和 Chia-Hua 業師請益的機會,對於履歷的編排、第三階段的專案規劃、未來求職的選擇等,都在這一次的談話中找到了明確的前進方向,而演講中「面試就像相親」的觀點,也讓我對未來的求職碰壁比較不會那麼灰心。
多人合作專案開發
段落圖片
有別於之前幾週的獨立開發,第八週是第二階段的多人開發專案週,是短時間內和同學合作最頻繁的一週,也是時間不是屬於自己的一週。
因為我們才剛完成一個全端的旅遊電商購物網站開發,所以其實不管是前端還是後端,每個人都有辦法處理,我們就在一場「前端和後端都可以」談話之下,完成了第一次的團體會議。
團隊合作最重要的就是達成共識,並且按照共識下的規則走。分工後我們各自在自己的開發範圍,完成各自負責的功能,過程中幾乎沒有遇到合併衝突(Merge Conflict)。
本來還很擔心操作 git 會不是很順暢,這完全是多慮了,用到後來,打字的速度都比講出來還快,還有人說連做夢都在打 git 指令(笑)。
為了完成專案開發,在最後兩天的時間,幾乎都不是自己的,處於一個隨時待命的狀態,就算時間到了,也幾乎沒有真正完成的那一刻,總是有許多地方想要修改,有些地方還想更好,是一次很有趣的多人開發經驗。
通過第二階段了!
段落圖片
比起以前,現在才能理解動態網頁的「動態」是什麼意思。從設定 AWS、寫 API 、切版,一直到把幾十筆景點資料,一口氣從後端渲染到前端畫面的時候,突然想起以前那個沒學過程式語言,用很笨拙的方式幫公司做網站的自己,當時花了很多時間,用一個、一個的 HTML 檔案,建立不同的產品頁面⋯⋯,想想真的是差了很多呢!
對於做出來的成果或小工具,可以優化和檢討的地方當然很多,但現在每天打開 VS code 寫寫東西,變成是一件稀鬆平常的事情,需要切版就去寫前端,需要 API 就去寫後端,對於一項專案的架構更有概念,克服了以前難以理解的後端資料庫設計,與找到合適的寫 API 工作流程⋯⋯。
接下來就是站在巨人的肩膀上,盡情的發揮了,很開心能做的事情又多了幾件!
JavaScript 線上讀書會
段落圖片
《忍者:JavaScript開發技巧探秘》全書共506頁,是很硬的一本書,對初學者來說並不友善,但也因為如此,我們才有機會用不同的角度去理解 JavaScript 的全貌,深深感受到 JavaScript 的彈性和重要。
忍者讀書會在第二階段的第一天正式開始,持續進行 7 週左右,中間我們內部舉辦了 5 場讀書會 meeting、5 場任務討論和技術分享會,以及 4 場 JavaScript 閱讀分享會,以及最後由包含自己在內的十位成員,各自用 5 到 10 分鐘,對整個第四屆的 WeHelp 學員,分享書裡的一個章節,在第二階段的最後一天劃下句點,很開心能和一群人共同完成一件事。
段落圖片
除了和大家一樣,在未知的狀況下迎接每週任務之外,我需要用剛學會不久的程式技術,額外寫一個統計系統,解決讀書會每週繁瑣的統計問題,以及為讀書會的進度規劃、活動安排做出適當的調整,這些都是在第二階段獨屬於自己的挑戰。
React 線上讀書會
段落圖片
就像第二階段一樣,第三階段我成立了一個 React 線上讀書會。之所以選 React 為主題,是因為它是最能夠延續 JavaScript 的一個語言,也是現階段前端框架的熱門選擇之一。
除了要完成個人專案之外,我們要額外花時間閱讀、學習 React,希望六週後每個人的專案都有了一定的結果,也順利把這本書讀完了!
About Author