第一次在salary發文,如果有違板規請提醒我,會盡快修正。另外發現電腦排版在手機上好
像有點怪怪的,請大家多見諒。
類似的文章在版上也不少,依然想藉由分享自己的經驗,讓還在迷茫、感到不確定的你可
以從中找到一些東西,或許是更明確的學習資訊,又或許是下定決心的勇氣,文章有點長
,無論你最後帶走了什麼,都祝福你能夠在生涯的道路上能夠走得更加順利。那我們就開
始吧!
轉職緣起
「等等,我好像還是不喜歡諮商」
這是一年前,好不容易考上師大諮商所,但在碩一開學一天看到課綱時在心中對自己說的
第一句話。
大學就是諮商本科的我,迷迷糊糊但認真的考上了研究所,然而面對實際晤談一次又一次
的失敗經驗,漸漸找不到對諮商的熱忱。不會做諮商的我,同時又面對著「自己只會諮商
」的現實,內心自然是滿滿焦慮。
算是很偶然的想起自己在大學時對程式有一些興趣,同時也有一定的天份(數學邏輯能力
很強)。當時想得很單蠢。「那就從寫網頁開始學吧!畢竟網路上一堆成功轉職前端工程
師的分享,如果努力一陣子,搞不好就能成功轉職吶。」
現在看來這想法完全是天真到爆ㄏㄏ
2020/09~2020/12 累積基礎實力 & 迷茫期
當時自己一邊上研究所的課,一邊去書局抱了 HTML CSS JavaScript 的書回來讀,也去
udemy 上陸續買了幾個課程。每天讀一點書、上幾堂線上課程,然而隨著課程進入尾聲、
書也讀了一大半,有了一些小技能、跟著線上課程的老師做了一個小專案,卻依然不知道
自己可以做些什麼。唯一確定的是,只要自己脫離線上課程的引導,我連一個簡單的網頁
都做不出來。(簡單網頁示意圖)
https://imgur.com/WlVW8wC
中間還去上了知名的哈佛線上課程 CS50 (有興趣可以去查一下),但依然對於程式要解決
什麼問題、網頁要怎麼實作沒有任何想像。
這段時間是我在程式學習上最痛苦的一段時期,因為沒有任何的引導,也沒有相關經驗的
前輩可以跟我說接下來可以做什麼。相關知識的筆記不斷在增加,但很少用得上。網路上
的文章無法將一個前端或後端工程師的學習路徑講得足夠仔細(我的這篇也不可能),而我
就在一個不知道自己可以幹嘛的漩渦中打轉,也開始會質疑自己是不是不適合寫程式,因
為沒什麼成就感,也從未靠自己完成讓自己滿意的作品。於是到了年底,我開始思考要加
入一個實體課程來幫助自己進行進一步的學習
曾在版上看到有些人的分享是完全自學後轉職成功的,我必須要說他們是天賦英才的神人
,大部分的人是沒辦法自己找到方向然後持續學習的,依靠一個有完整架構的課程來學習
是非常重要的事,因為課程會不斷丟給你新的目標,讓你至少有一個基礎的方向可以往前
走。那麼,應該要依靠怎麼樣的課程呢?
https://imgur.com/oPRoSh2
2020/12~2021/02 尋找課程期
坊間的程式課程非常多
老牌的例如資策會、恆逸、巨匠
新興課程有六角學院、Huli鋰學院、Alpha Camp、五倍紅寶石、彭彭軟體工程師扶持計畫
、CMoney軟體工程師戰鬥營...(可能還有一些我不知道的歡迎大家補充
以及免錢最佛的 appwork school
在考量這些課程上,我當時的考量原則如下:
1. 能培養自己 google 獨立解決問題的能力
2. 是否能做出完整的專案作品
3. 有沒有和其他學員合作的機會
我最後去的是彭彭的軟體工程師扶持計畫,為了避免業配嫌疑,這邊不附任何連結,請大
家自行對各個課程進行比較。
過了半年的學習加上實際求職面試的經驗,我強烈建議各位在挑選課程時要注意以下要點
,才能選到能讓自己成功轉職的課程
1. 選擇以「作業導向」為主的課程。老師上課的時間最好不超過1/3,甚至最好是都不要
上課,全部都派作業給學員的。你可能會好奇:「都是作業老師也太爽了吧,這樣能學得
好嗎?」然而軟體工程師最重要的能力並不是擁有多強的邏輯思維、或是現在會多少東西
。而是你有沒有辦法在你「不會」的情況下靠自己來找到方法解決眼前的問題,因為在軟
體產業90%的資訊都可以在 google 上找到。如果你的學習永遠只依靠單一的權威灌輸知
識給你,你是沒辦法靠自己成長的。可能從課程畢業,你還是不知道怎麼看官方文件,今
天要新增一個新功能或是程式出了一個
bug,你卻連怎麼 google 都不知道,因為以前老師都幫你整理好、或是直接跟你說要怎
麼改了。同時,你的學習也會容易被限縮於老師給予的教材,這些對於未來的發展都是硬
傷。
2. 選擇「能獨立完成一份完整專案」的課程。基本上所有的課程都會在中後期請學員完
成一份程式專案,這部分請讀者務必對專案的內容作詳細的調查,建議選擇會安排4週 以
上進行結業專案的課程。曾經看過一個課程內容最後請學員完成三份耗時12小時的專案。
我直接明講,這種成品根本不能當作專案,原因很簡單,時數太少、技術含量不夠。拿這
些作品找工作絕對會瘋狂碰壁。而 獨立完成 更是重要,假如你的專案全部都是和別人合
作出來的,雖然可以展現你的程式合作經驗,但在找工作時,面試官會不
知道到底哪些部分是你完成的,反而對你的實作能力有一些懷疑。當然,課程能兼具獨立
和合作開發的專案練習是最好,但兩者要擇一時,請毫不猶豫選擇獨立開發專案的課程。
2021/02 ~ 2021/08 在作業地獄中載浮載沉,成功上岸
在這段期間是我最痛苦、也是獲得最多成就感的時期。由於課程都是引導式作業,只能把
一個又一個不懂的關鍵字丟上google找答案。課程內容我就不多提了,可以自己上網找,
會有更詳盡的介紹。
很多人想轉職工程師時都會看到這張圖
https://imgur.com/iSzyWgz
但我覺得實際上更像是這樣
https://imgur.com/5rFB0QT
過程中會有無數讓你想崩潰的事情,想不出開發的方式,某個套件或功能在實作時一直有 b
ug,將專案上線時又有一堆問題,實際進入職場後還有一堆讓你更崩潰的坑要去學習,但走
過這個歷程的我已經不會再害怕崩潰的來臨,而是擁有在汪洋大海中探索的勇氣。
將近半年的紮實課程中,掉隊的人也不少,一開始共300人報名課程,實際入選人數為90位
,隨著訓練難度不斷增強,最後完成自主專案結業的人數為30位。轉職從來就不是一件輕鬆
的事,這半年我每天都花10~12個小時和眼前的程式奮鬥,因為我知道自己不夠聰明,只好
花更多的時間努力,才能和訓練營的同學們站在同個水平線上。轉職的意願會體現在努力的
行動,足夠的恆心毅力是唯一能支撐你繼續前行的養分。
這邊還是很概略的提醒大家關於前後端的學習路徑,讓這篇文章顯得有內容一點XD
1. 前端(經驗不多只能簡短介紹):HTML、CSS、JavaScript基本排版、操作,「JS30」是一
堂不錯的免費線上課程,可以磨練你基本的JS實作。有一定基礎後,三大框架 (React
、Vue、Angular) 三選一,另外Angular台灣好像用得很少,如果你不是很清楚三者的差
別可以果斷先在React Vue中挑一個,反正學過一種之後要學另一種都會很快,另外 Java
Script 是一個很怪的語言,前端一定要搞懂他的語言特性。
2. 後端:選一個後端語言(C++ .net / PHP / Java / Ruby on Rails / Node.js / Pyt
hon / Golang)自己列完發現有夠多(訓練營用python flask 我後來有自己碰一點Node Ex
press),對初學者來說選哪個語言都可以,語言只是工具,做的事情大同小異,精熟其中
一個都能找到工作。學一個資料庫(SQL / NoSQL),知道把一個網站架起來該做些什麼,
有雲端平台使用經驗(AWS、GCP、AZURE)很加分,進階一點可以學快取(cache),高流量的
處理、測試、容器化技術等等。
3. 兩端都要會:網路安全概念(HTTPS XSS CSRF)、CORS、Git flow、前後端分離的開發
方式(ex. RESTful API)、基礎的資料結構演算法(可以去買書來看,leetcode easy即可)
隨著前後端經驗不斷累積,也確定自己想要走向後端工程師的道路(我就討厭切版),最後完
成了兩個獨立專案(分別耗時3週與8週)。
這邊補充一下專案資訊,因為都放在AWS上(要燒錢的),再留個幾週就會下架囉。
台北一日遊(訓練營指定專案):旅遊電商網站
github:https://github.com/skysea04/Taipei_day_trip_nodeJS
專案本人:https://skyseatravel.site/
Scard(自主專案):不要懷疑 就是簡單版的Dcard
github:https://github.com/skysea04/Scard
專案本人:https://scard.skysea.fun/b
最後就是去找工作啦!在7月底/8月初的這段期間陸續投遞了130封履歷。每天進行2~3場
面試,至今面了17間公司,拿到3個offer(42k~50k),下週還有2間公司要2面。雖然還不
確定自己最後會去那裡,但也算是踏入轉職成功的第一步了。
過程中感謝家人的支持,讓我放心在這一年一邊修研究所的課一邊學習寫程式,幾位好友
的支持鼓勵讓我勇敢追夢,訓練營的夥伴們彼此支持學習得到活下去的動力。也特別感謝
室友們忍受我在這半年每天寫扣到早上4.5點,還在疫情期間煮三餐給我吃(*′▽`*)。回
頭來看自己不只很努力,同時也很幸運,可以在一個好的環境中成長茁壯,成為自己喜歡
的樣子。
祝福有心轉職的人們,都能找到一個合適的歸宿。