一本信息与计算科学-算法工程师

你有没有想过,你刷到的那些”猜你喜欢”、小爱同学、Siri,是怎么变”聪明”的?

这些背后,是像我这样的算法工程师在调参、炼丹、写代码。

我叫张磊,信息与计算科学专业毕业,现在在一家AI公司当算法工程师。年薪从刚毕业的15万涨到了现在的40万。干了四年,我从一个”数学学不下去”的迷茫学生,变成了一个”能跑模型调参”的工程师。这条路,走得挺曲折的。

高中数学竞赛一等奖的代价

我选信息与计算科学,是因为高考数学考得不错。

高三那年,我的数学成绩一直是年级前几名。高考数学我考了148分,差点上150。那是我人生中的高光时刻。

填志愿的时候,我想报数学专业。我爸说:“数学好,以后可以当老师,也可以转金融、计算机,就业面广。”

后来我查了查,发现有一个专业叫”信息与计算科学”,据说是”数学与计算机的交叉学科”,听起来很厉害。

我就报了这个专业。

结果到了大学我才发现,这个专业是”数学专业”——开的课跟数学与应用数学差不多,《数学分析》《高等代数》《实变函数》《泛函分析》……全是纯数学的东西。

而”计算机”只是点缀——大一学了一门C语言,大二学了一门数据结构,然后就再也没有了。

我整个人都傻了。

大一:被数学分析”暴击”

开学的第一堂专业课是《数学分析》,老师是个头发花白的老教授,姓陈,据说是学院里的”数学泰斗”。

他第一节课就说:“数学分析是数学系的基础课,也是最难的一门课。你们要做好准备,这门课会刷掉很多人。”

我当时不服气——我高考数学都148了,还怕什么数学分析?

结果,第一学期就给了我当头一棒。

《数学分析》的难度跟高中数学完全不是一个量级。极限、连续、导数、微分、积分……每一个概念都抽象得要命。高中数学是”算”,大学数学是”证”——要证明一个结论为什么成立,而不是会算就行。

期中考试,我只考了58分。

那是我人生中第二次考试不及格(第一次是高等代数)。我开始怀疑人生——我真的是”数学好吗”?

后来我去请教了一个学长。学长说:“数学分析这东西,光看教材不够。你得去看一些课外书,比如菲赫金哥尔茨的《微积分学教程》,或者陶哲轩的《实分析》——那些书写得更详细、更容易理解。”

我照做了。

接下来的一个月,我把图书馆里能借到的数学分析参考书都翻了一遍。每本书的写法不一样,角度不一样,看多了之后,我对那些抽象概念的理解慢慢清晰起来。

期末考试,我考了72分。虽然不算高,但总算过了。

这次经历让我明白了一个道理:数学这东西,不能只靠聪明,还得靠积累和理解。

大二:找到了方向——编程

大二开始,专业课越来越难。《实变函数》《泛函分析》《拓扑学》……每一门课都让我怀疑人生。

但也是这一年,我接触到了编程。

大二下学期,有一门课叫《数据结构与算法》。这门课讲的是计算机科学的核心内容——数组、链表、树、图、排序、查找……

我突然发现,我对编程比对数学更感兴趣。

上课的时候,老师讲算法的逻辑和思路,我觉得特别有意思。尤其是”递归”和”分治”这两个概念,让我眼前一亮——原来解决问题可以这么优雅!

期末考试,数据结构我考了90分,是专业课里最高的。

从那以后,我开始把更多的精力放在编程上。

大三:发现机器学习

大三上学期,一门选修课改变了我的人生轨迹。

那门课叫《人工智能导论》,是计算机学院开设的一门选修课。我出于好奇选了这门课,没想到它彻底改变了我的方向。

这门课的老师姓李,是个年轻的海归博士,据说以前在Google Brain干过。他的课特别有意思——不讲那些过时的专家系统、知识表示,而是直接讲当时最火的”深度学习”。

他给我们展示了AlphaGo的案例、语音识别的demo、图像分类的应用……每一个都让我震撼。

下课后,我去找李老师,问他:“老师,我想学机器学习,应该怎么入门?”

李老师笑了笑,说:“数学基础你有,编程基础你也有。接下来就是找一个方向,深入进去。可以从吴恩达的机器学习课程开始,然后慢慢做项目。”

我照做了。

大三下学期,我花了整整三个月,把吴恩达的《机器学习》课程从头到尾学了一遍。配套的编程作业我也全部完成了——线性回归、逻辑回归、神经网络、SVM、聚类……每一个算法我都亲手实现了一遍。

学完之后,我发现自己对”机器学习”这个方向特别感兴趣。

大四:决定转行

大四上学期,我开始面临选择。

我们专业的对口方向,要么是继续读数学的研究生,要么是去当数学老师。但这两条路我都不太想走——我对纯数学研究没有太大兴趣,当老师也不是我的梦想。

转行做算法工程师,成了我的目标。

但现实很残酷。

算法工程师的门槛很高——好的岗位基本都要求计算机专业出身,或者至少有相关的项目经验。我一个数学系的本科生,想直接找到算法岗位的工作,难度很大。

我试着投了一些简历,但大部分都石沉大海。偶尔有几个面试机会,也因为”专业不对口”被拒了。

最后,我拿到了一家小公司的offer——Java开发,月薪8000。

虽然不是算法岗,但这家公司至少是技术方向。而且离我的目标更近一步——先入行,再慢慢转型。

第一次面试算法岗,被问到怀疑人生

2019年7月,我入职了。

试用期三个月,月薪8000,扣完五险一金到手大概6500左右。租了一个合租的单间,月租1800,每个月能攒下两三千块钱。

工作内容是Java后端开发——写接口、做数据库、优化性能……跟我想象的”用代码改变世界”完全不一样。

一开始我挺失落的。但后来我想明白了:Java开发也是编程,也能锻炼我的代码能力。而且后端开发涉及到很多数据处理的工作,这对我以后转型算法也有帮助。

于是我开始”骑驴找马”——白天写Java代码,晚上学算法。

每天晚上回家,我会花两三个小时学习机器学习和深度学习。看论文、读代码、跑实验……

那段时间我瘦了十斤,但收获很大。

我开始尝试在公司内部转型。

有一次,公司的产品部门需要一个推荐算法的模块,我主动请缨,参与了这个项目。虽然最后的效果一般,但这次经历让我积累了实战经验。

第二年:跳槽成功,转型算法工程师

工作两年之后,我决定跳槽。

这时候的我,已经有了扎实的算法基础——机器学习、深度学习、NLP、CV都有涉猎;也有了一些实战经验——推荐算法项目、数据挖掘项目;还刷了大量的LeetCode题目,算法能力也有了提升。

我开始投算法岗位的简历。

面试了七八家公司,大部分都挂在了”手撕算法”这一关——虽然我刷了很多题,但现场Coding的时候还是会紧张出错。

后来我去了一家做NLP的创业公司面试。这家公司规模不大,但技术氛围很好。面试官问了很多机器学习的基础问题,我都答上来了。最后一轮面试是现场coding——一道hard难度的题目,我思考了五分钟,然后写出了完整的代码。

面试官看了之后,说:“不错,你的基础很扎实。”

一周之后,我收到了offer。

月薪18000,年薪大概30万。

虽然比Java开发的时候涨了不少,但跟那些大厂的算法岗比起来,还是差了一截。不过对我来说,这个offer已经是一个巨大的进步——我终于成为了一名”算法工程师”。

跳槽后的成长

入职新公司之后,我被分配到了NLP团队,做对话系统的开发。

工作内容包括:意图识别、槽位抽取、对话管理、知识图谱……每一个模块都涉及大量的机器学习算法。

一开始我挺吃力的——虽然理论基础有,但实际工作中遇到的问题比课程作业复杂得多。数据质量差、模型效果不稳定、上线之后各种bug……

但我没有放弃。

我开始系统地学习NLP的技术——Word2Vec、BERT、Transformer、GPT……每学一个新技术,我都会想办法应用到工作中去。

我还开始学习一些工程化的东西——模型部署、在线服务、性能优化……以前我只管训练模型,现在要管整个系统的运行,要求更高了。

慢慢地,我开始能独当一面了。

第四年:加入大厂

2023年,我工作第四年的时候,又一次决定跳槽。

这一次的目标是”大厂”。经过两年的积累,我觉得自己已经有足够的能力去竞争大厂的算法岗位了。

我投了字节跳动、阿里巴巴、腾讯、美团等公司的算法岗位。

面试的过程很艰难。每一轮都要考察:数学基础、机器学习算法、深度学习架构、系统设计、代码能力……每一项都不能有短板。

字节跳动的面试最让我印象深刻。

四面都是技术面,每一面都有一道算法题。题目都不简单,但我都做出来了。面试官问的问题也很深入——从模型原理到工程实践,从业务场景到技术选型,每一个问题都在考验我的综合能力。

等offer的那两周,我每天都紧张得睡不着。

最后,我拿到了字节跳动的offer——高级算法工程师,月薪28000,年薪大概40万。

那一刻,我激动得差点跳起来。

算法岗第三年:又开始刷题了

2026年了,我在字节跳动工作快三年了。

现在的我,是电商业务线的一名算法工程师,负责商品推荐和搜索排序相关的工作。年薪40万,虽然比不上那些年薪百万的大佬,但跟我刚毕业时的15万比,已经翻了两倍多。

工作内容很有挑战性——每天都在跟数据、模型、算法打交道。

我们的推荐系统每天服务几亿用户,每一个用户的点击、购买、收藏行为,都会被记录下来,用来训练和优化推荐模型。

有时候一个模型的优化,能带来0.1%的点击率提升。别小看这0.1%,乘以几亿用户,就是巨大的业务价值。

当然,这个岗位的压力也很大。

互联网行业变化快,不学习就会被淘汰。新的模型、新的算法、新的技术,每年都在涌现。要想保持竞争力,必须持续学习。

算法岗寒冬:2026年还值得入坑吗

干了四年算法工程师,我最大的感受是:数学是基础,但编程才是关键。

很多人觉得算法工程师需要很深的数学功底,这话没错——概率论、线性代数、最优化理论,这些是理解机器学习算法的基础。

但真正在工作中,你大部分时间是在写代码、调参数、跑实验。数学好只是让你理解得更快,但写代码的能力才是落地的关键。

还有一点:转行是可能的,但需要提前准备。

算法工程师的门槛确实不低,但如果你是理工科背景,数学和编程有一定基础,转行的可能性是存在的。关键是:提前学、早准备、多积累项目经验。

转行的那几年是最难的——白天上班,晚上学习,周末刷题。但只要熬过去,前途是光明的。

最后说一句:算法工程师是一个”青春饭”的职业吗?

我觉得不是。虽然35岁危机的话题经常被提起,但真正有能力的人,永远不会被淘汰。关键是你要持续学习、持续进步,让自己的价值跟上市场的变化。

这条路我走了四年,还在继续。希望我的经历能给你一些参考。

共勉。


关联阅读