【職業開箱】轉職必看!從零帶你認識軟體工程師:前端、後端、全端、AI、區塊鏈...|軟體工程師工作內容、薪水待遇、需求技術&能力

【職業開箱】認識軟體工程師:前端、後端、全端、AI、區塊鏈...|軟體工程師工作內容、薪水、技術&能力

2024-12-02
Yourator 內容團隊
Yourator 內容團隊 Yourator 致力於打造 AI 與數位人才的職涯基地,提供多元的工作機會與深度產業洞察。在資訊爆炸的時代,希望透過最前線的職場觀點,陪伴你理清思緒,找到最適合自己的職涯下一步。

資訊產業一直以來都是求職市場的大宗,高需求、高薪資、高競爭的條件讓許多畢業生每年都擠破頭,試圖進入這個產業,成為人人稱羨的軟體工程師;但是,剛接觸軟體工程師領域時,你可能會被前端工程師、後端工程師、 全端工程師這些常見的工程師職稱搞得一頭霧水⋯⋯

這些軟體工程師彼此的工作內容有哪些差異?各自的薪水待遇又是如何?本篇文章將帶你一覽這些常見軟體工程師職稱分別的月薪級距工作內容、以及必備程式語言技術力軟實力,讓你在選擇進修、轉職方向,或者在與技術團隊溝通協調時,更有一份參考依據。


本文目錄(本文篇幅較長,建議跳轉到有興趣的段落閱讀)

軟體工程師找工作、求職,就來 Yourator! 精選前端、後端、全端工程師最新職缺!


 

軟體工程師的日常業務

軟體工程師,顧名思義,在公司行號裡負責資訊工程系統、電腦軟體的設計、測試、安裝、修改與維護。白話文來說,就是至少精通一種程式語言,會撰寫電腦能理解的指令,讓電腦自己工作的人。

即使軟體工程師有多種分類,日常業務性質並沒有太大的不同,大致可分為三類:
 

一、釐清需求

大多數人對軟體工程師的刻板印象,是坐在電腦前埋頭苦寫。然而,為了節省開發階段的時間前,「定義問題,找出最適解」是很重要的。此時需要進行跨部門的需求釐清、開發策略的擬定,否則容易導致不必要的浪費時間。

釐清需求方面的業務通常佔軟體工程師工時的二到三成,工作內容包含但不限於:

  • 與需求窗口(可能是 PM、老闆、業務等)蒐集並釐清需求
  • 與團隊成員討論/評估技術上的可行性
  • 與需求窗口確認,進入開發階段。

此外,「專案工程師」與「產品工程師」在釐清需求時的工作情境差異甚大。專案工程師通常會得到比較清楚定義的規格,因此釐清規格部分時間會比較少;而產品工程師得到的規格往往比較模糊,甚至要自己定義,所以需求討論一般會佔據比較多時間。

 

二、執行開發作業

進入開發後,工程師需要先與團隊成員討論規格與實作方式,例如前端工程師與後端工程師討論架構的設計與分工、API 串接格式等,接著才會實際寫 code。而在自己執掌的項目交付給需求窗口前,測試與除錯(debug)也是必要的,此外,功能交付後的教學與維護也由工程師負責。

此類工作內容包含但不限於:

  • 討論/評估專案規格,以及技術可行的實作方式
  • 寫程式,嘗試解決各種技術困難
  • 測試與 debug
  • 撰寫技術文件、教育訓練文件給 PM 或使用單位
  • 後續的功能維護

上述的工作項目,不一定會流水線式順著進行,而看專案或企業的風格,常見的大分類有: waterfall, agile/lean, 隕石開發...。

➤ 延伸閱讀: 何謂 Scrum 敏捷開發?知名新創 PicCollage 告訴你

 

三、自我學習

資訊工程技術日新月異,隨時會有更好的程式寫法誕生,如何快速學習並且應用在當下任務情境,對軟體工程師至關重要,此類工作項目包含了解並且引入新技術、新套件、學習使用新的系統等等。部分業界工程團隊也會每週舉辦讀書會 (study group),共同吸收新知,工程師也時常為了更好的完成專案,往其他領域學習,例如前端工程師往後端、資料科學發展等。

➤ 延伸閱讀:

資訊工程技術日新月異,隨時會有更好的程式寫法誕生,如何快速學習並且應用在當下任務情境,對軟體工程師至關重要,此類工作項目包含了解並且引入新技術、新套件、學習使用新的系統等等。部分業界工程團隊也會每週舉辦讀書會 (study group),共同吸收新知,工程師也時常為了更好的完成專案,往其他領域學習,例如前端工程師往後端、資料科學發展等。

 

常見的軟體工程師種類,各自的工作內容、技能需求

常常被前端、後端這些名詞搞得霧煞煞嗎?好奇我們看到的軟體產品中,不同種類工程師分別負責哪些環節嗎?本段將常見的工程師職稱分為 7 大類,分別介紹他們的工作內容,以及所需的能力與技術。

類別(ㄧ)前端工程師

在網頁開發中,前端工程師負責一切與使用者介面相關功能的開發與維護,若將其工作內容大概分程兩大面向,即是建置合理的頁面讓使用者能與產品互動,以及讓資料能順利顯示在使用者面前。

💡 例如,你在網路購物平台下單一副耳機,你看到的耳機圖片、說明文字、下單的按鈕,顯示的存貨數量,都是透過前端工程師編排建置後,才能出現在你眼前。至於字體需要多大、按鈕該用什麼顏色才會讓使用者感到舒適等環節,通常交由網頁設計師或 UI/UX 設計師所負責。
  • 需求能力:除了基本的邏輯思考與自學能力外,前端工程師是相對較需與人互動的工程師,觀察、溝通、表達能力也相對重要。此外建置頁面也需要運用到一定程度的美感與共感力,才讓頁面更容易被使用。
  • 需求技術:前端有三個主要技術:HTML、CSS、JavaScript(ECMAScript),以及各式前端框架: React、Vue、Angular...etc.,此外還需要掌握 API 串接、RWD、Git 版本控制等技能。

➤ 延伸閱讀:【職業開箱】前端工程師做什麼?年薪輕鬆 150?工作內容、薪資水準、技能學習

 

類別(二)後端工程師

後端工程師的主要任務,是開發伺服器端的應用程式,並根據不同專案的商業邏輯開發框架。當使用者在前端下指令時,後端工程師要使資料庫自動且有邏輯地撈取對應資料,並在頁面上呈現正確結果。

✨ 假設你今天要架設一個電商網站,網站該如何儲存正確的存貨數量?就有賴後端工程師建置網頁資料庫與演算法,將一切使用者的會員資訊、瀏覽紀錄、購物車等儲存下來。隨著業務的成長,後端工程師也需要持續優化網站的性能與系統架構,讓網站足以應付更多使用者。

  • 需求能力:後端工程師更強調邏輯思考能力,才能有效提升網站效能。此外對商業模式的了解,能幫助後端工程師設計出更符合需求的系統架構。
  • 需求技術:能使用後端語言或框架進行網站開發,如: Ruby / RoR、Java / Spring、PHP / laravel、Node.js / Express.js 等。基本的伺服器指令、網路知識、資料庫操作 / SQL、API 串接也都是需要具備的技能。

 

類別(三)Mobile 工程師

根據 《Digital Report 2020》的網路瀏覽裝置比例數據,在全球使用行動裝置比例高速成長的趨勢下,台灣網路用戶的手機與桌機佔比只有 7% 的差距,並且用手機瀏覽網路的比例穩定成長,顯示 App 開發工程師的需求將持續上升。然而,RWD(響應式網頁設計, Responsive Web Design)使得 Web 框架也能在不同行動裝置上正常使用,降低企業對於聘用專職 App 開發工程師的需求。以 Yourator 站上為例,Web 工程師與 App 開發工程師的招募比例約為 4:1。

App 開發工程師可分為兩種,分別是 iOS 工程師與 Android 工程師,入門門檻差異不大:

【iOS 工程師】

iOS 工程師最基本的工作內容便是透過 Swift / Objective-C 開發一款 iOS 應用程式。除了產品開發外,也需要熟悉 Apple 的上架流程,包括憑證及憑證描述檔等。並於上架完成後,持續維護 App,在每次 iOS 更新後同步修改老舊的程式碼,使其獲得支援,維持穩定且優質的使用者體驗。

  • 需求能力:除了基礎的協作能力,程式開發能力外,由於是封閉生態系的關係,無論是更新的速度、幅度以及更新的效率都比 Web 或 Android 來得快速,相較起來更需要及時了解每次改版的變動,才能避免 App 因為更新而導致問題。
  • 需求技術:熟悉 Swift / Objective-C,了解 iOS 開發平臺、框架原理、以及上架流程。

【Android 工程師】

與 iOS 工程師同理,Android 工程師也需要透過 Kotlin / Java / Android Studio 開發 App 產品與功能、解決設計及開發層面技術問題,同時導入新的 Android 程式、版本與各種新技術,帶來更流暢的效能。

  • 需求能力:Android 開發給大家的印象是門檻低、上手快,但如何將多樣且碎片化的 Android 核心基本知識、結構、代碼規範都融會貫通,應用於新技術的開發上,整合能力尤為重要。
  • 需求技術:熟悉 Kotlin / Java / Android Studio 和測試工具的使用。

 

類別(四)Infrastructure 工程師

Infrastructure 指的是資訊系統的基礎架構,各種 Infrastructure 工程師的目標都是把某個面向或所有面向的基礎架構處理好,讓執行於其上的系統可以順暢的運行。目前比較常見的 Infrastructure 工程師有幾種: DevOps 著重於讓開發團隊能順暢的接軌營運,SRE 著重在網站的可靠性,雲端架構師則著重在雲端服務的架構與維運。為了要讓組織內資訊系統能夠好好運行,Infrastrucure 工程師必須存在的重要角色。

 

【DevOps 工程師】

DevOps 其實是兩個英文字的縮寫,分別是 Development(開發)和 Operations(營運),原先其實是一個文化概念,後來才演變成專門的職稱。DevOps 工程師是敏捷開發盛行後應運而生的角色,負責消除開發與營運團隊之間的溝通與協作障礙,讓敏捷開發的成果能快速上線,打造流暢的部署與發布流程。

DevOps 工程師工作內容核心是建立自動化流程,進而縮短產品的交付周期,最常見的方式莫屬開發企業專屬的工具平台,甚至統整企業內部原有的零散工具,打造能覆蓋整個產品交付流程的工具體系。此外,無論是實體的工具與體制面的流程改進,都需要有人在內部持續推廣,監督是否落地,並持續探索潛在的優化點。

  • 需求能力:DevOps 工程師需要掌握整個開發流程,大部分企業傾向使用聘用資深的候選人,於此,DevOps 工程師也是最需要溝通能力與同理心的工程職缺,沒有之一。
  • 需求技術:Git、設定管理工具如 Puppet / Chef / Ansible、熟練 CI/CD 工具、容器化工具 Docker / K8S。

【SRE 工程師】

SRE 的全稱是為 Site Reliability Engineering,通常翻譯為網站穩定性工程師。SRE 工程師所需求的工具屬性與 DevOps 工程師非常類似,有許多專文用很長的篇幅解析兩者的差異。如果要簡單區分的話,SRE 的關鍵點在於使產品具有「高擴展性」、「高可用性」,例如當用戶數量暴增時,可以讓產品在不調整架構的前提下支撐服務、或者當系統掛掉時,負責讓服務在可推估的時間內恢復運作,工作內容與系統的變更與故障息息相關。

  • 需求能力:確保軟體出現問題時能即時良好的解決,SRE 需具機動性與全局思考能力,因為每一步的修改與更新都可能引發不同的影響和問題,通常也屬於資深工程師擔任的角色。
  • 需求技術:Linux、Shell Script、Cloud Services、熟悉 Terraform/CDK 等 (IaC)tools、熟悉 CI/CD 流程設計、Docker / Kubernetes 等容器化技術。

【雲端工程師】

雲端工程師是近幾年興起的職位,主要因為雲端服務(AWS、GDP)等蓬勃發展,企業能夠通過雲端平台節省各項資源,因此聘請雲端工程師負責建置與維護雲端平台,讓企業服務能在雲端正常運作。由於不斷上升的需求,加上 AWS/GDP 都有完整的線上認證機制,需求近幾年來不斷的上升。

  • 需求能力:雲端工程師需要能夠進行雲端架構的部署/建置/優化/除錯/管理/監控等一系列流程,需要對基礎架構程式開發有熱情,同時需要熟悉資料存儲、網路連線的基礎,對於組織能力以及硬底子都是考驗。
  • 需求技術:了解任一雲端服務、Linux、DNS、WAF、Shell script / Python / YAML 等任一腳本語言、Git...。

 

每週收到最新求職攻略、職涯活動資訊、產業須知

 

類別(五)QA 工程師

QA 工程師全稱 Quality Assurance Engineer,最主要的職責便是測試軟體產品的品質,因此 QA 工程師需要了解產品細節、流程與邏輯,也被稱為「世界上最瞭解功能細節」的職位。

QA 工程師的常見工作內容包含,透過手動,或撰寫自動化測試的方式檢查軟體產品,確保上架、紀錄並分析所得到的結果、建置與管理測試項目(Test Cases)資料庫,同時不斷優化測試流程,讓產品能更敏捷的上線。

  • 需求能力:首要能力當然是能細緻了解產品的細心與耐心、能夠策劃測試項目的分析能力、以及對於與工程師&PM 的溝通能力。此外,面對已設定好與準備發佈的軟體,QA 工程師需具備逆向思維的能力,想到一般人想不到的狀況進行假設與操作,才能排除軟體中更深層次的 Bug。
  • 需求技術:運用 UFT / QTP、Katalone、Microsoft Coded UI 等工具撰寫自動化測試、熟悉 Azure DevOps / TFS 等 QA 工具、SQL、熟悉資料庫相關操作 ( MongoDB/Mongoose, MySQL...等 )...。

➤ 延伸閱讀:從幾乎不會任何程式語言,到國際 App 新創第一位 Release Manager:QA 工程師的成長之路

 

類別(六)Data & AI 工程師

數據概念的興起,及其背後對業務成長的影響潛力,讓企業組織紛紛投入預算,組織內部的數據團隊,其中最熱門的兩個軟體工程職種,分別是「資料工程師(Data Engineer)」及「AI 工程師」。

 

【資料工程師 Data Engineer】

Data Engineer 所負責的角色,是透過一系列程式技術維運企業內部的數據系統,方便蒐集與管理數據,並將原始數據轉換為可用資訊,讓團隊內的 data scientists、business analysts 能夠使用。Data Engineer 也是相對新興的領域,單就掌握的技能樹而言,跟後端工程師有一定程度的重疊,也有部分企業會直接訓練內部的後端工程師接觸數據知識。

✨ 如果 Data team 是一間廚房,數據工程師就是負責分類、梳理食材,讓儲藏庫裡的食材可以直接烹調。
  • 需求能力:首先必須具備基本的軟體與 data engineering 知識,對於資料素養也十分講究,例如是否清楚資料的屬性與定義,對資料清理、ETL 工具的熟悉程度等。此外,大部分公司行號的 Data Team 規模相對軟體開發團隊小上不少,所有能夠跨越傳統 Data Team 的執掌,勇於承擔挑戰並學習的心也是必備的。
  • 需求技術:SQL、至少一種程式語言能力(Java / Python...)、Hadoop / MapReduce / Hive / Spark 等大數據處理相關工具、Docker / Kubernetes 等容器化技術...。

【AI 工程師】

有了一定量體的數據作為基底,就能嘗試建立模型,模擬人類的行為路徑,此時就開始需要 AI 工程師的協助。AI 工程師通常會透過機器學習(machine learning)、深度學習(deep learning)推演行為,從中得出足以影響決策的商業洞察。

AI 工程師的日常業務主要包含業務主要包含開發、測試、並部署 AI 模型,滿足組織內部不同需求方,協助他們理解 AI 模型,實際運用於內部決策,此外也需要負責資料數據結構建置相關工作。根據需求技術的不同,企業也會單獨招聘機器學習工程師、深度學習工程師等。

  • 需求能力:AI 工程師需要同時掌握人工智慧、程式語言與資料科學三種高門檻的學問,並能透過它們實際解決問題,帶來有用的商業洞察,對學習能力、甚至溝通能力都是一種挑戰。
  • 需求技術:Python / R / Java / C++ 等程式語言、線性區別分析、Hidden Markov models / Naive Bayes / Gaussian mixture models 等 AI 模型、Hadoop / MapReduce / Hive / Spark 等大數據處理相關工具...。

搭上 ChatGPT  AI 人工智慧熱潮!精選 AI 人工智慧2024最新職缺!

 

類別(七)區塊鏈工程師

區塊鏈工程師的需求在這兩年極速上升,也促使許多網頁開發工程師跳入這艘大船學習新技術。

目前區塊鏈工程師的工作項目主要能分為兩種領域,第一種是開發公有鏈(公共區塊鏈)的工程師,技術難度高,需要更底層的程式語言、密碼學等知識。第二種則是負責撰寫智能合約開發 DAPP(去中心化應用程式),同時也需要與傳統前後端介面 API,成為成為消費者真實可用的產品服務。

  • 需求能力:區塊鏈是個嶄新的領域,有一定的程式語言基礎都可以考慮嘗試。但也因為很新,許多底層技術尚未穩定,打造出來的服務或產品,如沒有隨著跟新作出修改,常常會無法運作。因此超群的學習力與應變能力,以及對於區塊鏈底層觀念的認可十分重要。
  • 需求技術:SOLIDITY 等能夠撰寫智能合約的程式語言、NODE.JS / JAVA / PYTHON 等可以串接 DAPP 的程式語言、基礎密碼學、分類帳、共識算法等區塊鏈底層知識。
     

*怎麼沒有全端工程師?全端工程師的真正定義:

如果你瀏覽過 Yourator 站上軟體工程相關的職缺頁面,也會經常看到「全端工程師」這個職稱。事實上,全端工程師比較像是個通稱,一般全端工程師指的是網頁前端+後端的開發,但依據專案或產品需求,有些全端工程師也有可能是 App + 後端、前端+App+後端等職能。

近十年隨著軟體技術高速發展,並在新創公司強調 MVP (Minimum Viable Product, 最小可行性商品)的潮流下,全端工程師能快速打造出產品 prototype,並在變動的新創環境的隨時支援任何產品開發各個環節,是相當搶手的人才。

  • 需求能力:因為需要同時掌握兩項職能,考驗全端工程師的機動性與自我學習力,以及對 IT 技術的熱忱。
  • 需求技術:請參照上述前後端以及 Mobile 工程師的需求技術

綜上所述,大部分新手想轉職成為軟體工程師時,都會以「成為合格的前端工程師」為初步的職涯目標,不僅上手門檻較低,部分視覺設計專業的求職者也能發揮所學,提升自己的附加價值,但起薪相對較低。因此,如果在學習過程中意識到對於軟體開發的天賦及熱忱,可以繼續朝後端、全端等軟體工程相關職務邁進。

 

常見的軟體工程師分別的薪水待遇

看完落落長的工作內容,你一定會好奇:「他們各自的薪資待遇怎麼樣呢?」。Y 小編也整理了站上的薪資數據,分別列出上述職位的平均年薪範圍。

工程師平均年薪

依目前站上資料統計顯示,薪資待遇最高的是「行動裝置開發」,緊追在後的是近年的熱門趨勢「資料工程/機器學習」,以及通常需要由資深工程師擔任的「Devops / SRE 工程師」。

雲端工程師區塊鏈工程師都是近年興起的領域,薪資級距落差較大,本次不納入統計,可以到 Yourator 的職缺頁面瀏覽大致的薪資範圍。

(定義:平均下限~平均上限。統計時間:2023/11)

 

➤ 想看看職缺?歡迎瀏覽:

 

該如何選定求職方向?怎麼確定自己是否適合當軟體工程師?

基本介紹各種類工程師的工作內容後,想成為軟體工程師的你,心頭一定會冒出更多疑問:「我該往哪種工程師邁進?/我的第一個程式語言該選哪個?」

對於初心者而言,與其看著薪資、招募比例糾結半天,不如先「找尋一個能讓你學習程式的理由」,可以與朋友組成專案,學習最適合專案的語言、或是參與社群,學習最容易取得學習資源的語言。專一深耕其中一項後,再瀏覽工程類別職缺的 JD (工作內容),篩選出適合的職缺,並補足尚未完成的技能樹。

 

什麼人格特質才能勝任軟體工程師?

資深的軟體工程師普遍認為,對邏輯與流程的注重是工程師最基本的技能,當今的電腦設計、程式語言以流程控制為主體,如果想成為工程師,邏輯能力卻不及格,很難繼續往下學習。

此外,耐心與堅持是擔任工程師的必備特質,擔任工程師不免會遇到需要維護程式碼、重複做公司舊有程式工具的時候,如何在繁瑣的過程中尋找成就感,或是建構一個新的自訂義解決方案,優化整體系統,都是一種練習與挑戰。

另一個要點則是對於問題本質的好奇心,如果好奇自己適不適合當工程師,不妨觀察自己在日常生活中遇到麻煩時,是否會習慣抽絲剝繭,把各種可能出錯的環節一個一個排除,直到找到問題根源,並對於得到解答感到興奮以及滿足。如果你擁有這種性格,在轉職軟體工程師的路上一定更加順利。

 

此外,Y 小編常聽到的一個提問是:

「我是文組出身/我的數理很爛,我是不是不適合當軟體工程師?」

事實上,如果在 Google 搜尋「文組 工程師」,你可以看到無數的成功的轉職案例,因此,與其因為背景而自我懷疑,不如回歸人格特質,並且實際接觸基本學問,才能能更全面做判斷。

資訊時代來臨,每位工程師都是時代的推手,希望這篇文章有幫助你更了解工程師們的工作內容,做出更好的職涯選擇,或者在工程團隊裡找到對的人溝通。

 

延伸閱讀:

想當數據分析師、商業分析師?2024最新數據分析/資料工程職缺都在 Yourator