首先来一波免责声明:本人纯菜鸡一枚,无相关实习或者项目经验,纯靠一腔热血(?)闯秋招,以下所有分享仅为个人特例及主观感受,不代表任何普适性经验,切勿盲目参考。如有错误,欢迎指正;如有缺漏,我也没法(越来越健忘了属于是)。
就我个人来说,我其实一直都不知道我找工作想做什么岗位,只有一个要求就是做点儿和技术或者理论搭边儿的(不至于和我在学校学的东西交集为空的),拒绝需要大量与人打交道的(比如职能或销售岗之类的?)。众所周知,数学系学生转行的两大首选领域就是计算机和金融。互联网行业里面,开发测试等等我是纯纯外行,纯算法岗的话会但也只会一点儿,什么深度学习cvnlp数据分析之类的我也根本就没入门,更别说这些领域都已经卷成麻花了。金融行业里面,我又不是学金数的,学过的课除了统计能用上,其他的保险投资衍生品也是一点儿不会。这么看来好像除了数学老师也没有其他什么工作能做了。。。
主要的转折点就在上学期和这学期,我选了一些离散优化相关的课,感觉学起来挺有意思挺感兴趣的。再加上暑假开始关注秋招,才发现有个岗位叫运筹优化,好像和离散优化很有关联,这才敲定了这个目标。
此外,由于本次秋招只是想试试水,我只考虑了私企,没有考虑国央企和公务员,外企我也了解不太多。下面主要分享一些我从网上搜集来的以及我自己面试的面经,仅供参考。
至于运筹优化到底是干嘛的,我好像也没办法一言以蔽之(不同行业不同企业的侧重点也不一样),最快的办法就是直接去搜索各大企业本岗位的岗位描述。


学过运筹学或者优化理论(离散或连续)的数学系学生再加上自学补充的计算机技能,应该能大概摸到这个岗位的要求吧,具体更细节的内容可以看下面的面试部分。
-
秋招过程中搜索到的开设运筹优化岗的企业(排名不分先后,包括但不限于)
华为(云计算、2012实验室)、美团、阿里巴巴(达摩院、阿里集团、高德、饿了么、阿里国际、淘天集团、菜鸟、阿里云)、京东、滴滴、蚂蚁、顺丰、美的(安得智联)、宁德时代、杉数科技、理想、经纬恒润、极智嘉……
国内运筹优化相关的企业和岗位确实不多,相关讨论可以参考知乎,行业主要有物流、外卖&打车、互联网、大型制造业等。但有一说一,我在德国也没搜到相关的岗位,搞不懂。。(难道这就是TUM停止了Mathematics in Operations Research项目招生的原因?狗头。。)
学校与行业脱节这句话我深有感悟,特别是作为数学人来说,本科毕业脑袋空空,嘴里一堆群环域模鞅同调同伦亏格理想LipschitzBanachMarkov念念有词,一面试两眼抓瞎只会阿巴阿巴。读了一年多硕士之后,再来看企业的岗位描述终于不是看天书了,至少能看懂一半了,面试除了“这个我还不是太了解”之外也终于有话可说了。进步很大,但也不是太大,课内的知识一是不够广二是太理论,所以,学海无涯,还得自学呀。。。
基础理论这块儿能考察的不多,毕竟也不是学校里的考试,不会让你写证明。这基本就是后面算法问题的基础,所以线性优化、非线性优化、整数规划、组合优化这些课程我感觉都是必学的。
包括但不限于:线性规划、(混合)整数规划、对偶问题、图论、某些经典图论模型的LP formulation and its dual。
-
算法。优化中涉及到的算法挺多的,离散或连续的都有,我在这儿上的这些课,只覆盖了其中的九牛一毛,也不知道其他应届生都是在什么课上学的这些。。。而且这些求解算法,最好每一个都能完全掌握所有细节和变形,如果有实操经验就更好了。
-
精确解算法以及不知道怎么分类的知识点:simplex、ellipsoid、分支定界branch and bound、梯度下降法(各种变形)、拉格朗日松弛法、内点法、列生成法、动态规划、贪心、benders分解、DW分解、KKT条件,等等;
-
启发式算法:模拟退火、蚁群算法、粒子群算法、遗传算法、禁忌搜索、大邻域搜索算法(变邻域、超大规模、自适应)、元启发式算法,等等;
-
-
其他细节问题:算法复杂度、分解子问题策略、增加变量或约束、中间某些过程参数的含义、稳定性、寻找全局最优能力、算法优缺点、适用场景、VRP车辆路径规划,等等。
-
建模。一般就是给一个场景,然后设计合理的变量、约束条件和目标函数,分析问题规模,进行下一步细节分析和优化。另外还会考察实际场景中的运筹问题,比如生产排程、选址、仓储、配送、调度、订单分配、路径规划等等,但是因为这些实际应用模型我基本都没接触过,也没有相关实习,所以面试的时候也很少被问,没有什么经验可以分享的。。
-
其他。偶尔还会被问到非优化类的数学问题,这类问题经常和计算机算法紧密结合,比如概率、组合、二分之类的。尤其是概率题,还挺经常被问到的,但我感觉以数学系学生的素养来说都还是能很快解决。
-
求解器。前面都说的是抽象理论,这块儿就是具体求解了。一般常用的好像是cplex和gurobi,建议自学并上手做点儿项目什么的。
以我对计算机专业浅薄的理解来看,我把找工作所要求的计算机技能分为算法、工程和机器学习。对我们这种非科班的学生来说,面试官们多少还是会更宽容一些(至少表面上是这样。。然后反手就把我面试挂了。。)各位计算机科班朋友看我写的这些问题可能会觉得是小菜一碟,连八股文都算不上,可能属于是大一大二小朋友水平,但是笨人是真的不会呜呜。。
-
-
一般在笔试(机考)中都会考察,当然就是考算法和数据结构。因为这个岗位说到底还是个技术岗,一点儿编程都不会那是铁定不行,第一步机考就跨不过去。不过还好的是,数学系一般都多少会上点儿编程基础课,此外再自己补一补基础算法和数据结构吧,刷刷力扣啥的。笨人因为高中期间有点儿算法基础,所以机考基本都没问题。
-
面试也会问到,大部分也都有手撕代码的环节,都是硬性要求,写不出来的话可能就直接挂了,也有时候是面试官让我自己介绍一个熟悉的数据结构。我被问到的包括但不限于各种排序算法、排列组合+概率、堆、二分查找及变形、高精度加法、图上找环或搜索等等,基本都不难,也有可能是看我非科班所以才问的浅吧。
(也有碰到简单到离谱的题,华为面试求一个数组去掉最大最小值后的平均数,我砍瓜切菜之后面试官还夸我写得快写得好???很难想象他之前经历了什么。。还是因为单纯不想卡我吗??)
-
工程:这块儿我是纯白纸,一点儿不会。。偏偏面试官们又很重视工程能力,光会做数学题有什么用,又不是招数学老师,落不了地等于白搭。。
-
计算机底层:每次面试都会被问到计算机专业课了解多少,包括科班本科三件套、c语言底层、服务器等等一系列我都没听说过的东西。我的回答通通是没学过不知道,理直气壮。。。(学数学已经够累了,再学这么多计算机的专业课我直接重开吧。。)
-
其他语言:Java、Go、C/C++等等,再一次通通没学过不知道。。
-
数据库:偶尔机考会碰到考SQL,我自学的这些皮毛中的皮毛多少也不是太够用,查询语句条件复杂一点儿我就不知道该咋写了。。但要是会数据库的话在面试中应该也挺加分的。。我就无缘了。。
-
机器学习:互联网企业多少还是会问下这块儿东西,一般先让你介绍一个熟悉的模型或者自己做过的项目,然后ta深入问。以我学过的这门课machine learning的内容来看,深度还是不太够,问细节我就有点卡壳了。。我上过的另外一门图机器学习,又过于囫囵吞枣一知半解,连拉通讲一遍大作业项目都勉为其难,又没有时间倒回去琢磨,所以我干脆就没怎么提过。。
这块儿和运筹没什么单独的关系,每个岗位面试都会提这个问题的,看个人经历了,所以没啥好说的,各类经验贴也很多。。
像我这样的呆瓜,建议多找实习积攒实际经验,找不到的话也得自己动手写写小项目什么的,代码能力不行是硬伤。
最关键的是,没有项目或实习,面试官都没有能提的问题,这面试还怎么进行下去。。。(没错说的就是我笨人。。)
这里举两个我被问到的实际例子以供参考,这种场景题五花八门的,我也不知道该怎么准备,可能就是看应变能力和基础是否过硬吧。
给一堆鸡蛋和100层高的楼,需要知道在哪一层楼扔下鸡蛋能刚好打碎,目标是最小化使用的鸡蛋数目(也就是期望)。题目有两个变形,第一是有无穷个鸡蛋,第二是只有两个鸡蛋。题目中还有个隐藏信息,在楼层低的时候如果鸡蛋没打碎,那就是可以重复使用的。
主要思路就是二分法的变形——双层多分法,先把楼层分为N个大区间,从低到高扔第一个鸡蛋,找到目标所在的某个大区间,再在大区间中使用第二个鸡蛋从低到高扔,找到目标。算出这种方法的期望之后,最小化期望就能算出N的取值。也可以算最坏扔蛋次数。
面试官不停地问还有没有更优解,但我在他的半提示半提问的高速轰炸下已经猪脑过载了属于是,上面那个双层多分法的内层还能不能分我也记不住怎么说的了。。。就这样吧,这个场景还挺有意思的其实。
给一条高铁线路,中间有若干个停靠站,假设提供每一段的票价、高铁承载能力和若干名乘客的乘车区间,设计出一个(混合)整数规划模型。(只会纸上谈兵不会实际建模的数学系呆子此时已经傻了。。。)
目标函数我一开始想的是最大化收益,但面试官提醒说高铁作为国家基建来说,并不是把盈利放在第一位的,是不是要考虑输送更多乘客呢,我一听感觉好有道理啊。。。于是目标函数应该是要售出最多的票(车票收入要不要考虑我给忘了。。)。
约束条件中,售出的票就代表乘客一定要成功上下车,高铁承载能力始终是不能溢出的,要允许乘客分段买票(这样有可能会输送更多乘客),等等。把这些条件全部抽象成线性规划形式,我又猪脑过载了。。
最后分析问题规模。这个场景也挺有意思的,但是对我来说好难。。是我太菜了。。
给一个快递场景,有若干快递小哥、若干有时间限制的运单、若干AOI,在综合考虑距离和时限下怎么设计配送策略。这个我完全抓瞎,我从来没接触过快递场景,甚至连AOI是什么都不知道。。这种题目要是没实习过,应该很难会有思路吧。。
非专业问题
不少企业都有安排hr面之类的,也就是behavioral questions。这类问题在网上也有不少经验(什么宝洁八大问),提前挖掘一下自己的过往经历,组织好语言。主要就是要展示自己是个语言表达流畅有逻辑、积极上进、自律不拖延、吃苦耐劳、勤奋好学、有团队协作精神、能抗压能适应环境的六边形战士(哈哈。。)。
面试经验
我一般都在牛客和小红书上搜,感觉信息稍微多一点。但运筹岗又很少,所以。。。自求多福吧。。
-
众所周知秋招一般是应届生毕业前一年左右进行的校园招聘,但对留学生来说还涉及到毕业时间与国内学生不一致的问题。国内各大企业秋招(按24年毕业入职来看)要求的毕业时间一般是23年9月-24年8月。
就我的经验来看,留学生一般可以参加两年秋招,我估算的毕业时间可能在9-10月,看上去好像超过了企业要求,但是硬参加24秋招也是可以的,在网上填资料的时候就卡着要求填(否则简历可能被机筛,当然我也没试过)。
如果收到了offer就申请延迟一两个月入职,私企一般都是接受的(国央企或者银行之类的不好说,我也不了解);如果没有offer,还可以参加25秋招,也就是24年稍晚时候毕业,25年入职(如果中间这段时间闲的没事干,也可以提前进去实习抵试用期之类的)。
秋招一般在8-9月开始(小部分公司会有提前批,提前一两个月左右开始),就可以开始投递简历。然后在9-10月过了简历筛选之后,逐步开始做综合测评、笔试,多轮面试。大概从10月开始缓慢发offer。所以对德区留学生来说,正好是在暑假时间,比较有空闲来准备。
投递方法基本都是官网投递。对于部门又多又杂但却只能投递其中一个的大厂来说,强烈建议去boss直聘,填完资料之后狂撒网去联系想去的公司,同时也会有超级多大厂的hr来联系自己,然后多加几个hr聊天了解一下部门之间的区别,再决定投哪一个。这样还可以走hr的内推通道,后续也方便及时跟进结果。
-
收到offer之后会和企业签署两方协议。国内的应届生还会出示学校下发的三方协议(只有一份),当然了留学生没有这玩意儿,所以约束力大大降低。也就是说,理论上可以和多家企业签两方,不用担心毁约流程之类的。
毁两方涉及到的违约金到底要不要交我也不确定(因为也没给我毁约的机会呜呜),听网上的经验是说好声好气给hr说点儿好话,一般都懒得追究,毕竟没有三方的约束力,实在不想给的话做好被公司拉黑的心理准备之后硬赖掉也不是不行。。
从前面的内容大概也可以一窥笨人的菜鸡水平,这也是我秋招以来最大的感悟——(正如前面提到的)在学校学的知识与行业企业要求的技能十分脱节。我会的理论,工作中用不上,面试官也不问;工作中需要的技能,我在学校学不到。
于是我在两次主管面的反问环节都提问了这个问题,得到的回答可以简单总结为——在学校学的东西确实不是最重要的,工作中更需要的是学习能力、态度和兴趣。工作内容很少能与之前学习的专业完全对口的,而且也会有很多调整,所以学习能力强才能更好地适应工作环境。能在面试中体现自己学习能力强的途径除了学历也就是自身的经验和技术广度深度吧,比如我是数学系的,但如果我额外还学了很多计算机技术,应该就是比较讨喜的。。(当然了,道理都知道,能不能做到就是另外一回事了。。。我反省,手机确实比学习好玩。。)
现在的找工作大环境确实是差,如果自身确实不是实力过硬、手握好几个offer等着挑的话,还是建议多投递、别头铁、适当降低预期、少和别人比较(笨狗落泪。。)。