算法工程师的核心工作,是把一个模糊的业务问题翻译成可以用数据优化的目标,训出模型,再让它稳定跑在生产环境里。写代码只是其中一环,更多时间花在定义指标、清洗数据和判断效果真假上。
这个岗位最容易误解的地方是把它当成"高级开发"。两者的交付物不一样:开发交付的是功能,算法交付的是指标。功能可以说"做完了",指标只能说"从多少提到了多少",永远没有做完的那天。
一天在干什么,和开发岗差在哪
真实的工作时间里,读论文和调模型占的比例远比外界想的小。数据探查、特征回补、badcase 分析、和产品对齐口径,这些占了大头。一个模型从 0.8 提到 0.82 可能要两周,其中十天在确认这 0.02 是不是数据泄漏造成的。
| 对比项 | 普通开发 | 算法工程师 |
|---|---|---|
| 需求形态 | 功能描述清楚,逻辑可以枚举 | 目标是一个指标,路径不唯一 |
| 正确性 | 对或错,可以写单元测试 | 只有概率意义上的好坏,靠评估集和线上实验 |
| 交付物 | 可运行的功能模块 | 模型、特征、评估报告、线上策略 |
| 主要动作 | 设计、编码、联调、修 bug | 定义指标、造样本、调参、分析差异 |
| 失败方式 | 报错、崩溃,能被发现 | 指标涨了但业务没变好,不容易被发现 |
| 时间感 | 按版本排期 | 按实验周期排期,一次实验至少一周 |
最后一行是很多新人踩的坑。离线指标提升不等于线上收益,线下评估集和真实流量分布不一致时,涨的分全是假的。所以成熟团队会把在线实验当成唯一裁判。
一个模型从需求到上线,要过七道关
- 定义指标:把"提升用户体验"拆成可计算的量,比如七日留存、人均停留时长、投诉率。指标选错,后面全白做。
- 数据采集:确认埋点有没有、字段全不全、口径和别的部门是否一致。
- 样本构造:定正负样本、定时间窗口、处理样本不均衡。这一步决定模型能学到什么。
- 特征工程:用户侧、物品侧、交叉特征,注意训练和线上的一致性,避免特征穿越。
- 模型训练与离线评估:选基线、做消融,看 AUC、召回率、NDCG 这类指标,同时看分桶表现。
- 在线实验:小流量 AB,观察核心指标和护栏指标,跑够统计显著性再下结论。
- 全量上线与监控:盯模型耗时、特征覆盖率、分数分布漂移,出问题能一键回滚。
七道关里最容易被跳过的是第六道。样本量不够就下结论,是线上效果反复的常见原因。
技能栈分四层,缺一层就卡住
数学层:线性代数、概率统计、最优化。不需要手推所有公式,但要能看懂损失函数在优化什么,知道正则化为什么能抑制过拟合。
编程层:Python 是通用语言,SQL 是取数工具,C++ 或 Java 在要求低延迟的场景(搜索、广告、风控)里必需。只会 Python 能做实验,做不了高并发服务。
框架层:深度学习框架至少精通一个,分布式训练和推理加速要了解;大数据侧要会用 Spark 或 Flink 处理亿级样本。
业务层:这一层最容易被忽略,也最决定上限。同样的模型,懂业务的人知道该在哪个环节加特征、哪个指标是护栏不能碰。
岗位细分之后,招的人有什么不一样?
招聘 JD 上写的都是"算法工程师",实际做的事差别很大,投简历前要看清方向。
| 方向 | 典型任务 | 常用技术 | 对口背景 |
|---|---|---|---|
| 计算机视觉 | 目标检测、图像分割、OCR、缺陷检测 | 卷积网络、Transformer、数据增强 | 自动化、电子、计算机 |
| 自然语言处理 | 文本分类、信息抽取、问答、翻译 | 预训练模型微调、序列标注 | 计算机、语言学 |
| 推荐 | 内容分发、商品排序、多目标融合 | 双塔召回、深度排序、序列建模 | 计算机、统计 |
| 搜索与广告 | 查询理解、相关性排序、点击率预估 | 倒排索引、Learning to Rank | 计算机、数学 |
| 风控与量化 | 欺诈识别、信用评分、信号挖掘 | 树模型、图算法、时序模型 | 数学、统计、金融工程 |
方向之间不是完全隔断的。做推荐的人转搜索不难,因为两者都关心排序;从视觉转自然语言处理就要重新积累,数据形态和评价方式都换了。
什么样的背景能进这一行?
校招的主流门槛是硕士,专业集中在计算机、自动化、电子、数学、统计。本科生也能进,但多数落在工程侧或者中小公司,核心算法岗的简历筛选会先看学历和项目。
能加分的东西有三类:一是顶会或期刊论文,视觉和自然语言处理方向看重;二是竞赛名次,数据挖掘类比赛的前几名在简历上很硬;三是大厂实习,而且要是真的做过完整项目,能说清自己负责哪一段。
社招看的是另一套:有没有把某个指标从 A 做到 B 的完整经历,能不能说清为什么这么做、失败了怎么改。工作三年还在写"参与了某某模型开发",面试很难过。
常见问题
数学不好能学算法吗
能做应用,做不了深入研究。日常调包和调参对数学要求不高,但要看懂论文、自己改损失函数、判断指标异常,概率统计和线性代数绕不过去。补的方式是先补这两门,不用一上来啃最优化理论。
算法岗和数据分析岗有什么不同
数据分析偏解释,产出是结论和报表,回答"发生了什么、为什么";算法岗偏预测和干预,产出是模型和策略,回答"接下来会怎样、怎么让它变好"。两者在业务早期经常合并成一个岗位。
三十五岁之后还能做吗
能,但路径会分岔。一部分人往技术专家走,负责一个方向的模型体系;一部分转算法管理或产品;还有一部分去做行业解决方案。真正被淘汰的不是年龄,是只会调参、说不清业务价值的那一类。
学习通