115 中央大學資工所軟體工程組推甄

初審

參見上一篇的交大推甄。交的東西都差不多,只差在不用準備分工表之類的。

筆試

全手寫,三小時

觀念題

六題選五題作答,配分都一樣。

  1. 你寫了一個爬蟲,發現 CPU 閒置,都在等伺服器回應,你怎麼用非同步方式優化?
  • 也要解釋什麼是同步、非同步
  1. 你是電商平台的 QA 工程師,平台需求如下:
  • 系統後台可以設定會員等級(普通、黃金、鑽石)的折扣率
  • 普通會員沒有折扣
  • 黃金會員有 95 折
  • 鑽石會員有 9 折
  • 折扣僅適用於商品總價,不包含運費
  • 描述你會怎麼測試,什麼是白箱測試、黑箱測試,各別設計兩個測試案例,並說明為什麼。
  • 如果你推上去後發現一堆沒找到的 bug,怎麼修效率最高?
  1. 新人工程師寫了 try catch,資深工程師說脫褲子放屁,分析他們的觀點跟盲點。
  • 要怎麼解決這種程式碼簡潔 vs 可讀性、執行效率 vs 開發效率的衝突?
  1. 網頁伺服器回應 1000 個請求,與轉檔 10 個影片檔,你會使用 multi-threading 還是 multi-processing?為什麼?
  2. 客戶說系統有 bug,要用 git 回退,怎麼在不影響現在 commit 的情況下回退?
  • 怎麼以最少次數找出有問題的 commit?
  1. OOP 的 interface 設計初衷?過度使用會怎樣?
  • List list = new ArrayList();List list = new LinkedList(); 反映出 OOP 的什麼特性?

實作題

  1. LeetCode 101. Symmetric Tree
  2. 資料庫正規化是什麼?將給定資料表正規化到第三正規化。
  3. 手刻模擬 4x4 的 2048 遊戲(超噁心
  4. 二分搜尋,lower bound
  5. 無限背包問題,但有最大重量與最大體積限制
  6. Magic 153,輸入一個正整數 n,將 n 的每個位數立方和相加,重複此過程,判斷最後是否會回到 153。