軟體工程師有哪些類別

首圖-軟體工程師有哪些類別

軟體工程師領域廣闊,隨著軟體服務與日常生活越來越密不可分,相關職缺需求日益提高,但許多人仍然對此相關職務感到陌生,本篇就介紹主流的軟體工程師職務:

注意:因為軟體工程師並沒有明確且絕對的分類,所以本篇分類上會依據國內外職缺網站所列的職位,並依據筆者經驗撰寫。

依據通俗的薪資排行來說,大致可分為以下:

職缺 原文 國外 Indeed
平均年薪(USD)
國內 104
三至五年平均年薪(TWD)
全端工程師 Full-stack Engineer 103,020 81.7 萬
後端工程師 Back-end Engineer 97,173 80.5 萬
前端工程師 Front-end Engineer 96,138 76.4 萬
開發維運工程師 DevOps Engineer 120,212 57 萬
行動應用工程師 Mobile Application Developer 91,273 84.2 萬
產品測試工程師 QA Engineer 66,578 60.5 萬
附註:行動應用工程師採用「iOS 開發工程師」的職稱進行查詢

工程師們各自負責的領域

軟體服務的範圍相當廣,如果沒有接觸此領域的話,會比較難以理解這個領域有哪些的劃分,因此透過以下這張圖,來跟大家分享整體的軟體應用大致上有哪些職務。

工程師負責圖

首先,先來介紹「前端工程師」,這是與大家最相近的一個職務,也就是各位把瀏覽器打開,畫面呈現的那一瞬間都是前端工程師負責,而要把內容呈現到畫面上會使用到 HTML、CSS、JavaScript 等技術。

網頁本身所呈現的資料,都是寫好的 “固定內容”,從伺服器直接傳到前端,除非重新部署新的資料到伺服器,否則內容都不會更新,這類型的固定內容我們稱為「靜態網站」。而我們現在看到的網站,都可以新增、修改、刪除等等的行為,當做到這一段就必須要有 “資料庫” 才能做到。

當然,各位是不會滿足於這樣的靜態內容,所以當需要更新內容時,就必須透過程式來將新的一筆資訊寫到資料資料庫內,這個工作就會由「後端工程師」來負責。不僅如此,後端工程師也會提供應用程式接口(API, Application Programming Interface),提供可以串接的方法讓前端工程師可以進行網頁至伺服器端的串接。

除了前端工程師之外,另一個與此職位相近概念的是「行動應用工程師」,兩者使用的語言不同、技術也不一樣,但都是將應用呈現給予用戶端運用的開發者;行動裝置目前主要的 iOS, Andriod 兩大系統陣營,也各自需要使用特定程式語言才能開發,所以在實務中也會再細分為 iOS 開發工程師及 Android 開發工程師。

隨著網頁運用越來越龐大,應用服務已經不是少數幾台桌上型電腦就能負荷,大多服務為了長期的擴增彈性,開始將服務部署至雲端主機上,而部署流程相當繁瑣,「開發維運工程師」開始孕育而生,不僅處理了部署流程,同時不斷的改良自動化工具,讓團隊品質、效率、溝通均能有效地強化。

俗話說,寫程式就是為了產生 bug,雖然這是一句玩笑話,但是很難有程式碼是完全沒有 bug 的。在應用服務交付前,為了確保程式碼的品質穩定會先交由「產品測試工程師」進行測試,而測試的範圍就不限於前端、後端、行動應用,而是全面性的質量保證。

接下來,我們依各職位再進行更詳細的介紹

後端工程師 Back-end Engineer

後端工程師

主要職責:伺服器端的程式碼主要是交由後端工程師處理,其中包含了資料庫、業務邏輯處理以及用端接口(API)的開發。後端工程師需要專注於程式碼並串接不同之間應用,同時符合伺服器的穩定性及效能,以開發出符合專案需求的應用服務。 而後端的程式語言相當多,每個語言均有屬於它的特性存在,因此雖然是都稱為後端工程師,但所擅長的後端語言可能略有不同喔。

描述:在過去其實並沒有明確區分前端、後端以及維運,至行動裝置的出現、網頁開發的複雜化以前,網頁運用程式基本上都是由後端所處理。而就算到了現在,許多職務慢慢的專精化,後端還是在許多企業也算涵蓋業務較廣的職位;而在有足夠資源的企業中,後端則是應用服務的核心,負責與不同的專精開發者進行對接。

技能:後端應用依據企業需求不同,則會從多種程式語言擇一精通,如:C++, Ruby, PHP, Python, Go, Java, JavaScript...

前端工程師 Front-end Engineer

前端工程師

主要職責:負責網頁端的的介面呈現,任何瀏覽器打開時所看到的介面均是由前端工程師所處理,因此此工作不僅需要串接後端的 API,並且同時要處理網頁介面的 UI,對於畫面佈局也需要有一定的掌握度。 此職位過去職務內容接近於網頁設計師,但隨著網頁運用日趨複雜以及使用人數逐日上升,在使用者體驗以及瀏覽器相容性皆須兼顧,因此相較於網頁設計師來說需要掌握更複雜的技術。

描述:過去並不存在前端工程師的職位,所謂前端的畫面大多都是由網頁設計師或是後端工程師統包完成,一直到 iPhone 的出現,行動裝置的普及讓手機觀看網頁的需求提升,才慢慢導入前端的概念。 也隨著網頁技術的發展,網頁越來越注重使用者體驗,過去的網頁設計師及後端難以負擔繁複的技術問題,使前端工程師成為獨立且專業的職缺。

技能:HTML, CSS, JavaScript

全端工程師 Full-stack Engineer

全端工程師

主要職責:熟練前端及後端的開發者可稱為全端工程師,大多會由其單一領域延伸學習至全端,相較於單一領域來說,全端工程師更能以寬廣的進行應對,不僅有良好的技術以外,也能為團隊提供適合的解決方案。

描述:全端工程師簡而言之就是前後端均有涉略,不過在意義上也有很大的不同,以下列點進行說明:

  • 個人:對於個人接案者來說,全端開發者有很大的優勢,因為同時具備前後端知識,所以可以獨自面對各種不同類型的專案,雖然需要做的面向涵蓋廣,但也能獨自獲得更高的報酬。
  • 大型企業 / 專業軟體服務公司:當團隊規模越來越大時,溝通就會更加重要,全端開發者在此更適合作為一位管理人員,協調不同領域的開發者進行協作。
  • 小企業:資金限制或者沒有更多工作分配給予專精開發者時,全端開發者就會是一個很好的選項,可以用更少的人力應對更多類型的專案。

技能:前後端的技能總和

開發維運工程師 DevOps Engineer

開發維運工程師

主要職責:DevOps 是 Development 與 Operations 的縮寫,也就是開發者與維運人員的溝通角色。當開發者完成程式碼,需要將其部署至伺服器或應用環境上時,開發維運工程師可以透過自動化使建構、測試、發布更加迅速及可靠。 他們的工作上需要熟悉不同領域的環境建構、部署,以及熟悉各種雲服務的知識,並且不斷的進行優化,讓軟體服務營運更加有效率。

描述:這是一個睜開眼就在燒公司錢的職位。 此職位是為了應對越來越龐大的應用服務的職務,因此許多中小企業並不存在這個職位,在中小企業中則是由後端工程師所擔當(後端超忙的)。但也因為如此,許多對於此領域的開發者不得其門而入(畢竟就算是練習也需要許多費用),相對是較難以培養的職位。

技能:Git, Docker, Kubernetes, Jenkins, AWS, GCP...

行動應用工程師 Mobile Application Developer

行動應用工程師

主要職責:近十年開始,行動裝置越來越普及,市場上主要出現了 Apple 及 Google 兩大陣營的行動裝置,而各自也開發出屬於自己的作業系統 iOS 及 Android,行動應用工程師就是開發其應用的工程師,從介面至裝置硬體功能串接均會涉略。

描述:雖然 iOS、Android 工程師職缺數量不比其他工程師多,且雖有言前端技術也能撰寫行動應用,但有許多專業細節依然僅有 iOS、Android 技術才能做到。因此在人力資源市場普遍薪資不會太差,中短期內也不太可能被其它技術給取代。

技能:依據作業系統有 Java、Swift、Objective-C 等語言

產品測試工程師 Quality Assurance Engineer

產品測試工程師

主要職責:Quality Assurance 意指質量保證,因此 QA 工程師就是在產品發佈以前,透過測試等各種方式找到產品錯誤,並且與開發人員合作修復的專業人員。QA 工程師會透過不同的工具和方法,使產品在不同的環境及流程均可符合預期運行。

描述:與許多職位一樣,在中小企業並不存在這獨立的職務,都會由內部的任何人員確保運作正常即算測試完成,但對於專業的產品測試人員來說,流程正確僅是最低的標準,同時要測試爆量流量、各種運行環境等。並且在軟體發佈週期越來越短的情況下,也需要配合開發人員協同導入自動化測試,以加速產品優化的流程。

技能:依據團隊開發的軟體需要有不同的測試知識

該如何成為軟體工程師?

許多人會認為自己非本科,或者是認為自己並非具有「邏輯腦」,但其實軟體工程師是相對較新的職位,許多專業的開發者都非電腦科學(Computer Science)相關科系出生,也有證實這些能力都是可受過培訓而獲得相關能力。

前端工程師來說,六角學院就培育了千位非本科的學員轉職成功,而整個軟體工程師的都是具有連貫性的,就算是轉職成功也可以持續邁向後端、全端等不同的領域發展喔。

如果你對於此職位有興趣,可參考「如何成為前端工程師」,我們將帶你一步一步往此邁進喔~



Tags

友站推薦

卡斯伯新書上線!

前端專欄文章