轉職軟體工程師:了解工作內容、所需技能與薪水

軟體工程師的工作內容是什麼?真的要懂這麼多嗎?而薪水真的很高嗎?又從技術面試、白板題、還有行為面試,為什麼面試有那麼多關?想轉職軟體工程師,怎麼開始準備?本文從 AC 校友分享軟體工程師工作內容,薪水行情、帶你認識軟體工程師的工作樣貌;再從面試分析背後反應的專業與素養要求、拆解雇主為什麼這樣問,幫你建立開始準備的方向。

軟體工程師都在做什麼?

軟體工程師分成前端、後端與全端,任務大不相同。前端是使用者和電腦直接互動的地方,例如網站首頁。故前端工程師的任務,是打造吸引人、操作體驗順暢的介面。後端則是電腦處理資料,如後台、伺服器等地方。故後端工程師的任務,是要確保能正確提供資料。

端工程師

在外商軟體公司當前端工程師的 AC 學長 Mike,分享他的工作日常主要有 3 大塊,依所花時間排序是:產品開發、產品需求討論與釐清、個人學習、成長。

前端工程師工作時間佔比

產品開發

  • 與主管、工程團隊討論規格與技術可行的實作方式
  • 寫程式
  • 透過討論、翻查技術文件、自我研究去解決各種技術困難
  • 測試與抓蟲 (debug)
  • 撰寫文件

產品需求討論與釐清

  • 跨部門溝通、釐清需求以及討論技術上的可行性
  • 定義開發策略與優先順序

個人學習、成長

  • 個人職涯與工作規劃、討論
  • 讀書會 (study group) — 學習新技術與其他領域(後端、資料科學)的知識

想瞭解更多前端工程師的日常,可再看看這篇文章:前端工程師要會什麼?工作上會遇到什麼挑戰

端工程師

由於後端工程師要確保後台、伺服器能正常運作,正確提供資料。所以後端工程師要處理資料、建置系統、維護平台。具體任務像是:

  • 定義資料串接的格式
  • 確認資料庫是否能夠滿足本次需求
  • 設計能滿足需求的演算法

參考 AC 學長、在「毛孩市集」擔任後端工程師的 Howard 的工作日常,他一週的工作內容比例分配,會像是下面這樣:

  • 50% – 60% 功能開發、測試、優化
  • 40% 需求確認及修改
  • 5% – 10% 除錯。

想瞭解更多後端工程師的日常,可再看看這篇文章,再更深入了解:如何成為後端工程師?後端工程師都在做什麼?

成為軟體工程師,3 分鐘小測驗,找到你的職涯起點

轉職軟體工程師,如何開始?

想要轉職成為具有專業素養的工程師,但是還沒有建立相應的技能?你需要能有效地和業界接軌的專業訓練。ALPHA Camp 的課程,就是設計來幫助學生,完整有系統地養成工程師必備的能力。課程內容與體驗包含:

大量的動手實作

  • 要真正掌握一個新技能,唯一的方法就是大量實作練習。AC課程中我們安排了一定數量的個人與團體練習機會,但你也必須試著自己尋找課外練習方向,不能止步於教材提供的題目。而在八週課程的尾聲,我們都會舉辦期末黑客松,讓同學們體驗「接到需求–>在時限內跟隊友腦力激盪–>完成功能開發」的過程。

反覆的刻意練習

  • 我們會持續挑戰你在「速度」、「細膩度」的表現。作為新手,很難立刻就掌握所有技能,但你必須要求自己:一定要十足把握自己能迅速精準地完成已經學會的事物。

說明專案內容與過程

  • 在完成每個稍有規模的專案後,我們會要求你錄製一小段影片或是撰寫部落格,解釋你的專案過程、遇到的困難、做了哪些新嘗試,這麼做也能幫助別人認識你的作品!

專業素養

  • 不論是個人專案或是團隊協作,都要養成撰寫說明文件的習慣。在小組協作專案中, ALPHA Camp 的技術顧問與助教們會審查你的技術文件與開發流程。技術文件包括 Git commit comments、 GitHub Readme 以及程式碼的組織架構和註解。

能力評估

  • 期末時,我們會提供完整的技術測驗,幫助你了解自己對基礎能力的掌握是否到位、哪些部分需要努力。

軟體工程師的工具、學習與技術精進資源

Stack Overflow:工程師程式技術問答網站(Stack Overflow 教學:找到程式問題的解答

Github:版本控制工具 (Git與GitHub介紹,軟體版本控制基本教學)

Postman: API 測試工具 (API測試工具Postman 新手教學

Docker: 開源平台讓你建立與測試部署應用程式 (Docker 是什麼?實戰手札帶你認識Docker)

Leetcode: 工程師面試題目網站 (Leetcode 是什麼?誰需要刷題?工程師面試要刷到什麼程度

軟體工程師要會什麼?如何準備面試?

整合前面分享的前後端工程師的工作,這部分以求職者角度切入,幫你分析雇主會期待的工程師能力與特質;再整理在面試中可能會遇到的題目,提供你準備的方法、在面試中呈現自己是有所準備。

工程師的日常 1:跨部門與技術討論,釐清需求、定義規格與實作方向

要在面試中呈現你能勝任跨部門討論與技術討論,你可以用下面這些方式準備與練習

口試練習:

  • 撰寫並練習一個清楚、流暢的「自我介紹」,讓面試官能在短時間認識你
  • 在每一份作業或專案之後,透過文字或影片,練習介紹專案內容、遇到的技術困難,並如何解決
  • 跟同學一起練習白板題,練習如何作有效的討論,包括聆聽題目、拆解問題、表達想法

專案實作:

  • 打造個人專案,挑戰課程教材以外的技術

工程師的日常 2:開發產品-寫程式、團隊協作、解決技術問題‍

要具有團隊協作開發產品,解決技術問題的能力,你可以用下面這些方法來養成

練習線上程式測驗:(如 HackerRank

  • 針對網路上找到的技術考題作練習(AC 有提供),並定期複習基礎概念與使用情境,建立紮實基礎

研究資工觀念:

  • 如演算法、時間跟空間複雜度等,並練習打造小程式

口試與文字練習:

  • 透過跟同學模擬面試及撰寫學習筆記與技術文章等文字產出練習,深化對程式語言、開發概念的認知,並加強針對技術觀念的溝通技巧

專案實作:

  • 打造小專案,要求自己在有限時間內完成
  • 思考該如何測試自己寫的程式碼,不斷地重構優化
  • 找有技術背景的朋友/同學幫忙 code review

延伸閱讀:想轉職軟體工程師?找工作前你需要這份「求職清單」

好的軟體工程師要具備什麼條件

  1. 技術知識: 軟體工程師必須精通至少一種程式語言(如Java、Python、JavaScript等)以及相關的開發工具和框架。他們應該瞭解軟體開發的基本原則和最佳實踐。
  2. 問題解決能力: 軟體工程師應該擁有優秀的問題解決能力,能夠分析複雜的問題,提出有效的解決方案並實現它們。
  3. 編碼和程式設計技能: 他們需要良好的編碼和程式設計技能,包括撰寫可讀性高、效能良好的代碼。
  4. 算法和數據結構: 了解基本的算法和數據結構對於解決複雜的問題至關重要。
  5. 版本控制: 應該熟悉版本控制工具,如Git,以便有效地協作和管理代碼庫。
  6. 測試和調試: 優秀的軟體工程師會優先考慮測試和調試,確保代碼的品質和穩定性。
  7. 學習能力: 技術領域不斷變化,軟體工程師需要具備不斷學習的能力,跟上新技術和趨勢。
  8. 團隊合作: 在大多數情況下,軟體工程師需要與其他團隊成員協作,因此良好的團隊合作能力至關重要。
  9. 溝通技巧: 良好的溝通能力有助於將技術概念清晰地傳達給非技術人員,並與團隊成員進行有效的溝通。
  10. 專業精神: 應該具備對工作的專業態度,包括準時交付、尊重客戶和同事,以及保持高度的道德標準。
  11. 解決問題的熱情: 優秀的工程師通常具有解決難題的熱情和動力,並不斷尋求改進和優化。
  12. 專業發展: 不斷追求專業發展機會,例如參加研討會、課程和認證考試。

軟體工程師薪水多高?

而從市場面來看,軟體工程師是個在浪頭上的工作,薪資不但相對高、也具成長性。

從就業市場來看,目前對軟體工程師的人力需求高、供不應求。平均每個尋找軟體工程師工作的求職者,有 4.8 個工作機會。而從資歷與年薪中位數來看,初階軟體工程師為 120 萬,資深工程師為 160 萬,到開發主管或經理則高達 240 萬。

而在〈軟體工程師薪水多高?台灣網路 IT 業薪資行情〉這篇文章裡,則分析與說明各大求職網站的資料,帶你進一步一窺市場端倪與風向。

軟體工程師薪水分佈
Source:104 人力銀行,截圖日期 2022/03/03

軟體工程師職缺

除了一般台灣常用的104以外,有不少網路科技新創相關的求職網站也有很多軟體工程師的職缺,這邊分享給大家包含像是Cake Resume、Yourator,或是Indeed等求職網站,能看到非常豐富多元的公司有在徵軟體工程師的機會,大家可以在自己有興趣的地方去搜尋職缺。

軟體工程師:前端工程師

軟體工程師:後端工程師

軟體工程師:全端工程師

軟體工程師職涯延伸閱讀

8 週養成工程師業界實戰能力,以最接近業界實踐的課程,幫你有效完成技能與求職準備