2022-09-07|閱讀時間 ‧ 約 6 分鐘

技術分享 | 如何成為後端工程師

    嗨 我是森妮
    上週從IG讓大家投票下一篇文章,沒想到後端工程師篇壓倒性勝利
    前端工程師篇不知道大家喜不喜歡!陸續在IG有收到私訊有不少關於後端工程師的問題,我只要有時間都會回應,也歡迎來跟我聊聊天
    本篇主題回歸我的職位後端工程師!後端工程師其實很難用一篇文章就涵蓋全部,畢竟選擇的程式語言不同整個技能樹安排也會完全不同
    軟體工程師屬於一個統稱,開發網頁、APP是多數,在求職的職缺中分為「前端」與「後端」兩種角色,包含前端及後端的角色則是「全端」工程師 這篇是後端工程師篇,還沒看過前端工程師篇的可以看上一篇文章,最後會介紹全端工程師,文章會以網頁做為說明的例子,分享給在學過程中或想轉職的人,知道自己適合哪一種軟體工程師角色以及一些必備的技能!

    【後端工程師】
    上篇文章有介紹到前端工程師就像房子的裝潢,那後端工程師就是房子的「建築師」了! 主要是提供前端網頁所需要的正確資料,相對前端需要有更多的資料處理邏輯,需要根據不同的專案、客戶的商業邏輯執行一系列與資料庫增刪改查的互動,「確保功能可以如預期實現,維持平台穩定」就是後端工程師的工作!
    以圖書館為例,想瞭解這個館藏有哪些分類的書籍,點選「中文圖書」後,後端會從資料庫中找出所有分類在中文圖書的書籍資料,提供給前端,前端再顯示到網站上
    大型系統需要存取大量的資料,如何快速、正確提供前端所需資料,就需要進行許多效能調校,資料庫、伺服器、程式邏輯、資料結構、演算法的存在相當重要,而這些項目學習深淺度會因產業不同影響!
    改善應用效能之外,更改商業邏輯也是後端工程師常有的工作,例如:圖書館的新書推廣需要根據年齡層、職業進行推薦、電商網站根據不同時段推薦不同商品。
    [工作流程]
    1. 團隊中的PM、SA與客戶進行需求確認
    2. SD/SA提供開發規格以及資料庫設計,例如:API規格、系統規格書,部分公司此工作會交由後端工程師負責
    3. 根據規格與SD/SA溝通資料間關聯性,開發API與設計系統商業邏輯,將需求實現為技術目標
    4. 撰寫Unit Test,確保程式經過基本測試
    5. 與前端工程師討論資料的接受與傳遞格式,建立基本測試資料提供前端工程師使用
    6. 開發的工時評估與開發目標安排為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?
    [適合對象]
    • 喜歡邏輯思考跟資料處理
    • 邏輯清晰善於彙整資料流
    • 喜歡分析商業模式
    • 喜歡瞭解產業特性
    這篇文章寫的時間相當的長,從開設帳號前就開始構思,也找許多當初的學習資料慢慢整理出來,從學習路徑能看出來想成為一位後端工程師並不容易
    這幾年我負責開發之外,還有更多的時間都在負責溝通跟設計系統,不知道大家對於系統分析師的工作介紹會不會有興趣呢?
    最近預計會分享後端工程師常用的工具、常用網站以及學習資源總共三篇!
    如果有喜歡的主題歡迎留言或私訊跟我說
    分享至
    成為作者繼續創作的動力吧!
    © 2024 vocus All rights reserved.