Loading...

軟體工程師是許多人嚮往的職業,分為前端、後端與全端,這篇我們來瞭解「後端工程師」。到底後端工程師是個怎麼樣的角色?成為後端工程師,需要具備什麼能力、技能與工具呢?透過 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) 操作,能夠和多人協作專案

後端工程師快問快答

看完後端工程師工具箱,你暈了嗎?別擔心,看個影片小休息一下,讓 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、一半時間在溝通」。工程師有好的溝通能力,就能有效地與團隊內外成員進行協作、解決問題。

想成後端工程師,從準備作品集開始!

12 週建立 web app 開發能力,選擇適合自己的後端專修課程