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] # 实际剂量
"""
# 先合并同名药物,取最严格的 max_mg
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), # 同药品,max_mg 取 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, patient_a, patient_b)
"""
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