WFU

2023年8月30日 星期三

軟體工程師之旅:WeHelp Bootcamp 第一階段的心路歷程和心得感想

作者:楊于葳




封面照片是第一次到小樹屋,參加 WeHelp 第四屆第一階段第八週實體聚會的合照,回顧這段歷程真的很不可思議,感覺每次參與 WeHelp 的活動,都覺得時間過得很快、很不夠用,為了紀念第一階段的通過,特別寫了這篇文章,記錄這陣子的心路歷程和心得感想。




一切的起點:台大資訊系統訓練班


到台大德田館之前,會路過的草地


因為 COVID-19 的關係,人生突然以很戲劇化的方式急轉彎,加速了很多事情的發生,也多了很多現實的推力、拉力,真正讓我下定決心踏上軟體工程師之路,是因為使用了 Midjourney 和 ChatGPT,它們讓我體會到程式語言的無限與未來。

隨著疫情結束,計劃今年重返校園把相關的課程上完,第一門課就是選擇「HTML5, CSS3, jQuery, Bootstrap 網頁設計進階班」,剛好可以銜接之前學過的入門課程。

在進階班做了很多小作品,也額外請教很多領域問題,對程式語言越來越有興趣,我就是在這個時候,看到彭彭老師在臉書社團「JavaScript 網頁前端工程」分享 WeHelp Bootcamp 的招募訊息的。


WeHelp 申請前準備&報名心態


當時申請的網頁主圖


這張網頁主圖,是申請時請 Midjourney 畫出來的,整個畫面蘊含了我對未知領域的想像和期待,儘管摸黑前進,也都會有意想不到的微光,照亮前進的路。

軟體工程師訓練營和自學程式語言最大的差異,在於能夠和一群擁有共同目標的同儕一起學習,加上會提供適當的引導,學習業界目前正在使用的技能,讓新手在學習地圖縮小範圍,把時間用在最重要的部分,就是因為看中這些優勢,才燃起心中的鬥志,想要申請看看。

從申請開始,每個環節都被設計得很有趣,像是 WeHelp 的申請表,要使用自己寫的網站呈現,裡面要包含下列的問題,然後利用 GitHub Pages 服務上線。



1、兩百字內的個人簡介。
2、為了成為軟體工程師,曾做過什麼努力?若有具體專案作品請分享給我們。 
3、如果參與這個計畫,會怎麼安排學習時間? 
4、是否有想要加入的軟體公司?為什麼想加入該公司? 
5、請描述一件讓你產生明顯負面情緒的事情,你如何處理該情緒? 
6、關於這份申請網頁,請分享一個你開發時的技術心得。 
7、從上次提出申請至今,多做了哪些努力?(第一次申請不用回答) 
8、其他想要對我們說的事情? 

 



最重要是說明做了哪些行動。回答的過程,同時也是重新審視自己的過程,如果沒有真的下定決心,以轉職成為軟體工程師為目標申請,回答這些問題的時候,是沒辦法表達出強烈的申請意願,和回答出具體內容的。

因為不確定是否能順利錄取,所以後續還安排了其他三門暑期密集課程,「JavaScript (ES6) 網頁前端工程入門」、「Python程式設計」、「JavaScript 與 React 網頁前端工程實務」,即使沒被錄取,也還是可以繼續在軟體工程師之路前進。


WeHelp 錄取後到正式開始前的準備


小組討論的過程


我是在 2023/06/13 送出報名表的,很開心能在 2023/06/19 的晚上就收到錄取通知信,立刻開心的和家人分享這個訊息。

通知信裡附上兩門建議的學習課程:「HTML、CSS、JavaScript 入門課程」和「Python 入門課程」,都是彭彭老師親自錄製的教學影片。

雖然高中幫社團寫過網站,但我覺得那離真正學會 HTML、CSS 還很遠,而且對 JavaScript 很陌生,以及完全沒碰過 Python,所以就根據推薦的課程展開「看片人生」,不管是走路、搭捷運、搭高鐵、吃飯,都在看教學影片。

彭彭老師後來也將 YouTube 會員專屬的教學影片,用 Udemy 平台無償分享給所有第四屆的學員,這些影片對未來的訓練任務,是非常有幫助的,很感謝自己當初有努力看影片、增加領域知識,現在也依然持續學習著。


WeHelp Bootcamp 正式開始


代表我們這組上台報告的凱傑


面對未知的每週任務,未知的運作模式,前兩週通常是最讓人緊張的,而且老實說,大部分的任務內容對像我這樣的新手而言是非常陌生的,但只要穩住心態,再大的問題都可以拆解成小問題,然後一題、一題的解決。

記得第一次規定使用 Python 完成當週任務時,我幾乎可以說是從零開始的 Python 新手,好在當時拼命的刷影片、到台大上 Python 密集課,沒想到,真的在短時間內就學會了,而且還真的做出了一些東西。

在每週任務完成後,名字就會出現在 WeHelp 的任務記錄欄裡面,扣除生活中的因素,以及到台大上實體課程佔據太多時間之外,我幾乎都是接近週末的時候完成任務的,那時記錄欄早就顯示了許多同儕的名字。

「既然大家都完成了,那我也可以」,心裡一直是這麼鼓勵自己的,也不會想一口氣把全部的內容擠在一天完成,都照著自己的步調學習、除錯,心裡壓力上調適的很好,也才有勇氣在第八週成立一個讀書會。

「半路出家」需要一點運氣,但更需要是勇氣。當初報名的實體課程幾乎和 WeHelp 任務重疊在一起,各自佔據了部分的心力,到了第七週時,心中那股無所畏懼的心態,好像漸漸的淡了,因為「後端」對想成為前端工程師的我來說,真的是個充滿阻力的世界,但只要心中有想實現的目標,這些都不算什麼。

回過頭會發現,從報名 WeHelp 申請的那一刻開始,每個環節都會讓人學到很多新東西,在過程中獲得新技能。


第四屆第一次實體討論聚會





可能是因為這是兩個月以來,第一次的實體活動,加上有安排指定的討論內容,所以活動從下午3點一直到晚上 9 點左右,幾乎不會察覺到時間流逝,還會覺得討論的時間不夠用!

第八週的實體活動大概有 40 幾個人參加,據說會是未來所有的實體活動中,參與人數最多的一次(補:結果並不是哦!)。討論活動結束後,是學長姐的經驗分享,每次聽到不同學長姐的轉職分享,就覺得補充了滿滿的精神糧食,又可以在這條路上努力走下去!


家榛學姐:「想做的技能不要妥協」




家榛學姐目前是前端工程師,分享很多在 WeHelp 的心路歷程,包括第二階段、第三階段遇到的困難,以及當時選擇的解決方法。

第三階段的個人專案,家榛學姐做的是一款「地圖座標連動文字編輯器」的網站,叫OUTDOORMAN,過程遇到很多困難,但學姐認為:「結合個人興趣後直接做就對了!」以及「對於想做的技能不要妥協!」

我相信這個專案是學姐非常喜愛的題目,所以這兩句話正是我目前很需要的鼓勵,先前礙於時程一直猶豫不定,但因為心中有一個想解決的問題、也想實現一些技能在裡面,所以現在更清楚自己該往哪個方向努力了!


瑋晨學長:「讓面試官知道你有在想、有給回饋」





瑋晨學長的第三階段個人專案,做了一個能夠解決生活問題的系統,也提醒大家不要依賴單一權威、單一課程內容。

學長分享,在面試求職時如果遇到不會的問題,也要適時的表達個人想法,讓面試官知道你有在想、有給回饋,也強調個人作品很重要,他即使下班後也會找時間做小專案,充實自己的技能。

比起前端有豐富的視覺化介面,後端的世界是我一直無法想像的,很開心能有機會聽到後端工程師瑋晨學長的分享。


彭彭:「你們現在已經不算剛入門了」





隨著第一階段的尾聲,才驚覺當初報名頁面上列舉的預期目標,似乎都已經學會了,就像彭彭老師說的:「你們現在已經不算剛入門了」,這一切真的很不可思議!



WeHelp 第一階段技術知識與目標  

相關技術:HTML、CSS、JavaScript、Python、Flask、MySQL。
背景知識:RWD 版面設計、HTTP 通訊協定、網站三層式架構。 
預期目標:學會網站全端開發的所有基礎技能,完成一個小型專案。前端的部份練習 RWD 網頁切版,透過 JavaScript 串接後端。後端的部份利用 Python Flask 架設伺服器,並串接 MySQL 資料庫。
 


這一屆的學員裡,裡面有好幾位富有程式經驗的老手,有的甚至是資訊相關科系畢業的,但更多的是像我一樣,不是相關背景也非本科系出身,我們都共同在這條路上努力著!

我覺得自己很幸運能加入 WeHelp,每位校友的分享都帶來很多啟發,更重要的是,因為大家都擁有共同的目標,所以在 WeHelp 裡面充滿熱情,這樣的氛圍對我的學習有很大的幫助。 

這裡既嚴謹又自由,每週的任務都進行得很快樂,寫程式的時候也不會有煩躁感,就算任務題目完全不熟悉,也相信自己很快就能學會,這裡真的很棒!


JavaScript 線上讀書會





第二階段除了順利完成 WeHelp 的內部任務之外,我另外組織了一個 JavaScript 線上讀書會,共讀書目是彭彭老師推薦的「忍者:JavaScript開發技巧探秘」,目前有16個人加入,第一次線上會議全員都有參與,內部也開始正常運作了,希望大家都可以一起順利結業、轉職成功~