軟體工程師是許多人嚮往的職業,分為前端、後端與全端,這篇我們來瞭解「後端工程師」。到底後端工程師是個怎麼樣的角色?成為後端工程師,需要具備什麼能力、技能與工具呢?透過 AC 校友、在「毛孩市集」擔任後端工程師的 Howard、與在「方格子」擔任全端工程師的 Kuan,我們從實際後端任務內容、與團隊和其他角色協作的過程,幫助大家思考如何成為一位「後端工程師」。
想成為後端工程師?來看看薪水有多高!2022 軟體工程師薪水大調查
後端工程師要有什麼能力?
首先來看,前端、後端與全端、3 種軟體工程師的角色設定,有什麼不同?
前端是使用者和電腦直接互動的地方,例如網站首頁。故前端工程師的任務,是打造吸引人、操作體驗順暢的介面。後端是電腦處理資料,如後台、伺服器等地方。故後端工程師要確保能正確提供使用者資料。但實務上,因前端或後端任務並無法完全區隔,故兩者兼修的全端工程師,便具備更快速、機動支援的功能。
由於後端工程師主要就是處理資料,所以就要讓伺服器在茫茫資料海中,最快速地做出適合的運算,提供資料給使用者。故後端工程師會需要具備以下能力:
- 邏輯思考能力強
- 擁有設計和操作資料庫的能力
- 了解商業模式和產品特性(才能設計良好的系統架構)
後端工程師要會什麼技能?
- 瞭解 HTTP、TCP 等網路通訊協定
- 暸解 security,authentication等議題
- 至少精通一個後端語言,例如:Ruby、Python、PHP、Java、 JavaScript
- 至少精通活用一項後端開發框架,例如:Rails、Django、Node.js 等
- 瞭解前端語言基礎,例如:HTML、CSS、JavaScript
- 撰寫 Web API
- 專門來處理資料的 SQL
- 撰寫測試,並把測試自動化(e.g. RSpec )
後端工程師會用到什麼工具?
- 部署網站、資料庫的平台: e.g. Heroku、AWS、Google Cloud Platform
- 程式碼編織器 (e.g. Sublime Text, Atom)
- Continuous Integration (e.g. Travis CI, Circle CI 等)
- 使用資料庫開發工具,例如 MySQL、Oracle 、PostgreSQL 或 SQL Server
- Linux 或 UNIX 的作業系統、命令行介面 (Command Line Interface)
- 熟悉版本控制 (e.g. Git) 操作,能夠和多人協作專案
[optin-monster-inline slug=”q9c8jelrbkhccctuc740″]
後端工程師快問快答
看完後端工程師工具箱,你暈了嗎?別擔心,看個影片小休息一下,讓 AC 校友 Yeng 先幫大家開箱、回答那些你好想問後端工程師的問題!
後端工程師的日常
在後端工程師出沒的科技業、數位軟體產業中,軟體開發團隊的基本成員會有:前端工程師、後端工程師、產品經理、設計師等。
「方格子」全端工程師 Kuan 說明,團隊的日常任務分配常會是:
- 專案經理 (PM):釐清專案需求,並清楚掌握與定義不同功能要達成的目的,確保成品符合需求
- 前端工程師:打造吸引人、且操作體驗順暢的介面呈現
- 後端工程師:確保每次給使用者的資料,能夠正確且即時地呈現出來
而為了確保每次給使用者的資料,能夠正確且即時地呈現出來,故後端工程師要執行的任務則會有:
- 定義資料串接的格式
- 確認資料庫是否能夠滿足本次需求
- 設計能滿足需求的演算法
「毛孩市集」的後端工程師 Howard 則補充,簡單來說,後端工程師就是:處理資料、建置系統、維護平台。他分享他一週的工作內容比例分配如下:
- 50% – 60% 功能開發、測試、優化
- 40% 需求確認及修改
- 5% – 10% 除錯。
後端工程師如何與其他成員協作?
基本上,科技業、數位軟體產業大部分任務都需要協作,因此非常注重團隊合作。Howard 說,溝通是工程師非常重要的能力之一,其實工程師是一半時間寫 code,一半時間跟團隊溝通。
若是在開發團隊內,協作流程可能會像是:
- PM 接受新需求
- PM 召開專案、產品會議
- 設計師、前端工程師著手設計
- 前、後端工程師開始協作
- 成果驗收,開發完成
所以,由具備火車頭功能的 PM,來做專案的期程與節奏掌握。而工程師們則透過 PM,知道當下要做什麼,預計何時要完成,以及有問題的時候可以找誰討論。
若是在開發團隊外的協作,Howard 以行銷活動模組開發為例,幫我們說明。
- 行銷開需求
- PM 分類需求
- 技術長確認開發項目
- 開需求給工程團隊
- 設計整個需求的邏輯
- 實作
若開發時仍遇到問題,可能會再回到前一步驟,重新循環。
會不會有臨時的需求?Howard 說當然會有,但會先理解需求背後的原因是什麼,評估之後才會去做。
Howard 則說,後端工程師優先要做出解決問題的「工具」,而不是解決問題的「產品」。所以他認為,團隊可以使用後端工程師開發的工具,去解決他們遇到的問題。
後端工程師的價值與挑戰
Kuan 說,後端工程師能提供團隊 3 個重要價值:
- 確保資料的正確性
- 確保系統的穩定性 (不能壞、不能慢)
- 讓程式保有彈性 (不能寫太死,未來新增功能時比較好修改)
而 Kuan 和 Howard 都再次強調後端工程師的挑戰:溝通能力。你以為工程師只是寫 code,但其實是「一半時間在寫 code、一半時間在溝通」。工程師有好的溝通能力,就能有效地與團隊內外成員進行協作、解決問題。