我的轉職路徑:銀行員(31K) ➞ 銀行員(33K) ➞ 財務人員(28k) ➞ Java後端工程師(35K) ➞ Python後端&AI工程師(45K) ➞ 工程師小主管(65K) ➞ Python後端&AI工程師(92K)
變化比較大的是從財務人員轉職成Java後端工程師這段,從這邊開始說起。
我的轉職第一步是去上就業班,具體來說學了Java、Servlet、JSP、JavaScript、HTML、CSS、jQuery、Ajax、RESTful API、AWS、SQL、Git等等。雖然前後端都有學,但我當時打算走後端工程師路線,所以在我找到第一份工程師工作之後,就很少再用前端技能。
我任職的第一間軟體公司,有自家的軟體產品、也有接案,而我當時負責翻新電信商的客服語音系統以及開發聊天機器人,這個案子從我入職到離職都還在做,所以在這裡我只累積了一個專案經驗,在這間公司待了一年。
使用的技術為:Java、Servlet、JSP、Tomcat、Oracle SQL。
在第一間公司滿一年之後,當時對AI有興趣,所以辭掉工作,給自己6個月的時間,開始自學Python、機器學習和深度學習。因為有了前面第一門Java的基礎,我再自學Python就很快上手,大約花了7天學會,如果你是資深工程師,那你學習Python的速度肯定比我更快。
Python的教材看的是良葛格的《Python技術手冊》和Coursera上的免費課程,至於付費的我就不提了。機器學習和深度學習的部份,有上過國內外免費和付費教材,因為是新手,所以我是從國內的教材開始看,然後發現國內課程有的都滿水的,只講皮毛,不足以真正讓我能落地開發,所以這階段累積的ML/DL作品集都是看國外課程做出來的。
具體來說,這階段重新複習了微積分、線性代數、統計學、機率等ML/DL常用到的部份,再看線性回歸、邏輯回歸、決策樹、隨機森林、支持向量機、CNN、RNN、LSTM等等演算法的原理,理解神經網路裡面的卷積層、過濾器、特徵圖、全連接層、池化層、扁平層等,還有梯度下降、反向傳播、激活函式、損失函式、L1/L2正規化、Dropout、優化方法等等不能少的知識點。
因為時間有限,要看的東西很多,每個都無法太深入,只看重點且高頻常用的,然後學習套件的使用,如Scikit-learn、Keras、OpenCV以及YOLO等,再來開始用機器學習來實作數據分析案例、用Keras做影像辨識、以及用OpenCV做傳統電腦視覺的應用。
累積了5~6個簡單的數據分析、影像辨識的作品集後就開始找工作,順利拿到兩個Offer,一間是電視台、一間是新創軟體公司,最終我選擇後者,職務是Python後端&AI工程師,薪水由35K提升至45K,入職之後再找空檔時間把資料結構和演算法看過一遍。
在這間新創軟體公司待了1年多些後,我打算再跳槽來提升薪水,但公司老闆一直希望我留下,要我開條件,我説我要加薪到65K,老闆也沒有猶豫太久當下就答應了,因此,薪水由45K提升至65K。
在這間公司總共待了3年,在首年加薪後的兩年都沒有再調過薪水,一方面是知道新創公司財力可能有限、二方面是我覺得這裡的工作氣氛很不錯,所以互相將就,沒有再要求什麼。但我在這裡3年下來卻累積了龐大的專案經驗和產業知識,合計參與過14個專案,產業橫跨航空、軍事、智慧工廠、電信、電子、政府接案等,除了國內專案以外,也做過來自泰國、中國、新加坡等跨國專案。
這裡待了3年之後,我覺得自己的成長空間有限,所以離職邁向下一個職涯階段,我又給自己6個月的時間自我進修,這段期間主要是把求職市場上很多公司可能需要的技能,但我不熟的給通通補上,所以我學了Docker、Redis、MongoDB、PostgreSQL、C++、Golang、FastAPI、設計模式、微服務等。
然後開始找工作,總共拿到3個Offer,分別是中國的精密製造業公司、聲學辨識公司、社交媒體公司,年薪分別是110W、120W、120W,而我最終選擇後者,薪水由65K提升至92K。
有人問:「薪水由65K提升至92K,具體來說,做了什麼事情?」
我個人認為不是因為這半年學的這些技能而加薪,比較大概率是我在上一間公司所累積的大量專案實務經驗,還有2年的未調薪所致。
另外,決定你薪水的不是只有程式技能,溝通能力以及談薪技巧也很重要。
加薪公式:超出預期的工作表現(或產值) + 老闆看見 + 談薪技巧
很多人都很害怕老闆,希望離老闆越遠越好,但如果你想要加薪,請離你老闆近一點,讓他知道你的工作表現,前提是你真的要有不錯的成績,老闆看見才有意義。
養成主動回報工作進度的習慣,不管是回報給你的PM、主管或老闆,他們通常很忙,沒有空一一看底下成員的工作狀況,如果你能夠主動按時回報工作進度,老闆對你的信任度會大幅提升,並且認為你很積極、有獨立作業的能力。然後想加薪不要被動等待,請主動去找你的老闆談,權益要靠自己爭取。
最後我想說,各行各業只要做到精,都有機會年薪百萬。但如果你是受僱的上班族,你要檢視自己所處的崗位,薪資天花板在哪?有些職務的薪資天花板較低,選錯賽道,你再怎麼努力,薪水也難以突破上限。
Q1: 當初是去哪個教育機構上課?
我不是業配,不推薦任何具名的教育機構,單純個人經歷分享。你去這些機構上課不一定能讓你年薪百萬,年薪百萬是一連串的選擇和努力所形成的結果。決定薪資的不是只有程式技能。
Q2: 機器學習和深度學習具體應該要學什麼?數學要很好嗎?
ML和DL是線性代數、微積分、統計學和程式語言等多個學科的結合,有一些常用的觀念,例如:微積分的求導、極限、極值;線性代數的矩陣運算、特徵向量;統計學的信賴區間、機率等等先有概念。
然後開始學習以下入門的演算法:
機器學習:線性回歸、邏輯回歸、決策樹、隨機森林、貝氏分類器、KNN、支持向量機等等。
深度學習:DNN、CNN、RNN、LSTM、GANs、RL等等。
理解梯度下降、反向傳播、激活函式、損失函式、正規化、Dropout、優化方法、剪枝、遷移學習等技術和知識點。
再去學以下套件和工具:
機器學習套件:Scikit-learn
深度學習:TensorFlow、Keras、PyTorch
除此之外,根據你選擇的領域可能分別還需要學:
電腦視覺:OpenCV、Yolo
自然語言處理:NLTK、Hugging Face、Jieba
資料科學:PowerBI、Tableau、ETL、Airflow
以上是針對轉職初學者建議,若你行有餘力,如果是走NLP領域,也能再去學如:Transformer、BERT、GPT、Llama等等。對於一個剛入門AI且以就業導向,非研究導向的轉職者來說,你的首要目標就是,學會套件怎麼使用,且能夠做應用開發、並理解以上所提ML和DL的入門知識。另外,如果你想要走研究型路線,那數學就必須要好一點,這對轉職者來說難度很高,會很坎坷。
Q3: 現在回頭去看轉職過程,你覺得可以怎麼做,讓自己更快上手?
第一門程式語言除了學基礎語法外,物件導向三特性、指標、多執行緒、遞迴、資料結構等等重要觀念也要建立好,雖然有些在工作上很少使用,但基礎有打好,換學其他語言都很快。
Q4: 轉職就業班應該選「單一型」還是「廣泛型」較好?
就業班就是針對某個特定職缺可能會用到的技能,整包交給你,所以沒有所謂「單一型」還是「廣泛型」的問題。
例如:想要成為Python後端工程師,你最少可能需要會Python、SQL、NoSQL、Django/Flask/FastAPI三選一、AWS、GitHub、Restful API、Linux、Docker等技能。
然後在有限的時間內,把這些技能的基本用法學會,最少要達到堪用,剩下後面要靠你自己練習和實作。
Q5: 我也想要轉職成軟體工程師,但年紀已經33歲了,怕沒人要。
35歲之前轉職都還有機會,過35歲之後再轉職到另一個完全不相干的領域,那你的面試機會會少很多,而且你的薪資和年資要重頭來,同時你可能還有家庭經濟壓力,轉職成本會很高。
Q6: 轉職去學一個完全沒有基礎的領域,請問您有碰到什麼瓶頸嗎?無法理解時是如何克服的?
選擇適合自己當下程度的教材。我們可能會因為教材的作者他的用字遣詞或者解釋得不夠深入淺出等原因而無法理解,那表示這個教材現在不適合你,換一本你能看懂的,讀完之後再回去看你看不懂的那本,通常就能理解了。
Q7: 軟體工程師應該學冷門還是熱門語言呢?
如果你是一名轉職者,那就是就業導向,應該選擇熱門語言為主,但一名軟體工程師,因為專案需要,通常不會只懂一門程式語言,你還得學會其他語言。
Q8: 當軟體工程師除了程式能力以外,會看學歷和英文呢?
剛入行的初階軟工,英文真的不用很好,主要是邏輯,邏輯不好,功能可能寫不出來。但如果你想在這條路上走得長遠,建議找時間把英文補起來,因為你需要看英文技術文件、GitHub、Stack Overflow等等。
Q9: 這行業常加班嗎?
不一定。加班看各間公司,依我目前這間公司很少加班,下班時間到,我20分鐘內會離開,然後可以遠端上班。但我第一間公司在趕專案時,就常加班到晚上9-10點。
然後加班也要分清楚是真的公司業務量很大,還是自己對工作的掌握不夠熟練,而需要留下來加班。
Q10: 可以分享您一開始轉職是選甲方還乙方嗎?要先選乙方接案公司比較能練功嗎?
我是選乙方。在乙方容易接觸到來自各個不同產業的專案,你可以累積到不同的Domain know-how,然後因為每個專案的需求不同,使用的技術和工具也不同,你在短時間內會學到很多種技術,成長速度很快,但缺點就是需要一定的自學能力、工作環境高壓、一人可能要被當多人用。
Q11: 如果是選擇傳產、物流等的行業,是不是定型後比較沒辦法跳槽呢?
主要看你在這些產業中,有沒有累積到對就業市場來說是有價值的經歷;如果有,跳槽不是問題。
Q12: 推薦的入門語言是Java嗎?
看你是哪一種取向:
就業導向(職缺多):Python、Java
語法簡單易懂:Python、Golang
未來趨勢:Golang (現在會的人相對少,而且高薪)
Q13: 是否要刷LeetCode?
轉職初期不需要刷LeetCode。年薪百萬以上的職缺,你才會明顯感覺到面試公司會考。
Q14: 28K的薪水在台北生活,還能存到錢,還能讓你全職去上課5個月,怎麼辦到的?
理財方式是什麼?辭職以後不用生活嗎?生活費哪裡來?
我在第一篇轉職文中就有提到,在28K的工作之前,我在銀行待了3年,月薪分別是31K和33K,年薪是16個月。
我的每月生活支出約:20,300元 = 7,500(租屋)+9,000(餐費)+700(通訊)+1,100(油資)+2,000(其他雜費)
當月如果自己煮比較多,餐費就更省,生活費不用2萬,所以每個月約能存1萬:
1年存24.4萬 = (1萬*12)+(3.1萬*4),3年就是約73萬
轉職成本:24萬 = 12萬(半年生活費) + 12萬(學費)
作者介紹|達薪理學 (Dash Empower)
哈囉,這裡是達薪理學,一個專門分享建立被動收入、網路賺錢、股票投資以及個人成長的部落格 追蹤達薪理學,每週幫你長點薪理小知識。
本文經授權轉載自方格子Vocus(原標題:28K到92K文組轉職工程師(2):細節補充)
責任編輯/林俐