[轉職] Junior 後端工程師面試技術題

Johnny
4 min readApr 14, 2021

--

這篇文章收錄這輪面試我遇到的題目,目的是幫助Junior後端工程師準備技術面試。如果你的求職方向和我一樣,應該會有幫助:

  1. 台灣新創公司
  2. 使用Node.js
  3. 非本科轉職

這篇不包含演算法的題目,因為太多了沒辦法全部記得XD。但大多數題目都在LeetCode Easy程度, 全部題目都是陣列相關。

以下會按照技術去分類題目,除了AWS部分沒工作經驗的人不一定要會,建議其他每一題都要弄懂或大概知道概念。

資料庫相關

  1. ORM是什麼?ORM的優缺點是什麼?
  2. 請解釋CAP定律或是ACID
  3. 請解釋關聯式資料庫和非關聯式資料庫的差異
  4. 請解釋Redis適用的使用情境
  5. 資料庫cache會遇到什麼問題?
  6. 什麼是資料庫正規化?
  7. 什麼情況要使用反正規化?
  8. 什麼是資料庫index?
  9. 什麼是composite index?
  10. 為什麼一般來說不建議使用 SELECT * ?
  11. 什麼是transaction? Transaction失敗了怎麼辦?
  12. 如果要用MongoDB紀錄一個人的點擊log,你會怎麼設計?
  13. MongoDB有哪些常用的優化措施?
  14. 假設今天有一模一樣的query,前幾天只要500ms就能跑完,今天突然要5s才跑完,你會怎麼解決這個問題?
  15. 某生產環境,有node.js一台、DB一個,尖峰時刻請求都卡在DB,請問短期、長期各有什麼策略?

JavaScript / Node.js 相關

  1. 這段code會印出什麼,為什麼?
for (var i = 0; i < 5; i++){
setTimeOut(()=> {
console.log(i)
}, 1000)
}

2.

var a = {} ; var b = {}; var c = a
  • a === b ?
  • a === c ?
  • 解釋為什麼前兩題答案不同(或相同)

3. 解釋JavaScript的event loop

4. 什麼是Promise?

5. 解釋var, const, let的差異

6. 用closure寫一個函數

7. 實作[1,2,3].duplicate() = [1,2,3,1,2,3]

8. 為什麼要用Node.js? Node.js的好處是什麼?

9. 解釋同步和非同步的差異

10. JavaScript有哪些方法可以進行非同步流程的控制?

11. 常用的JavaScript類別定義的方法有哪些?

12. JavaScript類別繼承的方法有哪些?

13. 解釋Node.js的EventEmitter的作用

14. 什麼是Node.js錯誤優先的回調函數?

JWT / Session相關

  1. JWT和Session的差異是什麼?
  2. JWT解決了什麼問題?
  3. JWT的缺點是什麼?
  4. JWT的組成是什麼?payload會帶什麼?可以被竄改嗎?
  5. 解釋cookie和session之間的關係

HTTP相關

  1. 解釋GET和POST的差異
  2. 解釋POST / PUT / PATCH在Restful定義下的差異與使用時機
  3. 給很多選項,選出哪些是HTTP method (GET, POST, PUT…)

AWS相關

  1. 有用過AWS的哪些服務?
  2. Service建置在AWS ECS上,這時候出現status code 500,請問你會執行哪些處理與檢查?
  3. 描述你操作過的AWS RDS 備份與還原的過程

協作相關

  1. 有協作過的經驗嗎?遇到最大的困難是什麼?
  2. 如果再讓你回到當時遇到困難的情境,你會怎麼做?
  3. 什麼是git flow?

程式碼相關

  1. 你認為怎麼樣算是好code?
  2. 你平常怎麼確保程式碼的可讀性和維護性?
  3. 程式碼時間和空間的取捨,可以舉個例嗎?

資料庫與API設計(白板題)

  1. 某網站需要有多個前後台角色且各自有不同權限,請設計API與資料庫
  2. 電商網站賣家需要一個可以指定未來時間上架的功能,設計API與資料庫
  3. 電商網站需要能夠顯示前十名賣得最好的商品,請設計API與資料庫。如果前端今天不需要即時更新名單,可以怎麼做?
  4. 畫出並描述轉帳功能的流程,Server、DB、銀行API各自需要做什麼檢查邏輯與例外處理?

其他

  1. 什麼是Mircroservice架構?
  2. 什麼是Functional Programming? 簡單解釋你的理解。
  3. SPA 和 SSR技術上有什麼不同?你偏好哪個?為什麼?
  4. 描述一下你的專案用了什麼技術、遇到什麼困難、怎麼解決

--

--