
一、知彼-充分调研
1.1 调研公司
从小策前面整理的文章 目前都有哪些公司招运筹优化算法工程师?可知,互联网、物流、航空、汽车等行业的公司均对运筹优化算法工程师有招聘需求,说明这个方向的就业范围是比较广的。"知己知彼,百战不殆",为了避坑以及拿到理想offer,最好提前对目标公司进行“背调”,包括公司的前景、薪资水平、工作氛围、黑历史等内容。对于公司的前景,可以结合以下几点进行综合判断:公司主营/重点业务的发展空间、财报(对于上市公司)、近年来的营收水平、国家政策、他人的评价等。对于薪资水平/工作氛围/黑历史,可以基于脉脉、offershow、996.icu(加班是否严重)、爱企查等平台搜到的信息判断。
1.2 调研职位
通过前面的调研可以筛选出N个目标公司,接下来是寻找它们的招聘岗位以及分析岗位所需的技能。招聘岗位的来源,主要有几个:熟人介绍、企业招聘官网/公众号、脉脉/猎聘等职场交流/招聘平台。考虑到不同行业、公司的业务存在差异,因此具体的招聘要求以及侧重点肯定也是不一样的。例如饿了么/美团/顺丰的主营业务偏路径规划以及调度,因此通常需要候选人对类vrp问题有较好的理解以及优化经验,而对于杉数科技/悠桦林这类toB企业,由于涉及的业务比较广,通常需要候选人能快速上手各类运筹优化模型。此外,还有部分公司在探索结合机器学习的运筹优化求解加速业务,它们通常会同时考察候选人运筹/机器学习这2个方面的掌握程度。对于具体的岗位需求,可以参考下面列的3个岗位:硬技能 => 较好掌握运筹类模型 + 熟悉求解器的使用 + 熟悉python;软技能 => 沟通能力 + 学习能力 + 责任感;
【岗位1职责(来自公司招聘官网)】 1. 与项目及产品团队紧密合作,理解业务/产品背景与需求; 2. 运用运筹学相关技术,对海量数据进行处理和分析,挖掘相关信息,建立优化模型,设计优化求解算法,优化核心决策; 3. 跟进运筹优化相关技术的业界发展,并合理的运用到实际产品中; 4. 严格遵守项目进度管理机制,按照项目上线时间表,有序推进项目算法研发工作; 5. 对项目中使用到的算法技术进行归纳整理,完成相关技术沉淀工作。 【岗位1要求】 1. 2年以上相关经验(硕士及博士学历者可放宽工作经验要求),有运筹学/工业工程/系统工程等领域经验者优先; 2. 熟悉各类型的运筹优化模型,如网络流、TSP、VRP、选址、排产排程等,了解各模型的使用场景与运算效率,能选择合适的算法模型满足客户需求; 3. 能熟练调用优化求解器及相关接口,如CPLEX,Gurobi,SCIP等,或完整实现过启发式算法的开发; 4. 能灵活结合问题自主设计、开发相关求解算法,并根据结果分析进行针对性的结果、效率优化; 5. 熟练掌握Python/Java语言,能够熟练使用Numpy、Pandas对数据进行分析、处理、可视化展示等; 6. 具有一定的工程化基础,能对模型、算法、场景进行一定的抽象和标准化,有代码封装的能力; 7. 具有较强沟通能力,学习能力、自我驱动能力、责任感和团队协作能力。 |
【岗位2职责(来自liepin网)】 负责运筹优化算法、智能优化算法、模拟仿真技术在供应链业务中的订单分配、库存计划、生产计划、自动排程等优化类场景的应用落地。 【岗位2要求】 1.数学、统计学、运筹学、管理工程、工业工程相关专业,硕士及以上学历优先。 2.精通Python、Java、C++其中之一。 3.熟悉数据挖掘流程及闭环流程。 4.精通启发式、精确等运筹优化相关算法及应用场景。 5.有智能供应链运筹优化类大型项目实战经验者优先。 6.熟悉制造业/零售业供应链、工业4.0、智能制造相关领域业务逻辑优先。 |
| 【岗位3要求(来自liepin网)】:1、使用强化学习和运筹优化技术提供实际问题的优化方法和解决方案;2、对实际问题进行抽象,设计开发强化学习组件或运筹优化组件,降低解决方案的实现复杂度;3、持续提升强化学习算法或运筹优化算法可用性和易用性,降低使用门槛; 4、创造更有价值的强化学习或运筹优化产品,通过技术创新推动产品提升或客户业务增长。 【岗位3任职资格】 1、人工智能、数学与统计学、计算机科学与技术、自动化等相关专业;5年以上相关开发和项目经验;2、能基于数据和真实需求,对业务问题进行定义、分析、方案制定及相关算法实施;3、熟悉主流运筹优化/强化学习算法,有充足的运筹优化、强化学习实践经验; 了解运筹优化/强化学习模型从训练到部署全流程业务;4、有较好的数学基础和扎实的编程基础,熟练掌握Python,C++等一种常用编程语言, 熟悉Linux基本操作;5、有英文文献阅读理解能力,较强抗压能力和学习能力。 加分项:1、具有强化学习或运筹优化在工业领域落地的项目经验;2、熟悉容器化、编排工具(Docker 、Kubernetes)、算法平台经验者优先;3、具有分布式算法经验者优先。 |
二、知己-自我梳理闭环

调研面经:
收集信息:从牛客网、知乎等平台收集相关公司/岗位的面试经验;
分类整理:对面经进行分类整理;
打磨项目:
STAR原则:从Situation(背景)、Task(任务)、Action(行动)和Result(结果)这4个方面对重点项目进行总结;
突出亮点:技术难点、项目收益等;
相关性排序:按照跟当前岗位招聘要求的相关性对不同项目进行排序(相关性高的放到前边);
夯实基础:
理论知识:运筹优化、启发式算法、机器学习(加分点)等;
编程能力:求解器的使用、启发式算法的开发及使用、python数据分析、c++提速(加分点);
阶段性评估:
针对简历:找熟人帮忙评估下简历的优缺点;
针对项目:提前设计面试可能会问到的问题 & 不断完善合理的回答;
针对基础知识:将面经以及提前设计的知识点整理成“考卷”,每隔1段时间评估下正确回答的比例;
三、百战不殆-面试闭环

对于运筹优化算法工程师这个岗位,拿到正式offer前通常需要2轮技术面以及1轮hr面,每轮面试的持续时间大概在30~60分钟,要在这么短时间内让面试官认可自己不是一件简单的事。再加上大环境不好,企业放出来的岗位本来就比往年少,因此要特别珍惜每次宝贵的面试机会。对于校招同学以及很久没有面试的社招同学,建议先找熟人进行模拟面试以及按照意愿程度将正式面试阶段的投递岗位分为3类:意愿度较差、意愿度一般、意愿度较强,然后按照如下的步骤进行分阶段面试:
阶段1:模拟面试(找熟人) => 获取反馈 => 面试复盘 => 查漏补缺 => 完善简历;
阶段2:投递简历 => 正式面试(意愿度较差的岗位) => 获取反馈 => 面试复盘 => 查漏补缺 => 完善简历;
阶段3:投递简历 => 正式面试(意愿度一般的岗位) => 获取反馈 => 面试复盘 => 查漏补缺 => 完善简历;
阶段4:投递简历 => 正式面试(意愿度较强的岗位) => 获取反馈 => 面试复盘 => 查漏补缺 => 完善简历;
阶段5:拿到满意的offer;
对于上面这个策略,很重要一点是根据面试反馈查漏补缺以及完善简历,让自己在一场场面试中不断成长,从而提高拿到满意offer的概率。至于面试反馈,可以从2个方面获取:一是面试期间开启手机的录音/视频功能,面试结束后可以根据录制的内容复盘,复盘时可以重点关注下自己回答问题时的语气、语速、质量、完成度等内容;二是在面试结束前,诚恳地请教下面试官自己在这场面试中做的不好地方,只要前面的沟通还算顺畅,大部分面试官还是愿意回答这个问题。
"知己知彼,百战不殆",小策祝读者都能找到满意的工作~

