Chapter 00 · Overview

Appier 後端面試:完整知識補充

針對 Software Engineer Intern, Backend Development 職缺整理。從語言、作業系統、網路、資料庫,到分散式、大數據、系統設計與 AdTech 領域知識,再加上真實面試題解析與行為面試準備。

17 章 · 每章附面試自測題按 / 全站搜尋

怎麼使用這個網站

1. 先讀面試情報

知道 Appier 會考什麼、怎麼考,才能分配時間。本頁下方整理了網路上能找到的真題。

2. 照讀書計畫推進

每章讀完按「標記為已讀」,側欄會顯示進度。進度只存在你的瀏覽器裡。

3. 用自測題驗收

每章結尾有面試自測題。先自己講一遍再展開答案,講得出來就勾「會了」。

讀法建議

每個概念都試著用三層回答:是什麼(定義)→ 為什麼(解決什麼問題、代價是什麼)→ 在 Appier 會怎樣(高 QPS、低延遲、海量事件)。網路上說 Appier 偏難,多半是因為面試官會一路追問到第二、第三層。

職缺拆解:他們要什麼人 必讀

職缺是 Backend Development Intern,台北、hybrid、每週 2–4 天、至少 6 個月,表現好可轉正職。把職缺要求對應到本站章節:

職缺要求面試可能怎麼考對應章節
Python / Go / Java 擇一精通;基本 Python 能力語言特性追問(「為什麼 Python 會這樣」)、coding 題01 Python、02 Java、16 演算法
在 Linux 上建構 web service;runtime 設定與資源優化process/thread、fd、記憶體、常用指令、排查情境題03 OS & Linux
REST / GraphQL API 設計設計某功能的 API、冪等、分頁、錯誤處理07 API 設計
SQL 與 NoSQL寫 SQL、index 原理、交易隔離、Redis 用法、選型05 SQL、06 NoSQL
Profiling 與效能調校關鍵元件「API 變慢怎麼查」、工具與方法論08 並行與效能
提升 scalability 與 observability;測試自動化監控指標怎麼設、怎麼寫測試09 測試與可觀測性
高效能網路服務、Nginx / HAProxyTCP 交握、HTTP 版本差異、LB 演算法04 網路
分散式系統設計、分散式演算法與資料結構CAP、一致性、consistent hashing、HLL、Bloom filter10 分散式、11 訊息佇列
Hadoop / Spark / Hive / Flink「上億筆資料怎麼 merge」12 大數據
Docker / K8s、CI/CD、AWS / GCP、Git概念題、部署流程、排錯15 DevOps & 雲端
主動、能獨立作業、解決問題能力強行為面試、專案深挖、CTO 對談17 行為面試
Appier 是做什麼的

Appier 是 AI 驅動的 AdTech / MarTech 公司,產品線包含 CrossX(程式化廣告)、AIQUA(行銷自動化與推播)、AIXON(資料科學與受眾分析)、AIDEAL(電商個人化)等。後端的難處通常來自三件事:極高 QPS 與嚴格延遲(即時競價要在約 100ms 內回應)、海量事件資料(曝光、點擊、轉換)、ML 模型上線。細節見 14 AdTech 領域知識。

面試流程(依網路分享整理)

以下來自 2021–2026 年間的公開面試心得,正職與實習混合,流程會隨團隊與時間調整,以 HR 實際通知為準。

flowchart LR A["HR 電話/視訊
流程說明、動機"] --> B["技術一面
履歷深挖 + coding"] B --> C["技術二面
團隊面試:系統設計
或資料處理題"] C --> D["VP / Team Lead
行為面試、英文"] D --> E["CTO 對談
技術觀點"] E -.有時.-> F["CEO 聊聊"]
關卡常見內容準備重點
HR為什麼想來、目前狀況、可上班時間(實習每週天數)動機要連到 AdTech + AI;確認能配合每週 2–4 天、6 個月以上
技術面(履歷)自我介紹、最自豪的專案、過去經歷細節(常佔 30–45 分鐘)每個寫在履歷上的技術都要能講出「為什麼選、遇到什麼問題、怎麼量化成果」
技術面(coding)LeetCode easy–medium,常包裝成業務情境,有 45 分鐘線上 coding 的形式;會追問優化邊寫邊講、先給可行解再優化、主動分析複雜度與測試案例
技術面(設計)系統設計或資料處理:合併資料、上億筆怎麼辦、事件報表系統、廣告投放從單機講到分散式,數字估算,講清楚取捨
VP / Lead行為面試(STAR)、英文能力確認準備 5–6 個故事,至少能用英文講其中 2 個
CTO聊天式,廣泛的技術觀點對 AI/LLM、技術選型、技術債等有自己的看法

網路上蒐集到的真題 高頻

每題都對應到本站的詳細解答章節。

Coding

題目考點解析
Valid Parentheses(LC 20)stack16 演算法
含 * 的括號字串(LC 678)greedy 上下界 / DP
Merge User Attributes from Multiple Data Sources;合併兩個 List[dict] 中相同 id 的資料hash map、衝突規則;追問資料放不下記憶體16 + 12
合併兩個 JSON 檔(take-home)遞迴 deep merge → 迭代版16、07
Wordle 遊戲Counter、重複字母處理16
Graph 題:DFS → backtracking → 能否用 DP 優化記憶化、重疊子問題16
程式優化:遞迴能否拿掉explicit stack、Python recursion limit16
中等難度字串處理白板題sliding window、stack16
SQL 題JOIN、GROUP BY、window function05 SQL

系統設計與資料處理

  • 兩份資料如何 merge?資料量增加到上億筆時怎麼辦?→ 12 大數據(有完整的逐層追問劇本)
  • 客戶端 SDK 回報大量 JSON 資料,設計統計報表系統→ 13 系統設計
  • 設計廣告投放系統→ 13 + 14 AdTech
  • 設計 chatbot→ 13
  • 設計發送 LINE 訊息的 API→ 07 API 設計 + 13

基礎知識與其他

  • TCP 三次交握 → 04 網路
  • DB index → 05 SQL
  • Python 語言特性與「為什麼」→ 01 Python
  • 履歷有 Java / Spring Boot 時的 JVM、並行、Spring 追問 → 02 Java
  • AWS 與 Kubernetes 知識(資深職位)→ 15 DevOps & 雲端
  • C++ 團隊:RAII、smart pointer、OOP、virtual function → 03 OS & Linux 中的 C++ 小節
  • 底層機器維護經驗、Linux 操作 → 03
  • 最自豪的專案、讀過哪本原文書、自學資源 → 17 行為面試
資料來源與限制

以上整理自公開分享,不代表官方題庫。部分平台的內容需付費解鎖,只能看到預覽。來源: 面試趣 Backend Engineer 列表、 GoodJob 2022 後端(錄取)、 GoodJob 2022 Backend SWE、 GoodJob 2026 Backend SWE(C++ 團隊)、 Dcard 2024/2025 新鮮人面試心得、 Chunting Wu 2021 後端面試經歷、 PTT Soft_Job 面試心得、 Glassdoor。

知識地圖

後端知識彼此相連。面試時能把它們串起來(例如從「API 變慢」一路講到 index、cache、連線池、profiling),比各別背得很熟更加分。

flowchart TB subgraph L1[語言與基礎] PY[Python / Go] --- OS[OS & Linux] --- NET[網路 & HTTP] end subgraph L2[資料層] SQL[(SQL)] --- NOSQL[(NoSQL / Redis)] end subgraph L3[服務開發] API[API 設計] --- PERF[並行 & 效能] --- OBS[測試 & 可觀測性] end subgraph L4[規模化] DIST[分散式理論] --- MQ[訊息佇列] --- BIG[大數據] end SD{{系統設計}} L1 --> L3 L2 --> L3 L3 --> SD L4 --> SD AD[AdTech 領域] --> SD OPS[Docker / K8s / CI/CD / 雲端] --> SD

章節一覽

01

Python 深入(附 Go 速覽)

物件模型、GIL、記憶體管理、generator、asyncio、常見陷阱、WSGI/ASGI、Go 並行模型。

02

Java 深入(JVM、並行與 Spring Boot)

JIT、GC 收集器、HashMap / ConcurrentHashMap、JMM 與 volatile、thread pool、virtual threads、@Transactional 陷阱、線上排查。

03

作業系統與 Linux 實戰

process/thread、虛擬記憶體、epoll、signals、cgroups、常用指令、kernel 調校、排查劇本。

04

網路、HTTP 與負載平衡

TCP 交握與揮手、擁塞控制、HTTP/1.1→2→3、TLS、DNS、Nginx/HAProxy。

05

關聯式資料庫與 SQL

B+ tree index、交易與隔離等級、MVCC、鎖、查詢優化、複製與分片、SQL 面試題。

06

NoSQL 與 Redis 快取

Redis 資料結構與叢集、快取模式、穿透/擊穿/雪崩、MongoDB、LSM tree。

07

API 設計:REST / GraphQL / gRPC

冪等、分頁、版本、限流、認證授權、LINE 推播 API 設計演練。

08

並行、效能調校與 Profiling

鎖與死結、I/O 模型、效能方法論、py-spy / cProfile / pprof、p99 排查劇本。

09

測試與可觀測性

pytest 實戰、metrics/logs/traces、Prometheus、OpenTelemetry、SLO 與告警。

10

分散式系統理論

CAP、一致性模型、複製、consistent hashing、Raft、分散式交易、機率型資料結構。

11

訊息佇列與事件驅動

Kafka 深入、交付語意、冪等消費者、outbox + CDC、事件追蹤管線。

12

大數據處理與上億筆資料

從 hash map 到 external sort 到 Spark,join 策略、Parquet、Flink、逐層追問劇本。

13

系統設計方法與 Appier 情境題

答題框架、估算、事件報表系統、廣告投放、chatbot、推播系統與經典題。

14

AdTech 領域知識

DSP/SSP、RTB 流程、bidder 架構、pacing、frequency capping、歸因與隱私。

15

Docker、K8s、CI/CD 與雲端

容器原理、K8s 物件與排錯、部署策略、ArgoCD、AWS/GCP 對照、Git 進階。

16

演算法題型與 Appier 真題

真題完整解析、題型模板大全、60 題練習清單、4 週刷題計畫。

17

行為面試、CTO 對談與反問

自我介紹(中英)、專案深挖、行為題庫、CTO 話題、反問清單、履歷。

讀書計畫

你說還有一段時間,以下用 8 週規劃,每週約 12–15 小時。時間較少就用右邊的 3 週壓縮版。

8 週完整版

週知識每日刷題
101 Python 或 02 Java(選你的主力語言)、03 OS & LinuxArray / Hash map / Two pointers
204 網路、07 API 設計Stack / Sliding window / 字串
305 SQL、06 NoSQL & RedisSQL 題 × 10、Binary search
408 並行與效能、09 測試與可觀測性Tree / BFS / DFS
510 分散式、11 訊息佇列Backtracking / Graph
612 大數據、14 AdTechDP / Heap / Intervals
713 系統設計(每兩天一題,計時 45 分鐘自己講)Appier 真題重刷
815 DevOps、17 行為面試;全站自測題總複習模擬面試 × 3

3 週壓縮版

週重點
116 演算法真題 + 每天 3 題 medium;01 Python 或 02 Java;04 網路(TCP、HTTP);05 SQL(index、交易、SQL 題)
212 大數據(merge 上億筆);13 系統設計前兩題(事件報表、廣告投放);06 Redis;14 AdTech 速讀
317 行為面試(專案深挖、英文自介);08 效能排查劇本;15 K8s 基礎;所有章節的自測題
優先順序的理由

網路分享顯示時間大多花在履歷深挖和coding,其次是資料處理/系統設計。所以先把 coding 和自己的專案準備好,報酬最高。

實戰練習:用一個小專案把知識串起來

只讀不做很難在專案深挖時講出細節。建議花 1–2 週做一個迷你事件追蹤服務,正好對應 Appier 真題「SDK 回報 JSON → 統計報表」,也能放進履歷:

  1. Collector API:FastAPI 接收批次 JSON 事件(impression / click),pydantic 驗證,回傳 202。加 idempotency(event_id 去重)。
  2. 佇列:把事件寫進 Redis Streams 或 Kafka(docker compose 起),consumer 做聚合。
  3. 儲存:原始事件存 Parquet;分鐘級聚合寫入 PostgreSQL 或 ClickHouse,用 window function 算 CTR。
  4. 查詢 API:GET /campaigns/{id}/stats?from=&to=&granularity=hour,用 Redis 快取熱門查詢。
  5. 可觀測性:Prometheus metrics(QPS、p99、consumer lag)+ 結構化 log + Grafana dashboard。
  6. 壓測與調校:用 k6 或 wrk 打到瓶頸,用 py-spy 找熱點,記錄優化前後的數字。這就是你在面試裡「量化成果」的素材。
  7. 部署:Dockerfile(multi-stage)、GitHub Actions CI、可選 kind/minikube 上的 K8s manifest 加 HPA。
為什麼是這個專案

它幾乎用到職缺上的每一項:Python web service、REST、SQL + NoSQL、Linux、Docker、K8s、CI/CD、profiling、observability、串流處理。面試官問「你做過最自豪的專案」時,你可以從架構講到效能數字。

面試前一天的速查清單

技術

  • TCP 三次交握 / 四次揮手 / TIME_WAIT
  • B+ tree index、最左前綴、covering index
  • 隔離等級與 MVCC
  • GIL、generator、asyncio 何時用
  • Redis 快取穿透 / 擊穿 / 雪崩
  • CAP、consistent hashing、冪等
  • 上億筆資料 merge 的四層答法
  • 系統設計框架與估算公式(1 億/天 ≈ 1,160 QPS)
  • 「API 變慢怎麼查」的排查順序

非技術

  • 1 分鐘自我介紹(中、英)
  • 最自豪專案:架構圖、取捨、數字、重做會怎麼改
  • 3–5 個 STAR 故事(衝突、失敗、主動、學習)
  • 為什麼 Appier、為什麼後端
  • 每關各準備 3 個反問
  • 確認每週可實習天數與開始日期
  • 線上面試設備、coding 平台、網路