Bloomberg 在 2026 校招中的節奏是所有傳統 IB / 金融 Tech 裡最快的:9 月 23 日投遞,當天就收到 HR 面試邀約,9 月 30 日校招組確認,10 月 2-3 日兩天連面——onsite 兩輪技術 + 行為,整套流程一週內走完。題目都是 LeetCode Medium 量級,但面試官的追問極度細節:smart pointer 怎麼用、scoped vs unique 差別在哪、recurse 還是 stack 哪個更省記憶體。本文複盤一位 2026 鮮活通過候選人的兩輪 onsite,每個環節都給出題目、考察點、答題模板。
Bloomberg 2026 NG SDE 校招時間線
| 日期 | 階段 |
|---|---|
| 9.23 | 透過學校 career portal 投遞履歷 |
| 9.23 | HR 當日發邀約(含校招 onsite 日期選項) |
| 9.30 | 校招組確認面試時間 |
| 10.2 | 第一輪 onsite(技術 + BQ) |
| 10.3 | 第二輪 onsite(resume deep dive + 技術追問) |
| 10.10 內 | offer call |
第一輪 onsite:BQ + Coding 雙題
1.1 行為題模板(25 分鐘)
第一輪面試官是華人 senior engineer,氣氛非常放鬆。BQ 部分按以下順序:
- Self-introduction(3 分鐘):教育背景 + 一個最自豪的專案
- 最有代表性的專案經歷:選與 Bloomberg 業務最相關的——金融、終端、即時資料
- 最具挑戰性的專案:重點講模糊需求 + 溝通過程——Bloomberg 極度看重 ambiguous requirements 的處理
- 追問:
- "你怎麼跟團隊 align 需求?"
- "最終結果是否符合預期?"
- "如果再來一次你會怎麼改進?"
BQ 答題密碼:Bloomberg 的 BQ 評分傾向「溝通顆粒度」——把每個抉擇背後的選項 + 取捨講清楚。建議每個 STAR 故事內建至少 1 個「trade-off」動作。
1.2 Coding 題 1:Valid Triangle Number(LeetCode 611)
題目:給定整數陣列 nums,返回可以構成有效三角形的三元組數量(任意兩邊和大於第三邊)。
Bloomberg 期望解法:排序 + 雙指針 O(n²)
from typing import List
def triangle_number(nums: List[int]) -> int:
nums.sort()
n = len(nums)
count = 0
for k in range(n - 1, 1, -1):
i, j = 0, k - 1
while i < j:
if nums[i] + nums[j] > nums[k]:
count += j - i
j -= 1
else:
i += 1
return count
時間複雜度:O(n²)
空間複雜度:O(1)(如果允許原地排序)
面試官追問:
- "為什麼 k 從大到小?" → 固定最長邊,便於雙指針在前綴裡找兩條短邊
- "為什麼
count += j - i?" → 因為對當前j滿足條件,則i+1, i+2, ..., j-1同樣滿足 - "排序後還能不能最佳化?" → 這題 O(n²) 已經是 lower bound
1.3 Coding 題 2:Flatten a Multi-level Linked List(LeetCode 430)
題目:雙向連結串列節點有 next 和 child 指針,將其展開為單層連結串列。
Bloomberg 期望解法:堆疊模擬 / 遞迴 DFS
class Node:
def __init__(self, val, prev=None, next=None, child=None):
self.val = val
self.prev = prev
self.next = next
self.child = child
def flatten(head):
if not head:
return head
stack = []
curr = head
while curr:
if curr.child:
if curr.next:
stack.append(curr.next)
curr.next = curr.child
curr.child.prev = curr
curr.child = None
if not curr.next and stack:
nxt = stack.pop()
curr.next = nxt
nxt.prev = curr
curr = curr.next
return head
時間複雜度:O(n),n 為所有節點總數
空間複雜度:O(d),d 為最大嵌套層數
面試官追問:
- "用 stack 和 recurse 哪個更省記憶體?" → 都是 O(d),但 stack 更可控(避免 Python recursion limit)
- "如果改成有 cycle 的輸入怎麼辦?" → 用
visitedset 偵測 - "如果連結串列節點不帶 prev 指針呢?" → 同樣的邏輯去掉 prev 維護即可
第二輪 onsite:Resume Deep Dive + 技術追問
第二輪有兩位面試官:一位印度口音 ABC、一位美國本土 engineer。風格更「resume 導向」:
2.1 Resume 專案複盤(30 分鐘)
典型開場:
"If you were to redo your most recent project, how would you improve it?"
評分點:
- 至少 2 個具體的「如果再來一次」改進點
- 每個改進點帶資料支撐(效能提升 %、成本降低)
- 提到 trade-off——為什麼當初沒這麼做
Bloomberg 這一輪最常追問的技術細節:
- C++ smart pointer:"你提到 unique_ptr,那 shared_ptr 何時用?scoped_ptr 跟 unique_ptr 的差別?"
- 並發:"如果你這個服務要支撐 100k QPS,你會怎麼改?"
- 測試:"你的 test 覆蓋率多少?mock 了哪些依賴?"
2.2 Coding 題:LRU Cache 設計
題目:實現 LRU Cache,get 和 put 都 O(1)。
Bloomberg 期望解法:雙向連結串列 + Hash Map
class DLLNode:
__slots__ = ("key", "val", "prev", "next")
def __init__(self, key=0, val=0):
self.key = key
self.val = val
self.prev = None
self.next = None
class LRUCache:
def __init__(self, capacity: int):
self.cap = capacity
self.cache: dict = {}
self.head = DLLNode()
self.tail = DLLNode()
self.head.next = self.tail
self.tail.prev = self.head
def _remove(self, node):
node.prev.next = node.next
node.next.prev = node.prev
def _add_to_front(self, node):
node.prev = self.head
node.next = self.head.next
self.head.next.prev = node
self.head.next = node
def get(self, key):
if key not in self.cache:
return -1
node = self.cache[key]
self._remove(node)
self._add_to_front(node)
return node.val
def put(self, key, val):
if key in self.cache:
self._remove(self.cache[key])
node = DLLNode(key, val)
self.cache[key] = node
self._add_to_front(node)
if len(self.cache) > self.cap:
lru = self.tail.prev
self._remove(lru)
del self.cache[lru.key]
Bloomberg 這道題的追問深度:
- "為什麼不用
OrderedDict?" → 答:實戰時手寫雙鏈表更能展示資料結構理解 - "如果 capacity = 0 怎麼辦?" → 必須顯式處理,否則
put一定失敗 - "如果要支援 TTL 怎麼改?" → 在 node 上加
expire_at,get時檢查
Bloomberg 校招的 5 個評分維度
| 維度 | 佔比 | 典型表現 |
|---|---|---|
| Coding 正確性 | 30% | Medium 一次 AC + 邊界處理 |
| 溝通清晰度 | 25% | 出題前先 clarify 輸入輸出 + 邊界 |
| 技術深度 | 20% | smart pointer、concurrency 都能展開 |
| BQ + 文化契合 | 15% | ambiguous requirement 處理 + 團隊協作 |
| 學習速度 | 10% | 追問新知識時能現場推理 |
Bloomberg vs Citadel / JPMorgan 校招對比
| 維度 | Bloomberg | Citadel | JPMorgan |
|---|---|---|---|
| Onsite 輪數 | 2 | 3-4 | 3 |
| OA 是否必經 | 否(部分免 OA) | 是 | 是 |
| 演算法難度 | LeetCode Medium | LeetCode Medium-Hard | LeetCode Medium |
| BQ 佔比 | 30% | 10% | 50% |
| 平均時間線 | OA 到 offer 2-3 週 | 3-5 週 | 4-8 週 |
FAQ
Bloomberg NG SDE 校招通過率高嗎?
校招通過率約 12-18%(投遞 → offer)。進入 onsite 後約 30-40% 拿 offer,所以 onsite 表現是分水嶺。本案例兩輪 onsite 間隔 1 天,節奏非常緊湊,強調「快速 context switch」能力。
Bloomberg 演算法考點重不重?
中等。LeetCode Medium 節奏 + 60% Bloomberg 高頻題已經夠用。重點關注:linked list 變體、雙指針、tree 遍歷、LRU 設計。Bloomberg 出題非常「教科書風格」,幾乎不出 trick 題。
Onsite 間隔只有 1 天能拒絕嗎?
可以與 HR 協商。但 Bloomberg 校招組的快節奏文化決定了早面早 offer,如果時間允許建議接受連面。
Bloomberg BQ 怎麼準備?
重點準備 5 個 STAR 故事,覆蓋:模糊需求 + 團隊協作 + 失敗複盤 + 領導力 + 跨文化溝通。Bloomberg 比較在意細節追問,每個故事要有至少 3 個 follow-up 答案備好。
Bloomberg 內推有用嗎?
非常有用。Bloomberg HR 對內推履歷的回應率約 2x,且校招會優先 schedule 內推候選人。如果有 Bloomberg 在職員工內推,HR 1-2 個工作日內必回。
正在準備 Bloomberg NG SDE 校招?
oavoservice 提供 Bloomberg / Citadel / JPMorgan 等金融科技公司的 onsite 全流程輔助:BQ 故事打磨、coding 一對一 mock、resume deep dive 模擬問答。我們的導師包括前 Bloomberg engineer,對 Bloomberg 的「細節追問」風格有完整應對手冊。
立即加入微信:Coding0201,獲取 Bloomberg 校招輔導。
#Bloomberg #BloombergVO #NewGrad #SDE #金融校招 #面經
聯絡方式
Email: [email protected]
Telegram: @OAVOProxy