Skip to content

Latest commit

 

History

History
75 lines (70 loc) · 3.06 KB

backend_intro.md

File metadata and controls

75 lines (70 loc) · 3.06 KB

後端程式入門、面試整理

Client Server 架構

  • Client(前端)
    • 為使用者端如網頁、app,使用者身邊的裝置
    • 會發出請求(如HTTP協定)到Server的API
  • Server(後端)
    • 為伺服器端,工程師能控制的主機
    • 會執行一個網頁伺服器並連結資料庫,開放API給外界呼叫

後端工程師需求門檻

  • 對基本Linux指令的了解,Mac有一樣的指令,系出同源
  • 對資料庫操作(SQL)的了解,使用者的資料都會存在後端
  • 後端語言或框架的熟悉
  • 門檻相對前端高,但也比較不容易被取代

常見的伺服器後端語言

  • Python
    • 被用在AI實踐、伺服器運維管理、刷題語言
    • 學習上語法最簡單
    • 伺服器後端相對少,大多新創、蒸蒸日上的公司在用
    • 推薦沒有就業壓力、不確定目標、什麼方向可嘗試的新手
  • Java:
    • 穩定,大企業、銀行、傳產愛用,新創相對少
    • 資工資管系通常都會,很多演算法、物件導向的書也是基於Java
    • 使用上有Oracle的版權疑慮
    • 推薦想找穩定工作、打好程式基礎的新手
  • PHP:
    • 如果是後端語言的職缺,PHP大概是最多的了,很多舊網站在用
    • 推薦急著想找工作的新手
  • Node.js
    • 使用JavaScript撰寫,建議已經熟悉前端的工程師從Node切入
      • JavaScript不是Java,名稱很像是歷史原因
    • 因前後端語言一樣,很多新創使用
    • 推薦短時間想拿高薪以全端為目標的工程師
  • Go(Golang)
    • 現代化高性能編譯語言
    • 新創、高薪缺愛用,未來成長性高
    • 通常不建議Golang為第一語言,推薦老手再學
  • C#
    • 全微軟工作環境下使用(不需要會Linux),也可以寫Unity遊戲
    • 很多銀行、傳產、政府單位愛用
    • 推薦想找穩定工作的新手
  • Ruby:
    • 有點冷門,開發快速,某些特定公司會用,如果以那些公司為目標可以學
    • 除非到職的公司會帶,不然可以不用學

其他語言

  • C
    • 軟體界最經典的語言
      • 常見用在工作的語言90%都是參考C的語法
    • 天生被用來撰寫作業系統,為寫UNIX而生
      • 所有作業系統都離不開C
      • 要了解資工的資料結構、作業系統、編譯器從C開始不會錯
    • 通常C的工作都跟了解硬體、作業系統的domain綁在一起,所以門檻比較高
  • C++
    • 通常做需要高效能的事情如遊戲引擎 交易系統 EDA
    • 需要的工作通常要求高學歷理工背景
    • 學生刷題比賽愛用
  • Rust
    • 在台灣非主流,在Linux開發 韌體開發 後端開發 前端開發領域持續成長
    • 簡單來說是記憶體管理更安全的C/C++
    • 很難寫,語法對機器友善,編譯器很嚴格
    • 難學易精,跟JavaScript反過來

todo

  • Distributed Systems
  • Linux
  • DevOps
  • SRE
  • Kubernetes
  • docker
  • 什麼是Mircroservice架構?