【经验分享】跨专业找优化方向实习——我在德国弗劳恩霍夫研究所的八个月

【经验分享】跨专业找优化方向实习——我在德国弗劳恩霍夫研究所的八个月

从课堂的学习到正式的工作,你可以一蹴而就,但也能以实习为过渡,以一个学生的身份获得对工作的认知。


本文作者:格子信仰
文章发表于微信公众号【运筹OR帷幄】:【经验分享】跨专业找优化方向实习——我在德国弗劳恩霍夫研究所的八个月
欢迎原链接转发,转载请私信 @运筹OR帷幄 获取信息,盗版必究。
敬请关注和扩散本专栏及同名公众号,会邀请全球知名学者发布运筹学、人工智能中优化理论等相关干货、知乎Live及行业动态:『运筹OR帷幄』大数据人工智能时代的运筹学

我目前在德国留学,是一名自动化与控制工程专业的研究生。从2018年四月到年底,我已经在德国弗劳恩霍夫的附属研究所(Fraunhofer-IOSB)的优化组工作了八个月—— 三个月的实习生职位( Praktikum),五个月的学生工职位(HiWi)。

以自动化专业的背景,我是如何找到优化相关的实习职位,实习内容是什么,在德国实习生和学生工有什么不同 ? 通过这篇文章,我想和你分享此番经历。

如何确定优化方向?

对于优化的兴趣,起源于校内的专业课程,经过相关研究课题的发酵,同时在其他领域做了尝试后,发现我想在优化这个领域中更深入地学习。

我的专业是德语授课制,课程分为专业必修课、方向必修课、非专业选修课和本科补课,每门课程包含理论课(Vorlesung)和实践课(Praktikum)。而动态优化是其中一门必修课程,它让我对优化问题有了基本的概念。在同一学期,我还修了微观经济学和基础市场学。在这些课程中,我们解决了一些与实际问题紧密结合的、简单易懂的线性规划问题。这极大地激发了我对优化思想的兴趣。

得益于动态优化这门课不错的考试分数,我去找了授课的教授,想在优化方向找一个课题,为毕业设计做准备。教授提供了一个水网优化相关的课题之后,我一直在学水网建模的软件,看相关论文,这让我在课程的基础上,更深入地了解了优化问题。

与此同时,我在另一位教授手下做了一学期学生工。这是一份数据统计分析相关的工作。或许因为有了对比,知道了自己对优化更有热情。


如何找到实习工作?

在德国找实习的方式很多,比如 Job Center、学校内部招聘网、Linkin 等,而我是直接在公司官方网站上直接搜索的。

在找工作的过程中,同专业同学提供的信息往往直接有效。在之前上课中,和同专业的同学提到,我有意找优化方向的实习,所以他们在聊天中给我提供了研究所的信息。

我找到了同学所说的研究所的官网,搜索到了相关职位,即刻准备了简历、动机信和成绩单,直接发给我现在的 Supervisor,随即收到面试通知。

因为是实习岗位,面试流程只有一轮面谈,面试官是日后指导我的 Supervisor 。问题主要集中在课程中与优化相关的内容、时间安排和上段工作经历。对了,他们也参考了我的成绩单,原话是“德国是授课制,成绩是证明学习能力和态度的一个有价值的参考”。


学生工 VS 实习生?

在我们研究所,工作合同分为实习生和学生工。它们的工作内容大致无差,但工作时间和福利制度上差别较大。

实习生是全职,每天工作八个小时,不包含午休半小时时间,一周五天,参加小组会议,病假需要医生出证明,不能 home office。

而学生工工作时间更灵活。我的合同是44小时/月,但可以自由安排上、下班时间,这样我也有做其他事的时间,且不需要请假。

我所知道的是,德国实习分为义务实习和自愿实习。多数企业实习是没有薪资的,我们研究所支付少量薪资且承担保险。而学生工是时薪制,工资按照学历分级,但不包含保险。

前三个月我是以实习生身份工作,之后转成了学生工。在我工作的研究所,需要提前一个月左右跟 Supervisor 表达出意愿。如果他们有项目预算,就可以顺利转工作合同。

换成学生工后,我的工作时间更灵活,可以安排别的事情。虽然工作时间变短,但由于是时薪制,薪资反而提高了。


工作内容是什么?

在我加入项目组之前,该项目是在研究所自行开发的一个嵌套了 GAMS 的系统上,进行实现和仿真,所使用的求解器是 Cplex。后来,为了提高可移植性,我们将项目中的数据和参数存在 Oracle 中,转用 GUROBI 求解器,用 Python API 进行实现。

但我之前并无使用 Python 和 Oracle 的经验,也未接触过任何求解器,更别说优化问题的建模了。所以多数的时候我是在学习 Python,再学以致用,按照要求写项目相关的代码。

起初 Supervisor 先给了三天时间,让我自己学习电网中的混合整数规划问题(MIP),三天后做了一个报告。后来每隔一段时间,给我一个编程的任务和研究问题,让我穿插进行。在不断学习编程的过程中,优化和简化代码;参考已建好的模型,学习如何写 GUROBI 的语句。

换成学生工后,我研究的优化问题的系统不变,但内容从单纯的编程工作逐渐转成了研究,也慢慢地对该系统产生更多地想法,在这基础上,紧接着就开始了毕业设计。当然我这样的经历也实属幸运,学生工的工作内容慢慢变成做毕业设计。同事中,也有不少也面临做毕业设计,但他们的工作内容和毕业设计的课题大相径庭,所以需要同时兼顾,而我则只用在一个项目中深入。


我的感受

我所在的研究所有正式职工50人左右,学生工15人左右,共分为三个项目组,每个组一个项目经理。我有两个 Supervisor,两人同时指导我的工作。

在实习的过程中,渐渐地我对德国的工作环境有了些自己的感受。

1 主观能动性强

在应聘过程中,研究所对我的主观能动性就有一定要求。进入研究所后,我发现同事们大多也属于主观能动性强的一类人。

仍记得面试中,我向 Supervisor 说出,对于自己没有 Python 编程经验的担心。但她回复道:“你只需要关注招聘启事中所提及的任务,你是否对此感兴趣,别的都可以学,因为你是实习生”。正如她所说,在实习过程中,他们给了我学习的时间和空间,提供了学习的方向,遇到任何问题时也做了指导。

当我以兴趣为导向,去理解整个系统的优化问题,我是充满欣喜的,在工作的多数时候都是动力满满的。对我来说,这既是一个增强专业技能的过程,也锻炼了很多软实力。小到如何发邮件、如何填写各种相关表格,大到如何与同事沟通、如何准时完成任务、如何管理事务等等。

享受灵活性和自主安排时间的同时,同事们普遍自律且自觉性强,多数时候都在有效地工作,极具生产力。

我所在的研究所,大家执行灵活工作时间表。不论是正式员工还是实习生、学生工,每人的工作时间是以总时长为计(小时/月),因此具体每天的工作时间是由大家自主安排的。在工作时间内,同事们就像被安装了计时器一样,何时工作、午休多久、闲聊多久,多数的同事按部就班地遵循自己的时间安排,以保证有效的工作时间,按时完成任务。工作之余,当然也有午休和闲聊。午休的半小时,并不计入工作时间,但我看到的所有人都自觉在起始和结束时间点按规定打卡。闲聊时,聊天内容多与工作和项目相关,倦意消除后,立刻又回到工作。


2 成果保护意识强

不论是代码还是项目的描述文档,抑或其他任何项目相关的文件,都是属于研究者的劳动结晶,在我们研究所,对劳动者的成果保护,尤为看重。

我们整个项目分为预测和优化两个模块。作为优化模块的学生工,我看不到预测模块的完整代码,我所得到的只是预测后的结果。即便是优化模块,我能看到的,也只是和我工作范围内密切相关的代码。在数据保护方面,项目相关代码和文档更是不允许上传到任何公共云端,如 Google Drive 、Dropbox 和 Github。

此外,安装任何软件的时候都需要软件部管理员的权限,且安装路径都是我名下的用户文件夹,即便是 Supervisor 也无权访问。通过虚拟机访问研究所内部的系统,需要登陆自己的专有账号。

研究所也很重视员工在数据安全意识的培训。即便只是实习生和学生工,也需要签保密协议,定期还必须参加一次数据保护相关的的网络课程,且必须在指定时间内通过随附的考试。


3 主动沟通,提出需求

在工作中,尤其是对于跨文化的工作环境中,积极主动地沟通和及时确认对方的需求,都是不可或缺的一环。

在和 Supervisior 的沟通中,我才逐渐知道他们 “先实现目标再不断改进” 的办事风格。

直到实习快结束时,其中一位 Supervisor 一度认为,我不能理解他们的需求,不愿给我转学生工合同。经过不断沟通,我发现,一方面的确是我的德语不够好,并不能完全理解他们每句话的意思,但根本原因是我和他们的思维模式的不同。他们需要的是,我在短时间内提供可满足需求的方案,但并不要求是一个完美的方案。例如初学 Python 时,我写出的代码冗长,所以想不断简化代码,还想尝试新学的语句和库。因此,他们每次来检查成果时,我都还在处于一个改代码的状态,整体代码的可读性也差。后来,我学会先完整地实现功能,进行下一个任务,在做任务中慢慢学习如何简化代码,之后再回过来重构代码。

除了快速迭代的行事风格,老板还要求我具有“独立完成任务”的能力。

项目优化建模的过程并没有任何文档可以参考,我能看到的只是代码。其中建模的思想得靠我自己摸索,如果我不主动提问,他们不会主动跟我解释。当我问一些宽泛的问题,得到的回答也只是你再看看。老板最常对我说:“你是最了解你写的代码的思路,最了解你研究的问题的人,这点上,你应该比我懂”。

积极主动的沟通能让思维的火花碰撞,带来意外的收获。

整个项目由多个模块组成,对于初入行的我来说是复杂的。我反复地向 Supervisor 提问,了解他们的建模思想和实现过程,进而发现了现有模型中的不足,提出了毕业设计中的实现方案。


写在最后

在德国找实习工作,其实是有很多机会的,但需要我们积极主动地去尝试,不怕被拒绝,勇敢地走出舒适区,寻找自己的兴趣点。

在实习的过程中,也会遇到未知的困难,但就像 Supervisor Alex 时常用来“搪塞”我的一句话 “no pains, no gains” 一样,只有自己去解决这些困难,才能真正的成长。


申明:本篇文章由『运筹OR帷幄』整理发布,如需转载请在后台获取转载须知

扫二维码关注『运筹OR帷幄』公众号:

点击查看『运筹OR帷幄』志愿者招募介绍及加入方式

发布于 2019-01-19