嗨 我是森妮
上週從IG讓大家投票下一篇文章,沒想到後端工程師篇壓倒性勝利
前端工程師篇不知道大家喜不喜歡!陸續在IG有收到私訊有不少關於後端工程師的問題,我只要有時間都會回應,也歡迎來跟我聊聊天
本篇主題回歸我的職位後端工程師!後端工程師其實很難用一篇文章就涵蓋全部,畢竟選擇的程式語言不同整個技能樹安排也會完全不同
軟體工程師屬於一個統稱,開發網頁、APP是多數,在求職的職缺中分為「前端」與「後端」兩種角色,包含前端及後端的角色則是「全端」工程師
這篇是後端工程師篇,還沒看過前端工程師篇的可以看上一篇文章,最後會介紹全端工程師,文章會以網頁做為說明的例子,分享給在學過程中或想轉職的人,知道自己適合哪一種軟體工程師角色以及一些必備的技能!
【後端工程師】
上篇文章有介紹到前端工程師就像房子的裝潢,那後端工程師就是房子的「建築師」了!
主要是提供前端網頁所需要的正確資料,相對前端需要有更多的資料處理邏輯,需要根據不同的專案、客戶的商業邏輯執行一系列與資料庫增刪改查的互動,「確保功能可以如預期實現,維持平台穩定」就是後端工程師的工作!
以圖書館為例,想瞭解這個館藏有哪些分類的書籍,點選「中文圖書」後,後端會從資料庫中找出所有分類在中文圖書的書籍資料,提供給前端,前端再顯示到網站上
大型系統需要存取大量的資料,如何快速、正確提供前端所需資料,就需要進行許多效能調校,資料庫、伺服器、程式邏輯、資料結構、演算法的存在相當重要,而這些項目學習深淺度會因產業不同影響!
改善應用效能之外,更改商業邏輯也是後端工程師常有的工作,例如:圖書館的新書推廣需要根據年齡層、職業進行推薦、電商網站根據不同時段推薦不同商品。
[工作流程]
- 團隊中的PM、SA與客戶進行需求確認
- SD/SA提供開發規格以及資料庫設計,例如:API規格、系統規格書,部分公司此工作會交由後端工程師負責
- 根據規格與SD/SA溝通資料間關聯性,開發API與設計系統商業邏輯,將需求實現為技術目標
- 撰寫Unit Test,確保程式經過基本測試
- 與前端工程師討論資料的接受與傳遞格式,建立基本測試資料提供前端工程師使用
- 開發的工時評估與開發目標安排為PM的管理範圍,遇到問題與需要協助也須即時反應,讓進度可以順利進行。
[學習路徑]
後端工程師總共分為概念、基礎、實作、進階,建議至少要學習到"實作"再開始找後端工程師的職缺,不論是什麼產業都會需要運用到框架跟版本控制,進階則要看產業是否有需求以及團隊是否由後端工程師負責!
>基礎概念與工具
- 程式編譯器(Sublime Text、Visual Studio Code、IntelliJ IDEA、Eclipse)
- 系統設計與資料庫設計
- 系統資安與身分驗證
- 系統開發內聚、耦合概念
- HTTP相關通訊協定,與Web API(RESTFul API、Open API)設計規範
>程式開發-基礎
資料庫建議可以挑選各一種練習,瞭解關聯式與非關聯式的差異與設計原理
前端基礎語言(HTML、CSS、JavaScript) →SQL+關聯式資料庫(My SQL、Oracle、SQL Server、PostgreSQL)+NoSQL+非關聯式資料庫(MongoDB、Redis)→後端語言(Java、Python、C#、Golang) →【程式開發-實作】
>程式開發-實作
【程式開發-基礎】→框架(Java[Spring MVC/Spring Boot]、Python[Django/Flask]、C#[ASP.NET Core]、Golang[Gin]、PHP[Laravel])→單元測試Unit test→版本控制(SVN, Git )→Git repository (GitHub、GitLab)→Linux作業系統→【程式開發-進階】
>程式開發-進階
【程式開發-實作】→自動化測試→持續整合(CI/CD)→雲端平台(AWS、Google Cloud Platform、Azure、Heroku)
[求職注意]
我自己求職更在意的是公司能帶給我什麼效益,對找下一份工作有什麼幫助!
下面幾點屬於基本會詢問的問題
- 團隊作業流程是採用什麼模式開發?敏捷式?瀑布式?
- 主要溝通對象?是跟PM還是SA?是否有需要面對客戶?
- 需要使用到的技術?框架?
- 開發系統的使用者對象?需要瞭解哪種產業的domain know how?
[適合對象]
- 喜歡邏輯思考跟資料處理
- 邏輯清晰善於彙整資料流
- 喜歡分析商業模式
- 喜歡瞭解產業特性
這篇文章寫的時間相當的長,從開設帳號前就開始構思,也找許多當初的學習資料慢慢整理出來,從學習路徑能看出來想成為一位後端工程師並不容易
這幾年我負責開發之外,還有更多的時間都在負責溝通跟設計系統,不知道大家對於系統分析師的工作介紹會不會有興趣呢?
最近預計會分享後端工程師常用的工具、常用網站以及學習資源總共三篇!
如果有喜歡的主題歡迎留言或私訊跟我說