作者:麦克思不为
知乎:https://www.zhihu.com/people/zhou-zhou-46-79/
不久前,走完选调的面试流程,才想起来写一些东西下来,这一场从七月初开始,到十二月初的秋招,终于要结束了。经历了很多有意义的事情,想趁着现在记忆还有温度,记录下来。于我而言,供反思梳理,往后怀念,也供大家参考,也装装逼,体谅一下,不要喷我。
简单的聊一下背景,某末流985本硕,本科EE,硕士是水货CS。说实话,专业水平真的差。好多以前学的东西,都忘得一干二净,只会些应付面试、考试的渣滓。主要的划水方向还是nlp相关的东西。
拿了一些offer,分行业来讲,互联网:BAT三家算法岗;大类金融:某银行总行管培,某私募量化分析/交易岗,制造业:某安防龙头算法岗,体制:家乡的省会的选调待公示。
简单的总结,能拿到这些offer,最重要的可能还是认真对待加运气使然。
1、我经常会问自己“想要什么”。有比较想要的东西,就了解了解,安排好时间,着手去准备。有时候我会想做个咸鱼,每天混吃混喝,搞点小爱好什么的打发时间。有时候呢,又会有一种自己有远大抱负的幻觉。
2、我也常期望自己,用开放包容的心态去对待世界。之所以这么说,是因为有时候个体的局限,在看待问题的时候,会有视野盲区,而开放的心态可以接触更多的事物,收获许多美好的体验。比如我的好多的offer完全是想多体验一下不同行业的感觉而参加的,确实是浪费了很多时间,不过从我的角度来讲,接触到了不同专业的小伙伴,简单的了解到行业的概况,让我是收益良多。恰恰是这些体验,让我理解了研究生这三年不是浪费时间,而是给你更多的机会和时空让你思考、体验、选择。
3、大多数时候,我会有无意义的焦虑,可能因为太菜,又很贪心,才会搞得自己很焦虑。如果还有机会,我会多花点时间,选择一件喜欢的事情,去尽可能的做好它。
本来下笔有好多想写的东西,但是我看网上都大同小异。在实际操作的过程中,遇到了问题就多谷歌,多百度,应该都能解决。有几点我觉得是我在秋招当中最为吃亏的,同样也是我在秋招之前网上没有看到过类似的经验的。
1、不盲目跟风、应开拓眼界、特别是行业的选择,尽量选择适合自己的才是好的。
对于秋招而言,专业不代表你选择的行业,具体一些,对于计算机专业而言,其实有好多的行业都可以选择,不同的行业同样存在着很多很好的机会。如果有机会四处逛逛,就会发现,各种职位对计算机都非常友好,琳琅满目,大开眼界。盲目的跟风只会钻进牛角尖,跟大家一起在一个跑道上残忍厮杀。以我自己经历来说,迷迷糊糊的走过了自己的求学生涯,大部分时间都是跟风去追求大家觉得好的东西。比如高中毕业,当时建筑、土木、金融火得一塌糊涂,就想着去这些专业学习,要不是分不够我估计我现在应该在工地。到了大学,和大家一起追求高的绩点、各种title,反而忽略了一些很重要且很基本的比如,知识体系的搭建,基本的解决问题的能力,对未来的思考等等。回到找工作,最开始也是盲目跟风选择互联网,一切的准备都是为了进所谓的大厂,不思考喜欢什么,擅长什么,未来又想要什么样的生活状态和职业生涯。反而秋招结束,自己找到了还算喜欢做的事情,苦于没有相关的背景、经历,无法进入这一领域顶级的平台,只能谋划着曲线救国。
2、求职的时候,要注意工作内容。
我非常认同平台的价值,但是也希望各位在求职的时候,多放一点注意力在工作的内容上,两者取trade off才是最好的。还是讲自己的例子吧,最开始没有一个offer的时候,为了求稳,选择了一个平台大,hc稍多,但是工作内容不熟悉的部门投递简历,最后拿到了offer,再去了解工作内容,又感到很失望。这样不仅是浪费了两方的时间,最让我懊悔的是错失了获得同一个平台其他岗位的机会。
3、最后一点的就是,耐心,耐心,耐心。
科学的准备,广泛的收集信息,没有不成功的道理。基础的简历准备,基础的项目陈述,基础的算法题,基础的数学物理,基础的沟通交流,基础的面试技巧都网上太多太多了,这些同样的非常重要,在某些具体的例子中,这些才是决定你能否拿到offer的关键。
我暂时还没法定义一个好的算法工程师应该具备哪些素质, 但是一个好的算法工程师求职者应该有的素质我可以简单的说一些。
1、基础的计算机知识。我本身是EE转的CS,上研究生之前极少接触到CS相关的课程,因为推免的原因,更是没有压力去学习基础的计算机知识,很是吃亏。在后来的应聘、实习的过程中,才愈发的觉得基础的重要性。虽然人人都说基础重要,但是我看没几个人说清楚了的。我认为基础应该是你对整个计算机科学的认知,它包含了几个问题,计算机是怎么组成的?(机组原理);计算机科学研究的对象是什么?(算法);计算机之间的连接是什么样的?(网络)等等。举个例子,我有些实习并不是做纯算法的研究的,更多的是一些杂活、开发的工作。每当这个时候,遇到问题了,相比较与基础好的同学,我可能会花费更多的时间去解决问题。在私募实习的时候,为了把自己的策略上线,必须要从头到尾的自己去完成闭环,考虑很多开发的问题。虽然策略才是让你挣钱的核心,但是没有其他的东西,你的策略就是纸面上的想法而已。
2、leetcode。秋招开始的时候,我对leetcode认知实在是太浅薄了,认为是无意义的体力活,所以就没有放精力在刷题上面,导致我错失了很多好的机会,也限制了我后面offer的上限。后来了解了一下leetcode之后,才觉得这个东西真是好。除了包含算法/数据结构两个大类,还有数论/组合数学/图论/概率/最优化理论多个学科的知识,这些知识在其他的学科可能只能在工程实践的时候才会逐一的印证、再会有深刻的理解。但是leetcode给了学计算的同学一个更好的机会去运用、理解自己学的知识,多多益善,不要拘泥于单纯的code,更多的思考很多题目背后的知识点。如果有人早些告诉我这样转行的leetcode的内涵的话,我早就开始刷了。
3、项目。得益于在某大厂的实习,我在nlp的短文本匹配问题上做了很长一段时间的工作,这段经历让我搞明白了几个事情。第一个,解决某个问题这件事情上,自己路要自己走,不要指望别人帮你。第二个,不要抱怨实验环境差,蹉跎了大好时光。第三个,定义好问题,系统的调研问题,找到业务中实际的痛点,根据自己的理解和leader的帮助确定解决痛点的方案,然后制定好评价指标,一步一步的迭代完善。这三点绝对是血泪教训,每一点都是我花了好长的时间才明白的。每次我跟面试官讲我的项目的时候或者他问我项目的时候,我把自己的心路历程讲给面试官听后,我觉得都得到了很好的反馈。同样,一些开放性的问题上,我给出的解决方案同样是遵循这样的思路,面试官也很受用。这也是我为什么code这么菜,还能拿offer的主要原因之一。
4、基础的数学,不得不啰嗦的强调一下数学的事情。不管求职还是工作,要么拼爹,要么就是拼实力。数理基础好真的是可以为所欲为。我认识的小伙伴,凭着数理和名校背景真的是想怎么选行业就怎么选行业。做量化可以去幻方,做算法可以去大厂的核心,还能去制造业,基金,证券,银行,教师,公务员……
以上都是应对面试,面对考官需要呈现的东西。要想做一个好的算法工程师远远不止这些,我自己也没搞明白。可以参考一下知乎上的一些回答,讲得比我明白,比我好。
其实我觉得秋招里面走了好多弯路,最感谢还是好多帮助我的女票、同学、朋友、还有各路大佬。中国好室友,在我苦苦挣扎的时候,指出我的的盲区,还提了一些很实用的建议。还有一直帮助我的某司人力小姐姐、小哥哥(们),面对我琐碎的咨询和请求都没有表现出不耐烦,帮我改简历,指导我面试。还有很多大佬,包括互联网领域认识的大佬,银行认识的大佬,私募认识的大佬,不管是自己认识还是经人介绍的各位大佬,解答了我好多的问题,包括工作内容的咨询,offer的选择,有时候会聊聊自己感受,甚至职业规划,人生阅历,行业看法等,受益匪浅。虽然你们可能看不到,但是还是要鞠躬感谢!
我想以上这段话可能是本文最有用,也是最重要的部分了了。与这些小伙伴的认识,大多数源于自己期望开放的心态,同样,这些小伙伴愿意帮助一个与自己没有多大关系的网友/朋友同样是源于他们各自开放的心态。有时候确实会有许多具体的问题,可以找好的资料,也可以找信赖的人咨询。不要怕,大胆的去求助,客气礼貌的说话,大多数人都愿意给你提供一些个人的看法的。
往后的生活以及职业生涯都还有特别漫长的路,不要急,找到自己的方向,保重自己的身体,然后剩下的就看你自己了。
本文由作者授权AINLP原创发布于公众号平台,欢迎投稿,AI、NLP均可。
推荐阅读
我们建了一个免费的知识星球:AINLP芝麻街,欢迎来玩,期待一个高质量的NLP问答社区
关于AINLP
AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLP君微信(id:AINLP2),备注工作/研究方向+加群目的。