算法工程师养成实录:学习+实习+秋招总结

作者: 6b440373157d | 来源:发表于2017-12-21 11:22 被阅读151次

    写在前面

    本人万年潜水党。在牛客网暗中观察了很长时间,也得到了很多有用的信息和帮助。一直计划最后写一篇文章回馈牛客。最近一段时间就是忙完了秋招忙论文。然后就是忙着玩。拖到现在终于赶在2018年到来之前静下心来完成这篇分享。内容不止是面经,也包括这一年来为找工作而做的各种事情的总结。也许经历和心得跟大神们相比还差得远。但也希望对牛客的牛友们和学校里的师弟们有所帮助~

    LZ背景

    简单介绍一下个人情况。双普通985,一直在家乡上学。本科计算机科学与技术专业。本科期间比较贪玩,成绩一般,动手能力尚可但是也比较一般。所以大三的时候,都没啥勇气参加秋招试试水。直接闷头准备考研。考研也是图方便直接考了本校。研究生念的软件工程专业。硕士期间贪玩的本质并没有改变,打了将近1400局dota2,军团再临的时候还去拯救了一波艾泽拉斯。但是相比之前来说更懂得时间管理。玩和学之间的比例控制也做的比较好。一直在想办法加强自己的动手能力。一个明显的区别就是本科期间的大作业都是抱着舍友大神的大腿在混。研究生期间的项目基本上都是自己带着同学去做。

    因为本科毕业论文是机器学习方向的内容。从那时候开始入门,研究生也负责了这个方向的项目。所以说选择这个岗位去找工作也算是水到渠成。运气比较好,因为我们普通人的本科毕业论文的方向是学院随机分的。

    总的来说就是研究生的几年期间确实提升非常大。一方面是来自实验室里负责的项目,另一方面就是自己去想各种办法进行提升。硕士期间对我最大的意义也就是给自己争取了进步的时间。研一,上课+完成大作业+自己补充算法和数学方面的基础知识。研二,实验室做老师的项目+参赛+找工作。研三当然就是完成毕业论文,再加上给以后工作做做准备。

    总结自己就是懂得劳逸结合,心态比较好,可以给自己创造好心情去学习,对目标比较有毅力。

    后面的分享我就按2017过完年以后的时间轴来写。也方便我去回忆~

    春招准备

    过完年后就开始进行实习准备。当然学习是需要持续的,这一段时期相当于对各方面的总结和突击。其实在学习的时候也主要是这几个方面,实习求职的目标就是机器学习算法工程师。准备的内容分为以下几个方面:

    1,回顾总结之前做过的项目。包括实验室负责的项目,自己做的项目里值得说的部分。起码自己的项目要非常熟悉,必须经得住面试的考察。面试官可能会从各种角度对项目进行提问。

    2,在线OJ刷题。那一阵在实验室午饭之前的时间基本都是用来刷题了。以leetcode为主,还有lintcode。题目难度easy和medium为主,很少量的hard。语言python为主,少量的java。按照算法工程师的要求,Java,Cpp至少会一门,python也需要会。我个人感觉公司对实习生的要求就是“会”,而不是“精通”。

    3,算法基础知识的准备。各种参考书籍和资料讨论区的大神们都总结的很多了。简单来说就是《统计学习方法》,周志华老师的西瓜书等等。有需要的同学我们再讨论。对经典算法有推倒的能力。对部分算法有自己手写实现的能力。这个可以参考《机器学习实战》和《集体智慧编程》(应该是这个名字。。。)

    4,机器学习包,各种框架的了解和使用。这里给大家推荐一位大神,对各种框架的入门很有帮助。莫烦:https://morvanzhou.github.io/。优酷上也有他的自频道。

    5,准备一份简历。简历怎么写也有各种攻略我就不再赘述了。然后找地方照个好看的证件照。这样效果会好一些。像我的证件照就被女朋友评价照瘦了50斤。。。

    6,选择自己的目标公司。没有目标去海投的话容易导致精力不足。

    嗯,想起什么的话再补充。

    春招

    说了这么多,其实我春招只投了一家。就是找本科的哥们内推的阿里巴巴。跟他在一个部门,属于阿里移动事业群。岗位就是算法工程师,机器学习。其实不是我其他的不投,都有一些原因。。。比如说腾讯我在招聘列表里没有找到机器学习,直到过期了才发现机器学习在基础研究里面。而百度的话因为我们老师对百度有一些意见,去实习的话害怕暑期实习找老师商量的话比较麻烦,也就没投。然后还有呢,就是前辈们介绍的实习尽量去大厂。所以最终只投了一家。简单介绍一下面试的经历。

    大约是3月1日内推成功。投简历一周之后,杭州的hr打电话安排了面试时间。

    一面

    技术面,电话。

    时间比较久远,面试的具体题目大概记不太清了。能回忆起大概以下内容:

    1,自我介绍

    2,讨论了实验室负责的项目。很细致。从项目解决的问题,为什么要这么做,有什么意义,用了什么技术什么算法等等。

    3,询问你熟悉什么算法。介绍一下,并就此一直讨论到答不出。

    4,讨论了神经网络。尤其是BP神经网络。反向传播的细节等。

    5,一道具体场景题目,怎么使用机器学习的技术解决这个问题。

    6,你有什么问题要问我?

    大概就是这些。大概50分钟左右。我也是第一次做这么长时间的电话面试。相对来说也比较紧张,不过面试官会引导我去回答问题。答不出的问题也是会换一个角度进行讨论,还会进行提示。在后面也是消除了紧张感。

    二面

    一面之后的第二天,HR打电话安排了二面。因为实验室电脑没有摄像头,所以还是约了电话面试。二面的大概有以下内容:

    1,自我介绍

    2,讨论了KNN。讨论有关维度爆炸的问题。

    3,讨论了SVM。SVM的推倒,原理,最优化方法。为何SVM可以解决分类问题。

    4,算法题。由于是电话面试不能写代码,所以就自己想,然后讨论思路。

    大概45分钟左右。相比于一面,二面的面试官(应该就是团队leader)给的压力比较大。相比于一面,表现也不算非常好。

    HR面

    二面之后就是一段漫长的等待,漫长到我都觉得肯定挂了准备复习备战秋招了。结果4月底突然接到了HR安排面试的电话。然后第二天就进行HR面。听说阿里的HR面也非常关键,所以当时也很紧张,准备了一些问题。

    最终面试的时候反而比较轻松。就像聊天的一样。问题都是HR面试的一些常规问题。也让自己评价了自己前面技术面的表现。

    HR面试大约一两周之后,部门的HR打电话沟通了实习期间的福利待遇和确认了实习录用意向书。

    参加比赛

    4月份的时候参加了JDATA数据大赛。由于当时处于面试之后等消息的阶段,也不知道暑期能不能去实习。也觉得自己简历内容不够丰富,就参加了京东举办的这个比赛。组队的时候由于是想自己多锻炼,所以就没有再找算法方面的队友。女朋友和另一个队友负责的都是特征方面的工作,主要是想新的特征。我一个人负责数据处理,特征提取,数据集构造,模型训练和调参这些工作。

    最终成绩比较一般。离优秀奖还差着几名。不过在整个比赛期间,我还是感觉到了很大的进步。包括在特征,模型和算法,调参方面都积累了很多经验。从刚开始参赛时候的跌跌撞撞,每天提交的时候靠天吃饭。到后来每天写函数提取新的特征,加入到数据集里,训练新的数据去提交。每天的成绩进步是可以预见到的,并且知道为什么会进步。最后几天成绩也一直在上涨,由于时间不够,而且一个人的精力毕竟有限,所以成绩也就止步于此。

    现在的比赛非常多,有精力的同学们都可以去尝试一下。成绩只是一个方面,从中得到的锻炼是非常有益的。

    暑期实习

    整个暑期就在阿里进行暑期实习。实习期间的具体经历我就不写的那么详细了,有感兴趣的同学可以问我。

    其实跟我之前想象的不太一样。由于数据保密和安全方面的要求,算法方面的实习生是无法接触到生产环境的。整个实习期间主要负责的工作就是对广告行业的了解,读相关行业的paper,做一些算法和策略的实验,再有就是负责一些调研方面的工作。主要的提升和锻炼就是看到大公司里算法工程师是怎么工作的,以及从身边的同事身上学习。周围的同事,尤其是我的mentor都是很nice的人,技术也都很强。在大神们周围实习,就是发现并弥补差距。当然同事和领导们对实习生也很照顾。从校园到工作环境的转变是巨大的,实习就给了我们这个提前去接触和适应的机会。实习之后回到学校,也还有时间去在不足之处多努力。

    从八月份就开始了实习转正的流程。转正一面是我们大部门的领导,主要是介绍实习期间的工作。然后就是聊天。主要是大佬向我介绍智能营销平台以后的目标和发展。后面主要是大佬在讲我在听...转正二面是阿里妈妈的大佬,也是聊了聊实习期间的工作。然后就是聊聊天。聊了一些关于淘宝和阿里妈妈的话题。总体气氛也比较轻松。然后就是HR小姐姐的三面,依旧是聊天。实习转正面试就没有了电话面试的紧张感和距离感,聊得都还比较开心。

    最终结果也很开心,9月3号拿到了秋招的录用意向书。9月6号离职回到学校。说实话这也是我研一在展望工作的时候,能展望到的最好的结果之一。由于集团规定递交了三方才会发offer,学院因为一些原因三方发的也比较晚,所以大概到11月底才确认了正式offer。

    回到学校以后,放弃了秋招还没开始就已经结束的感觉~还是参加了秋招投了一些公司。一个是因为和女朋友一起找工作,为了将来起码能去同一个城市工作奋斗。另一个是周围的同学朋友都在找工作。实验室的项目基本已经停滞了。闲着也是闲着。还有就是闲在实验室里会看起来像个异类...按照时间前后介绍一下秋招的面试经历。

    秋招


    蘑菇街 算法工程师-机器学习 offer


    一面 技术面

    蘑菇街广告算法团队的面试官。首先是自我介绍,聊了聊对计算广告行业的理解,简单介绍了实习期间的工作。讨论了LR的相关问题,这一部分讨论的比较详细。然后讨论了正则化相关的问题。

    整个时间大概半个小时。

    二面 技术面

    应该也是相同团队的面试官。针对简历上的项目问了一些问题。讨论了有关分类结果校准的一些问题。讨论了FaceBook的那一篇有关计算广告的经典文章。时间同样大概半个小时

    三面 CTO面,视频面

    蘑菇街的CTO面。我刚开始以为要在线写代码之类的。结果就是讨论了一些简历上的项目。然后就是聊天。让我提一些感兴趣的问题,然后讨论。大概不到二十分钟。


    百度算法工程师-机器学习一面挂


    第一次在西安去跑招聘会参加的面试。凤巢的面试官。由于那时候刚从北京回到西安。没有对面试做什么准备。被面试官虐的很惨。每一个问题都是一直讨论到答不出。

    大概问题有:广告系统的理解。SVM/LR的损失函数,推导。现场手写代码。简历上写会什么就问什么。

    那是候确实还没复习,也被面试官看出来了。总之表现的很不好。


    腾讯 技术研究-机器学习 二面挂


    一面 电话面

    IEG的电话面。提前批投的是CDG,简历被IEG捞起来进行的面试。

    面试问题有:简历的上项目的提问,实习工作的简单讨论,LR的详细讨论,正则化问题,调参方法,XGboost的讨论,对游戏AI的理解,对AlphaGo的理解。

    二面

    二面是现场面,面试部门变成了MIG腾讯地图的部门。这中间是什么操作我还不是很了解...

    面试问题:简历上项目的提问,LR的讨论,SVM的推导,手写代码:第一个是关于二叉树的遍历,不能用栈,不能递归。第二个是链表本地倒置。然后讨论了地图算法相关的问题。

    由于临时换了部门准备不足,地图算法基本不懂。手写代码表现也一般。最终没过。


    招商银行  人工智能研发 offer


    招商银行人工智能研发部在学校的专场招聘会。当时去现场投了简历


    一面 现场面

    一面在招商银行的西安分行。三位面试官。主要是就简历和简历上的项目进行讨论。然后主要讨论了Xgboost,包括优点,损失函数,最优化的方法等。然后主要由我对想要了解的东西提问。

    二面 现场视频面

    二面同样在西安分行。跟深圳总行进行视频面。本来应该也是三个面试官,结果轮到我的时候只剩一位还在。就感觉很草率。面试问题记不清了,就是常规问题简单的聊了聊。

    最后offer发下来的时候,是总行的领导带着offer直接过来。把交大录取的七个人叫到分行。签的话当天就要签,违约金一万。给人的压力很大。最终七个人里应该只有一个人签了。其他人都走了。后来又打电话联系过,也并没有去。还有一点就是在招聘的过程中,一直给我们强调package是这个岗位特批的,是招商银行从没给出过的。但是后来也听说了比这个package大得多的offer,可能是分行的工资跟总行不太一样。另外月工资之类的情况比较讳莫如深,可能是传统银行的做法。

    京东算法工程师-机器学习offer


    一面 技术面

    一面面试官感觉很年轻。聊得也比较轻松。聊了学校的项目。LR的损失函数,推导,优缺点。机器学习方面的经验。京东的比赛。终于有人聊到这个比赛了。调参的心得,正则化的作用。最后介绍了他们的部门和工作。

    二面 技术面

    二面应该是部门的领导。面试的前十五分钟聊了做过的项目和京东的比赛。然后后面就开始聊天。聊了很多东西,也是我整个秋招期间最开心的一次面试。聊得也非常的愉快。

    三面 HR面

    正常的HR面。

    京东也是所有拒掉的offer里觉得最对不起面试官的一个了。首先是跟面试官在面试的时候就聊得很开心。还有在后续的沟通中面试官也给了足够的耐心和尊重。并且offer发下来得知对薪资不满意之后还加了一次薪。当时也是在回复的时候写了一封充满愧疚的邮件。


    今日头条算法工程师-机器学习 一面挂


    面得比较草率,也没怎么准备,也是霸面。主要是陪妹子和同学去。

    面试官是做内容推荐的。广告部分的内容他没兴趣,内容推荐的有些做法我不懂,就聊不到一起。然后就是手写算法,聊了XGboost,聊了头条使用过程中内容推荐的一些case。

    挂的没有悬念。


    微众银行 数据挖掘 offer


    微众银行来的比较晚。是在酒店里一面完了,本来回去跟妹子还有同学吃火锅了。结果吃完了打电话又叫回去二面。一直面了一天。

    面试的内容就是就笔试时候的一个问题进行了深入的讨论。是有关商场销量的一个问题。

    二面的时候还是早上的面试官。几个候选人和他坐在一起聊天。聊了很多东西。天南海北的聊。然后跟部门的老大打电话面试。部门老大因为我们队微众的了解不够比较不满。

    最后还请我们吃饭~我因为妹子等着先走了。

    后来也正常进行了HR面。

    最终没有去的原因一个是因为工作内容偏业务比较简单,可能会失去竞争力。另一个是钱给的比较少。可能是因为投的是数据挖掘不是算法工程师的问题。


    找工作心得总结

    先总结一些找工作期间的心得:

    1,简历一定认真做。这是所有面试官认识你的入口。千万不要简历造假,不少面试官可都是照着你简历上写着会什么,一条一条问。

    2,能实习尽量实习。提前体验工作的状态。转正也相对直接秋招简单一些。所以就要有提前规划,提前开始准备。招聘大战也正式提前到了头一年的春天。另外实习补贴也能给毕业旅行什么的攒一点经费。

    3,能内推尽量内推。这个就显而易见了,很多内推还是能免笔试的。

    4,基础要扎实。不管是科班还是转专业,基础都是非常重要的。包括基本的数据结构与算法。机器学习的经典算法。

    5,一门或几门熟练的语言。用有嘻哈里的一句话说就是语言就是程序员行走江湖的武器,你如果连武器都没有,还怎么行走。

    6,多上牛客网看面经~看看前人的经验。

    7,面试时,我觉得缘分或者说运气占了很大一部分。并不是你很期待进入某家公司,认真的准备,面试时就会有好结果。也许最后收到的是一个不经意的offer。所以面试之前不要给自己定太过严格的目标。目标应该是一系列公司,在面这里面的公司时,都全力以赴。最终的结果就看缘分。

    8,心态要好,失败了也不要气馁。多总结,就像中学时候总结错题一样。公司很多,可以尝试的机会也很多。

    我的2017总结

    今天先施工到这里,后面有时间继续施工~

    ps.如果有什么问题可以留言或者私信我,或者联系我微信baihao8904。看了这么久牛客,也希望能帮大家解决一些问题。

    转载的话也请提前联系并标明出处~

    本文来源于牛客网

    作者:柏昊

    相关文章

      网友评论

        本文标题:算法工程师养成实录:学习+实习+秋招总结

        本文链接:https://www.haomeiwen.com/subject/vigowxtx.html