← 返回部落格列表 BCG X Data Scientist 面試全流程指南|Case + ML 系統設計 + Coding 五輪拆解
BCG X

BCG X Data Scientist 面試全流程指南|Case + ML 系統設計 + Coding 五輪拆解

2026-05-16

BCG X(前身 BCG GAMMA,2022 年與 PlatinionUS 合併改名)是 BCG 旗下的 AI / Data Science / 軟體工程混合顧問部門,對標 McKinsey QuantumBlack、Bain Aether。它的 Data Scientist 職缺同時考察顧問的「商業感」和工程的「程式碼功底」——所以面試流程比純 Tech Co. 長 1.5 倍,但被拒掉的履歷也通常因為「只懂 ML 不懂業務」或反過來。

本文基於一畝三分地、Glassdoor、Reddit 與多位 candidate 復盤,把 BCG X DS 的五輪面試流程、每一輪的考察側重、踩坑點都講一遍。

BCG X DS 面試全景

輪次 時長 內容 通過率(粗估)
1. Recruiter Screen 30 min 履歷 + 動機 + 薪資期望 100% → 60%
2. Case Interview(一面) 45-60 min 商業 case + 資料角度 60% → 35%
3. ML Coding / SQL(二面) 60 min Python + SQL + ML pipeline 35% → 22%
4. ML System Design(三面) 60 min 端到端 ML 系統、可擴展性 22% → 14%
5. Partner / Hiring Manager BQ 45 min 行為面 + 專案深挖 + culture fit 14% → 8%

關鍵變化(2025-2026):BCG X 把過去合併在一輪的「Case + Coding」拆成了獨立兩輪,總時長上升到 4-5 小時,但每一輪的邊界更清晰——這意味著你不能再用「我會寫 ML 程式碼」補救商業 case 的回答。

一面:Case Interview(最容易翻車的一關)

題目模式

candidate 會拿到一個商業情境,例如:

一家全球物流公司發現去年 Q3 的營運成本上漲了 12%,CEO 想知道:(1) 是什麼驅動了上漲?(2) 你作為 BCG X DS 團隊,會用哪些資料 + 模型方法去定位 root cause?(3) 給出一個可落地的 90 天工作計畫。

BCG X 評分維度

不同於 MBB 純 strategy case 的「MECE 框架」,BCG X 的 case 有三個 DS 專屬考察點

  1. 資料假設清晰:你提的每個原因(油價、人工、SKU mix)都要能映射到可觀測的資料欄位
  2. 方法論分層:先 EDA / cohort 拆解,再因果分析(DiD、IV),不要一上來就「我訓練一個 XGBoost」
  3. 業務可行性:你的 90 天計畫要包括 stakeholder buy-in、A/B test design、失敗預案

答題框架(建議 7 步)

1. Restate problem        (30s)
2. Clarifying questions   (90s) ← 必問 3 個,否則減分
3. Hypothesis tree        (3 min) — 把成本上漲拆成 3-4 個 driver
4. Data side-mapping      (3 min) — 每個 driver 對應哪些可獲取的資料
5. Method selection       (5 min) — descriptive → causal → predictive 分層
6. 90-day plan            (3 min) — 含 milestones, deliverables, risks
7. Recommendation summary (1 min)

真實坑:很多 ML 出身的 candidate 跳過 Step 2-4,直接進 Step 5,被打「thinks like an engineer, not a consultant」。Step 2 的 3 個 clarifying questions 是判分錨點

二面:ML Coding / SQL

典型題目

candidate 拿到一份 100 萬列的客戶交易 CSV(or SQL 表),任務通常分兩段:

Part A - SQL(20 min)

寫一個 SQL 查詢:找出過去 90 天每個細分市場(segment)中,CLV(客戶生命週期價值)超過該 segment 中位數 1.5x 的 top 10% 客戶。

WITH clv_per_customer AS (
  SELECT
    customer_id,
    segment,
    SUM(amount) AS clv
  FROM transactions
  WHERE txn_date >= CURRENT_DATE - INTERVAL '90 days'
  GROUP BY customer_id, segment
),
seg_median AS (
  SELECT
    segment,
    PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY clv) AS median_clv
  FROM clv_per_customer
  GROUP BY segment
),
ranked AS (
  SELECT
    c.customer_id,
    c.segment,
    c.clv,
    NTILE(10) OVER (PARTITION BY c.segment ORDER BY c.clv DESC) AS decile
  FROM clv_per_customer c
  JOIN seg_median m ON c.segment = m.segment
  WHERE c.clv > m.median_clv * 1.5
)
SELECT customer_id, segment, clv
FROM ranked
WHERE decile = 1;

評分點:window function(NTILE / PERCENTILE_CONT)+ CTE 分層。子查詢嵌套多層會被減分

Part B - Python pandas / scikit-learn(40 min)

拿到 customers.csv 和 events.csv,做一個 churn prediction model。約束:缺失值處理 + 類別變數 + 80/20 train/test + 輸出 AUC。

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler, OneHotEncoder
from sklearn.compose import ColumnTransformer
from sklearn.pipeline import Pipeline
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import roc_auc_score

def build_churn_model(customers_path, events_path):
    customers = pd.read_csv(customers_path)
    events = pd.read_csv(events_path)
    # 簡單聚合特徵
    agg = events.groupby("customer_id").agg(
        n_events=("event_id", "count"),
        total_spend=("amount", "sum"),
        days_since_last=("ts", lambda s: (pd.Timestamp.now() - pd.to_datetime(s.max())).days),
    ).reset_index()
    df = customers.merge(agg, on="customer_id", how="left").fillna({"n_events": 0, "total_spend": 0, "days_since_last": 365})

    y = df.pop("churned")
    X = df.drop(columns=["customer_id"])
    num_cols = X.select_dtypes(include=["number"]).columns.tolist()
    cat_cols = X.select_dtypes(include=["object"]).columns.tolist()

    pre = ColumnTransformer([
        ("num", StandardScaler(), num_cols),
        ("cat", OneHotEncoder(handle_unknown="ignore"), cat_cols),
    ])
    pipe = Pipeline([("pre", pre), ("clf", LogisticRegression(max_iter=1000))])

    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, stratify=y, random_state=42)
    pipe.fit(X_train, y_train)
    proba = pipe.predict_proba(X_test)[:, 1]
    return roc_auc_score(y_test, proba), pipe

評分點

三面:ML System Design

題目示例

設計一個為 BCG X 客戶的電商平台做「個人化推薦」的端到端 ML 系統。客戶每月有 1 億 PV,要求:回應時間 < 200ms,模型每天更新一次。

BCG X 偏好的回答結構

1. 業務目標 → 指標定義(CTR / GMV / coverage)
2. 資料流(offline + online)
3. 特徵工程(user / item / context)
4. 召回 + 排序 + 重排三階段架構
5. 離線訓練 pipeline + 線上 serving 架構
6. A/B test 框架 + monitoring
7. 失敗兜底(cold start / degradation strategy)

和 Tech Co. 的差異:BCG X 評分官特別看重 Step 7(失敗兜底)和 Step 1(業務指標)——因為他們交付給客戶的系統不能「掛了就掛了」。一個候選人只講到 Step 5 就停下,會被打「academic」。

四面:Partner / Hiring Manager BQ

高頻問題 考察點
講一個你的 DS 專案,從 problem framing 到 deployment 全過程 業務感 + 端到端能力
你和一個非技術 stakeholder 意見衝突時怎麼處理? 溝通 + 影響力
你怎麼向 CEO 解釋一個 XGBoost 模型? 表達分層能力
上一個專案裡哪段程式碼 / 結論你最不滿意?為什麼? 自我反思
為什麼不去 FAANG / 直接做 industry DS? 動機一致性

關鍵:BCG X 的 Partner 面更像「Senior Director」談話——他們要判斷你5 年內能不能 promote 到 Project Leader避免只講技術細節,多講 business outcome。

備考路徑(4 週)

重點 資源
W1 Case Interview 基本功 Case in Point、Victor Cheng frameworks(核心 12 個)
W2 Python + SQL Coding 強化 LC SQL 50、StrataScratch、Kaggle 簡易專案
W3 ML System Design "Designing ML Systems"(Chip Huyen)+ 自寫 5 個端到端方案
W4 Mock + BQ 復盤 模擬 case + STAR 寫 6 個專案故事

避坑:不要花 80% 時間刷 LeetCode——BCG X DS 的演算法題難度遠低於 FAANG,但 case + system design 評分權重 ≥ 60%。


FAQ

Q1:BCG X 和 BCG 主線(顧問)的 Data Scientist 是同一職缺嗎?

不是。BCG 主線 Data Scientist 偏分析師角色,主要服務 traditional case;BCG X DS 是產品 / 工程導向,團隊和 PM、SWE、Designer 一起 ship 產品給客戶。BCG X 的 base 比 BCG 主線 DS 高 10-15%,工作節奏更接近 Tech Co. 而不是 MBB 風格。

Q2:BCG X DS 面試要不要刷 LeetCode?

Hard 題不需要。Coding 輪的難度大致是 LC Easy / Medium 區間,但重點考 pandas / SQL / scikit-learn 的工程化使用,不是資料結構。建議刷 LC SQL 50 + StrataScratch,比純 LC 演算法更對口。

Q3:BCG X 給應屆生還是 MBA 多?

兩者都招,但 title 不同:

應屆 PhD 的錄取率比 MBA + 轉行的高 2-3 倍——BCG X 偏好 ML 強基礎。

Q4:BCG X DS 的 base + bonus 大概多少?

美國 2026 cycle 資料(含 sign-on 攤銷):

和 FAANG 比 base 略低,但 bonus 比例高,且實際 utilization billable 時給客戶出差日補可觀。

Q5:BCG X DS 面試一年能投幾次?

12 個月內同一 office 一次。但是不同 office(北美 / 歐洲 / 亞太)獨立處理,所以可以錯時投。注意:如果你在 Recruiter Screen 階段就被拒,cooldown 是 6 個月。

Q6:BCG X DS Onsite 現場還是遠端?

2026 cycle 北美 hub(NYC / Boston / SF / Toronto)前 3 輪都是 remote第 4-5 輪(System Design + Partner BQ)通常會安排去 office 一天——BCG 報銷機票飯店。亞太與歐洲 hub 大多數輪次仍 remote。


聯絡方式

如果你正在準備 BCG X / McKinsey QuantumBlack / Bain Aether 這類「顧問 + DS」混合職缺,最容易低估的是 Case Interview 的資料導向變體——它和傳統 MBB case 的解題路徑不一樣。我們整理了 BCG X DS 真題包(含 case + ML coding + system design 模板),並提供 1v1 mock 服務。

立即加入微信 Coding0201獲取 BCG X 面試真題與 mock 安排