近年來,轉職軟體工程師已成為熱門話題,各大媒體和網站都在大力宣傳,強調高薪、短期轉職成功等優點;然而這些宣傳往往只看到表面,卻忽略了轉職成為工程師需要投入的時間和金錢,以及進入工作後所面臨的挑戰和困難。
以往看到這些都實在很想出來說說什麼,但是又怕被其他人回說 :
"不要擋人財路。"
"你是不是自己已經是工程師了,所以不想讓其他人搶你工作。"
....
但我決定還是要出來探討轉職成為軟體工程師的利與弊,讓大家有較全面的了解,
不被宣傳和推坑文沖昏了頭。
不過我其實想講的是 - 不是不要轉職成工程師,而是思考清楚後再決定要不要轉職。
轉職成工程師是現今熱門的趨勢,但你是否真的考慮清楚了?
你可能只看到了工程師薪水高、前景好,卻忽略了背後的辛酸和所需的時間和金錢投資。
就好像有的人想當醫生因為薪水社會地位高,但沒有想過背後的辛酸和所要花費的時間;就好像有的人想出國工作,但沒有想過出國文化語言的差異,生活工作的艱辛;
不想看到很多人因為被鼓吹就一股腦的投進去,可能浪費時間和金錢,但是並沒有得到自己想要的回報,而且現在有些課程根本超收錢。
一、工程師不是鐵飯碗
沒有任何一個職業是鐵飯碗,看看最近的大裁員,這個應該不用解釋了。
二、工程師不是高薪保證
不要因為光聽到轉職工程師薪水很高就轉職,
你可能看到不少人分享說他轉職工程師後薪水有多高,在那之前要先知道 :
- 對方在什麼產業 : 比如說區塊鏈、博弈等,薪水本來就會比較高
- 對方在什麼地區 : 如在台北起薪可能會比較高
- 對方轉職的時間點 : 有段時間工程師薪水開特高,像是疫情爆發那時候大舉徵才,薪水也開比以往高很多,那現在因為通膨和經濟衰退,就算拿到 offer 也就不見得有辦法像那時候一樣高
- 對方的職缺和技術是什麼 : 如通常後端會比前端高
- 對方的自學能力 : 有時候是生存者偏差,通常大家都會分享成功案例,常常看到轉職成功的本身能力就不差。
三、面試很繁雜
那工程師面試時可能會遇到這些關卡交錯,但不一定每關都會遇到。
以下為簡單介紹,如想看詳細的請點 面試國外工程師超詳細超過 100 道題目蒐集、分類歸納與準備,並按照相對的數字查看。
- Technical interview (2.1.3) : 沒有 coding,直接問技術相關問題
- Coding interview (2.1.4) : 面試官出題,你講解思路和解題
- Online assessment / Online test (2.1.5) : 給你一個線上連結,限制時間內要寫完
- Assignment (2.1.6) : 帶回家寫的作業,通常也有限制時間
- System design (2.1.7) : 通常 senior engineer 才會遇到,考對於系統的規劃和設計
- Behavior questions (2.1.2): 問各種情況下面試者會怎麼處理,主要想知道面試者的處事態度和個性
四、要更高薪要學的比你想得更多
剛入行時薪水的確比轉職前高,但沒持續努力就一樣會遇到天花板;
如果你不介意的話就沒關係,但如果想要更高薪的話。
你可能要開始刷 LeetCode,是一個蒐集了超過千題的軟體工程師面試技術題目的網站。(也有可能剛轉職面試時就會考了)
可能還要補上關於演算法、資料結構的相關知識如 hashmap, stack, queue, binary tree, binary search tree, linked list 等,如何估算 時間和空間複雜度 才有辦法刷題。
也可能要學系統設計如 network protocols and proxies, databases, latency, load balancing, caching, sharding 等。
題目可能會是 :
- 請設計一個短網址服務
- 請設計一個像 messenger 或whatsApp 的通訊軟體
- 請設計一個 Netflix
- ...
不過,沒關係
五、工程師是需要開口說話的
基本上很難有什麼工作不需要溝通能力,不要說因為不擅於溝通就想轉職工程師;
其實工程師常常要跟 designer、product manager、主管等等開會討論需求;
有時候在新創公司時有時甚至還要兼職各種腳色。
這邊舉個簡單的例子,
比如客戶回報問題給客服,他在網頁上看不到某個銀行的下拉選項。
這時候你可能需要要知道 bug 怎麼出現的,用什麼裝置、使用什麼瀏覽器上、版本是多少、如何操作的、什麼時候出現這問題的?
但客服回報給 PM 時,客服和 PM 不見得有技術背景,不知道你需要什麼資訊,跟為什麼你需要這些資訊;那你除了要有良好的溝通能力外,還要能把技術詞彙解釋成非技術人員可以懂的用語。
六、對於寫程式的興趣和 debug 的毅力
6.1 如何判斷
利用網路上免費資源 還在考慮轉職工程師要上哪間學校? 這裡推薦你免費的學習資源、書籍與素材 判斷自己實際上有沒有辦法對寫程式有興趣,和有沒有辦法長期投入是第一步,如果寫幾天都沒辦法堅持了,那更就不用說後續了。
另外建議先上網了解各類工程師是在做什麼的。
不要一衝動馬上就跑去報名課程,不然很多課程一花下去就好幾萬,
等你學到一半發現沒興趣、或是沒想像中的容易就浪費了。
6.2 付費課程選擇
有辦法自學的話網路資源很多,但沒辦法的話會較缺乏有系統化的學習;若你是自學花很多時間還是搞不懂,那就建議上課。
上課也不是所有課程都好,要判斷一下上課內容和價錢是否合理。
比如前端好了,課程包括教 HTML、CSS、JavaScript 等,
這時候要有概念現在前端 framework, library 大致都用 Vue 和 React,就不要再挑只教 jQuery 的課程,除非你有鎖定的公司或產業會用 jQuery。
關於價錢合不合理、內容合不合理,多查查資料、社團發問或問你的工程師朋友們。
七、要具有足夠的自我學習力
如果自我學習力不是很夠,職場上也沒有前輩帶領,能力容易停滯不前。
所以你要有 :
自己解決問題的能力
當你剛到公司時,也許還不熟悉流程時,你可以觀察其他同事 / 找公司內文件來看;
程式上有很多基本的下 console、查 stackoverflow 等的方式幫助自己,可以善加利用,減少問別人一些重複或網路上就查得到的問題。
尋求別人幫助的能力
你可能會不想麻煩別人,想要自己可以獨立解決問題,
這也許在做自己的 project 時可行,但在公司時有時限問題,不能一直卡住沒有進度,所以給自己一個時間區間,比如卡住一兩小時後向其他人求助。
八、相關文章參考
這是我的轉職工程師的歷程,好的壞的開心的辛苦的努力過的全部都有寫上去,歡迎大家參考囉!
- 轉職工程師 :: 撞牆撞得亂七八糟,從睡廁所到睡公司的軟體工程師之路 (1)
- 轉職工程師 :: 從放棄當工程師,到在英國就職的軟體工程師之路 (2)
- 轉職工程師 :: 從打包行李準備回台灣,到拿到英國工簽軟體工程師之路 (3)
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。