Epic Systems 是全球最大的醫療電子病歷(EHR)軟體公司,總部位於威斯康辛州麥迪遜。它的招聘以兩個特點著稱:極高的薪資天花板(New Grad SWE 薪資在中西部排名第一)和完全不同於矽谷的筆試體系——沒有 LeetCode 風格的演算法題,而是採用 Wonderlic 風格的認知能力測試加上一道獨立的 Coding Skills Assessment。本文系統拆解 Epic OA 的四大模組,給出可執行的備考路徑。
Epic Systems OA 概覽
| 維度 | 詳情 |
|---|---|
| 平台 | Epic 自研測試系統(不開放試做) |
| 時長 | 總計約 90 分鐘,分兩部分 |
| 第一部分 | Cognitive Assessment(認知能力測試,50 題 / 12 分鐘) |
| 第二部分 | Coding Skills Assessment(程式題,60-90 分鐘,1-2 題) |
| 難度 | 單題簡單,但時間壓力極大 |
| 通過率 | 約 25%-35% |
| 後續流程 | OA → 電面 → Skills Day(onsite)→ Offer |
模組一:Cognitive Assessment(Wonderlic 風格)
Epic 使用的是 Wonderlic 認知能力測試的變體,12 分鐘 50 題,平均每題 14 秒。題目混合了以下五種類型:
1)詞彙與類比
「BOOK 之於 LIBRARY,如同 PATIENT 之於 ____。」 A. Doctor B. Hospital C. Disease D. Treatment
答案:B(地點關係)
2)算術與速算
「一輛車以 60 mph 行駛 2.5 小時,再以 40 mph 行駛 1.5 小時,平均時速是多少?」
def average_speed(d1_time, d1_speed, d2_time, d2_speed):
total_distance = d1_time * d1_speed + d2_time * d2_speed
total_time = d1_time + d2_time
return total_distance / total_time
print(average_speed(2.5, 60, 1.5, 40)) # 52.5
心算技巧:避免列方程式,先估範圍(介於 40 和 60 之間,且偏向 60)→ 排除明顯錯誤選項 → 快速估算。
3)邏輯推理(三段論)
「所有醫生都會開處方。Alex 不能開處方。結論:Alex 不是醫生。」
判斷結論是否成立(是/否/無法確定)。
4)數列模式
「2, 6, 12, 20, 30, ?」
差值為 4, 6, 8, 10,下一個差為 12,所以答案是 42。
5)圖形推理
少量但每年都有。建議刷 Wonderlic Sample Test 25 套以上。
模組二:Coding Skills Assessment
完成 Cognitive 後立刻進入程式部分,60-90 分鐘,通常 1 題(偶爾 2 題)。Epic 的程式題不是 LeetCode 風格,而是醫療業務場景的實作題。
真題示例:藥物劑量計算系統
給定一個藥物劑量列表
dosages = [(drug_name, mg_per_kg, max_mg)]和病人體重weight_kg,計算每種藥物的實際劑量。劑量 = min(mg_per_kg * weight_kg, max_mg)。如果有重複藥物名稱,取最嚴格(最小)的 max_mg 作為上限。
def calculate_dosages(dosages, weight_kg):
"""
dosages: List[Tuple[str, float, float]] # (drug, mg_per_kg, max_mg)
weight_kg: float
return: Dict[str, float] # 實際劑量
"""
drug_limits = {}
for name, mg_per_kg, max_mg in dosages:
if name not in drug_limits:
drug_limits[name] = (mg_per_kg, max_mg)
else:
existing_per_kg, existing_max = drug_limits[name]
drug_limits[name] = (existing_per_kg, min(existing_max, max_mg))
result = {}
for name, (mg_per_kg, max_mg) in drug_limits.items():
calculated = mg_per_kg * weight_kg
result[name] = round(min(calculated, max_mg), 2)
return result
dosages = [
("ibuprofen", 10, 400),
("amoxicillin", 25, 1000),
("ibuprofen", 8, 350),
]
print(calculate_dosages(dosages, 30))
# {'ibuprofen': 240, 'amoxicillin': 750}
真題示例:預約時間衝突檢測
給定一組預約時段,檢查是否存在衝突(同一醫生在同一時段被預約多次)。
from collections import defaultdict
def find_appointment_conflicts(appointments):
"""
appointments: List[Tuple[str, str, int, int]]
(doctor_id, patient_id, start_minute, end_minute)
return: List[Tuple[str, str, str]]
"""
doctor_schedule = defaultdict(list)
for doctor, patient, start, end in appointments:
doctor_schedule[doctor].append((start, end, patient))
conflicts = []
for doctor, slots in doctor_schedule.items():
slots.sort()
for i in range(1, len(slots)):
prev_start, prev_end, prev_patient = slots[i - 1]
cur_start, cur_end, cur_patient = slots[i]
if cur_start < prev_end:
conflicts.append((doctor, prev_patient, cur_patient))
return conflicts
時間複雜度:O(n log n),按醫生分組後對每組排序。
Epic 程式題的隱藏要求
- 程式必須能直接編譯執行,不接受偽程式碼
- 測試用例隱藏,但有 5-8 組,覆蓋空輸入、單元素、大資料量
- 變數命名要業務化(
patient_id比pid更受歡迎) - 註解要簡潔,不要堆 docstring
OA 之後的流程
通過 OA 不代表穩進 onsite,還有一輪 30 分鐘電話面試,主要內容:
- 為什麼選擇 Epic(不是技術問題,但答錯會掛)
- 是否願意搬到 Madison(強制要求,遠端不接受)
- 履歷專案深挖(1-2 個)
電面通過後會被邀請到 Madison 參加 Skills Day,這是 Epic 獨有的全天 onsite:
- 2 輪程式(pair programming)
- 1 輪 Behavioral
- 1 輪專案展示
- 1 頓午餐(也是評估)
備考時間線
| 週次 | 內容 |
|---|---|
| 第 1 週 | 25 套 Wonderlic Sample Test,專注速度 |
| 第 2 週 | Epic 真題庫(LeetCode Easy + 業務變體)20 道 |
| 第 3 週 | 模擬全程:Cognitive 12 分鐘 + Coding 60 分鐘 |
| 第 4 週 | 電面 + Skills Day 行為問題準備 |
FAQ
Epic 的 OA 和其他公司差別大嗎?
差別極大。其他公司考 LeetCode 演算法,Epic 考的是認知能力 + 業務程式。Cognitive 部分平均 14 秒一題,速度比正確率更重要;Coding 部分則要求正確的、生產級程式,不追求演算法複雜度。
沒刷過 Wonderlic 能過 Epic OA 嗎?
很難。Cognitive 部分的題型固定但時間極度緊張,沒經過訓練的人通常只能完成 30-35 題,分數明顯低於通過線。強烈建議至少做 10 套真題模擬。
Epic 一定要去 Madison 嗎?
是的。Epic 強制 100% in-office,新員工需搬到 Verona, WI(Madison 西郊)。如果你不願搬遷,連電面都不用參加。Epic 也會透過支付搬家補貼($5k-$10k)減少這個門檻。
Epic 的薪資在中西部真的很高嗎?
非常高。New Grad SWE Base 約 $115k-$125k + sign-on $20k-$40k,加上 Madison 極低的生活成本(房租約灣區 1/3),實際可支配收入接近灣區 L4。這也是 Epic 能在中西部吸引人才的核心原因。
Epic 的 Coding Skills Assessment 可以用什麼語言?
Epic 提供 Java、C++、Python、JavaScript 選擇。強烈建議用 Python——Epic 內部不使用 Python,但 OA 階段評分員主要看正確性和可讀性,Python 寫得最快。
正在準備 Epic Systems OA?
Epic 的 OA 體系獨特,需要專門的 Wonderlic 訓練 + 業務場景程式訓練。oavoservice 提供 Epic、Cerner、Allscripts 等醫療軟體公司的 OA 輔助服務,包含 Wonderlic 真題模擬與 Coding Skills 題庫。
立即新增微信:Coding0201,獲取 Epic OA 客製化輔助。
#Epic Systems #Wonderlic #醫療軟體 #OA #北美求職
聯絡方式
Email: [email protected]
Telegram: @OAVOProxy