在《轉職前端工程師的一路上:自學篇》中有提到,為了解決自學所遇到的種種難題,我最後選擇彭彭(彭兆蔚)所創辦的 WeHelp Bootcamp。在這篇文章中,會提及參與培訓單位的過程,培訓單位如何解決我自學遇到的困難,以及在我意料之外其帶來的好處,最後會回到常見的問題:「一定要尋求其他資源才能順利轉職嗎?」、「如何選擇幫助轉職的資源呢?」。
- 《轉職前端工程師的一路上:決心篇》
- 《轉職前端工程師的一路上:自學篇》
- 《轉職前端工程師的一路上:培訓篇》
- 《轉職前端工程師的一路上:面試篇》
參加培訓單位
在清楚地體會自學的種種難題後,我希望尋求一個管道可以有效地解決這些困擾。我最後選擇彭彭(彭兆蔚)所創辦的 WeHelp Bootcamp。這裡我想先簡述參與培訓單位的過程,接著記錄這個培訓單位如何解決我自學遇到的困難,以及在我意料之外其帶來的好處,最後我才會回到常見的問題:「為什麼是選擇培訓單位,而非線上課程呢?」、「為什麼在眾多培訓單位中選擇 WeHelp Bootcamp?」。
培訓中的常態
培訓營歷時半年,分為三個階段,各兩個月。第一階段主要在熟悉程式語言的語法;在第二階段,會依據相關文件完成一個指定的網頁,前端、後端都要寫,沒辦法仰賴第三方服務(例如:Firebase);第三階段則會在前端及後端之中選擇一個,進一步深入鑽研,並完成一個個人的網頁專案。
走完這半年,你應該會撰寫 JavaScript、Python 兩種語言,有前、後端完整的開發經驗,兩個網頁專案作品,並在最後兩個月選擇精進前端或者後端技術。
培養獨立解決問題的能力
在培訓期間,我印象深刻的話之一是,「當問題發生時,工程師就是那個需要解決問題的人」,我認為這是訓練中一直強調的概念。為了訓練「獨力解決問題」的能力,培訓營不會提供手把手的教學,相反的,它會為你訂定一個目標,舉個前端部分的例子,例如:這個禮拜天以前請你「依照設計稿完成結帳頁面。不能使用套件,需要以 POST 方法串接 /api/order API,依據 API 回傳的結果顯示成功、失敗頁面 」。
每週投入 48 小時以上
於是一週內會經歷以下的階段。你會先去瀏覽相關的設計稿及相關文件,規劃你開發的時程。你或許不知道 POST 方法是什麼,於是你會 Google POST 找到 HTTP 方法相關的資訊。之後你會開始切版,可能在串接 API 的過程中拿不到預期的資料,你懷疑是自己語法寫錯,還是程式邏輯有問題。在你自己掙扎了許久,你會整理既有的資訊轉而問問你的同學、助教,甚至老師。一週很快就過了,你在死線前交出作業,下一週的目標又公布了。
我一週大概要投入 48 小時以上的時間來完成上述的事務,大概就是一週上六天班的意思。許多人會問,「應該要辭掉工作,全職投入嗎?」,以我的例子來說,由於先前有儲蓄大概八個月生活費,因此可以毅然決然地在退伍後專心轉職。而以後設立場觀之,在辛苦工作一天後,仍需要投入那麼的時間學習,其實是非常大的負擔,值得好好三思(當然必須說還是有同學是利用上班之餘的時間參加,不過壓縮休息時間是必然的結果啊)。
解決的困擾、意外的好處
講了那麼多,所以培訓單位有解決我自學遇到的困難嗎?答案是肯定的,而且它還帶來一些我意料之外的好處。
有方向地思考如何釣魚
首要解決的問題,便是「不確定在正確的方向上前進」、「找不到請教問題的對象」。如前所述,培訓營每週會安排目標,基本上大方向確定了學習的路徑,而每週的目標除了包含你應該要學習的、普遍業界使用的技術外,難易程度也是被排序、調整過的,因此會感受到自己正循序漸進地學習。
遇到問題時,你大概會轉而問問你的同學、助教,甚至老師。不過也須銘記在心,遇到問題不是直接伸手牌,把你已知的資訊整理好,表現出「你有做好功課,只是希望可以指點迷津,而非給予明確答案」的態度很重要。比起「我不知道要怎麼串 API?」,「我的目的是串 API,目前我用 fetch 的方法撰寫,但回傳的資料好像是處於 pending 狀態的 Promise,我認為可能是使用了錯誤的語法來撰寫,但我沒有頭緒繼續前進,因此才想請你幫忙」顯得有誠意很多。
寫過前端、後端相關功能後,再選擇職涯
第二個我覺得很重要的好處便是這個,有過前端、後端完整的開發經驗後,再來選擇職涯方向。這其實也很合理,以我的例子而言,大概就是跟著網路上、書上的教學學寫 HTML、練習用 CSS 切版,於是你覺得自己好像對前端還可以接受;另一方面,你用 Python 練習爬蟲,覺得後端好像也不排斥(之後才知道後端要做的事情還有很多)。在這樣的知識水平下,真的是靠運氣在選擇前端或後端的。因此真的體會過再做選擇,給自己的,是再一次的機會做進一步的認識及探索。
除了職涯選擇,有過全端開發的經驗確實是加分的。對於前端工程師而言,Server 對你而言不再是神奇吞吐資料的黑盒子,你或許因此看過 Template engine,可以想像前後端不分離時,大家都怎麼寫 code。對於後端有基本的認識及實踐,推人及己,可以讓你更清楚前端在網頁開發中的位置與職責。
你想都沒想過的事情
所謂旁觀者清,最後的好處便是那些你想都沒想過的事情,這邊舉兩個例子。
第一個例子是,在我學習 CSS 的路程上,學到了各式各樣可以用來排版的技術,包括 inline-block、flex、float、grid、table,「怎麼會有那麼多方法來做到一樣的目的呢?」,我這樣問自己。但我無以名狀,頂多可以指出語法及使用情境的差異,直到有人跟你說「這些技術的出現是有先後順序,一個技術的出現,通常是為了解決前一個技術所帶來的問題」。
這是多重要的心法啊!我於是被點醒,此後會去關注某個技術出現的背景,它想要解決的問題是什麼(不然為什麼不用先前的技術就好)?往後在使用這些技術時,便能更立體地知道它們所應該使用的時機,還有應該避免的情境。
第二則是我從來沒想過自己的開發風格很糟。到第三階段初期,我還一直以為我的程式排版很清楚,直到在問助教問題時,他看到我的專案程式碼直接眼冒金星,建議我使用 ESLint 來學習業界常用的排版方式,你才發現,原來我跟業界差那麼多。
回顧學習經驗
拉拉雜雜講了那麼多,好像盡說了我在培訓單位中獲得的好處。
一定要尋求其他資源才能順利轉職嗎?
當然不是。不過有時候我也會想,為什麼有人可以好好的自學,刻出一個專案,找到工作,我卻沒辦法呢?他們難道就沒有遇到自學的困難嗎?我想一定有,但其他人有找到相關的資源來幫忙,例如:書上、網路上手把手的教學、熟識的友人,而我沒有,或是我不想花許多時間、人情成本來找資源,對我來說,報名培訓單位的費用換取的是種種的「方便」,而在衡量之下,我選擇了較適合我的,僅此而已。
總的來說,轉職的目標就是找到工作,而一份工作所需要的門檻就在那邊。想辦法達到門檻,在過程中遇到問題,能解決問題的都是好方法。
如何選擇幫助轉職的資源呢?
- 確認結訓時的目標
這些學習資源通常會跟你說,理想中,結訓時你應該有的樣子,而你需要去確認他們所說的,是不是你想要的。舉個例子來說,你知道有一個獨立完成的專案對於找工作是重要的,那這個學習資源會協助你完成自己的專案嗎?你心中的理想職缺需要會寫 JavaScript,使用 React 作為前端開發的框架,那麼你自然不會去學 Python,也不會選教授 Vue 框架的課程。
然而或許你也不太知道自己要什麼,如同前面所說,我自學的過程中,也有「不確定在正確的方向上前進」的困擾,那麼這樣的我如何確定自己訂定的目標是不是業界要的呢?所以你可以統整各家學習資源所承諾的目標,想必業界工作的門檻應該都差不多,那麼這個目標應該也會有個大致的輪廓,在統整的過程中,你也會學習、辨認什麼樣的目標是你要的,這一來一往,便能篩選出適合自己的學習資源。
- 教釣魚,而不是直接給你魚
我認為檢驗學習成果最好的方法就是你可以自己釣魚,當今天沒有其他人幫你,你也可以獨立作業。在職場上,你會聽到 PM 跟你說,「我這裡要一個 Carousel」,行銷會跟你說,「為什麼這個商品頁面版面怪怪的?」。不會有人跟你說應該如何完成一個功能,不會有人跟你說應該要如何解 Bug。這也是為什麼「培養獨立解決問題的能力」、「不手把手教學」對我來說是十分有吸引力的,因為那才接近真實。
所以基本上,單純「上課」的我不選,反而會選擇能夠給予合理目標,並希望你花時間思考、撞牆去完成的教學方式。不過當然,這個學習資源應該要能在你遇到困難時協助你,比如說讓你能在卡關一陣子時,可以找老師、助教求救。
- 了解自己的學習偏好
自己過往習慣什麼樣的學習方法?什麼樣的學習方法可以為自己帶來比較好的學習成果?這些問題只有你自己可以回答你自己。
對我來說,因為深知自己是容易產生惰性的,強迫自己每天走出家裡,專注在學習上。所以會傾向選擇實體課程。另外,過去的學習經驗也都是要到學校、補習班上課,實體上課的模式也相對熟悉。雖然這麼說,WeHelp Bootscamp 大部分的時間也是在線上進行,不過在第二階段有試著在每週舉辦一整天聚會,來產生「凝聚力」,讓團體間可以互相扶持。這時也可以思考,若另一個選項可以提供折衷方法,自己是不是能夠接受?
- 探索前、後端的機會
有過前端、後端完整的開發經驗,才會讓你對職涯的想像更深刻、不全然是幻想,此外,全端開發的經驗對於找工作也是相當加分的。因此學習資源能幫助你學習前、後端技術,並探索前、後端職涯發展的可能性,對我來說,不只是 Nice to have,而是超級合理的 Must have。
為什麼在眾多學習資源中選擇 WeHelp Bootcamp?
想當然爾,當然是他有達到我上面所列出的需求,再加上當初學習 Python 便是看彭彭的 Youtube 教程,對於他的教學是有信心的。收費合理、規劃透明,我便選擇他作為輔助的學習資源。
未完待續,面試篇
在 WeHelp Bootcamp 的第三階段,我們發表了自己期末專案,迎接整個培訓營的尾聲 — — 模擬面試,並開始投入撰寫履歷、求職信,管理面試階段,準備面試應答的馬拉松。這些過程的細節、眉角都將記錄在下一篇文章:《轉職前端工程師的一路上:面試篇》。