1. 写在前面

随着今天360的offer下来, 找实习的这颗心终于放下来了, 也比较顺利的为过去的这两个多月的时间画上了一个句点, 从3月5号开始准备, 4月3号开始投递再到今天的确认offer,这期间经历了很多了很多,也感悟了很多,由于这次找的是推荐算法工程师的实习岗,并且又是独立摸索的形式,出现了一些策略上的问题,所以在这条路上,我走的并不是很顺畅,经历了很多坑,当然更重要的是自身能力的一些原因,不过最终还是比较幸运,进了360的广告算法组,而这篇文章, 主要是这两个月在找实习上的点滴进行梳理和总结,并沉淀一些经验(重要的还是一些坑吧), 为秋招助力, 当然,也希望帮助到更多的伙伴呀!

下面主要是先对自己这段时间的经历进行总结,然后进行经验的总结。

2. 这两个月,经历了啥?

首先,对过去的两个多月找实习进行回顾,大体可以分为准备实习,制作简历,开始投递和开始笔试和面试和offer这几个阶段。

  • 准备实习

    我是从3月5号开始准备找实习的,由于我也是半路出家开始学习的推荐算法(大约半年的时间吧), 所以并没有沉淀下一些拿的出手的东西(写在简历上的),也就是大家普遍的一个问题,没啥可写的呀。 所以3月份,我想先丰富下简历, 考虑到推荐系统的话,偏实践一些嘛,所以用了大约20天的时间,学习了一个偏工业上的推荐系统项目,然后把它写到了简历上去,但学习完了之后,就到3月底了,emmm, 于是就与第一个坑有了一次邂逅。

    这个坑带来的后果就是错过了找实习的最佳时间(3月), 我身边好多小伙伴都已经顺利拿到了实习offer了, 我发现我还没有投递,之前我一直以为找实习不是俩月嘛,并且之前规划就是3月份丰富简历,4月份投和找,所以也没考虑太多,但信息闭塞再加上偷懒(不想改计划),导致我后面特别的被动,因为我后来知道了实习岗位可是一个萝卜一个坑的, 人家公司可不等人,并且算法岗本身就少,好多小公司三月份就完事了,早投还有很多被捞的机会等,唉, 这些信息只可惜,我是3月底才发现的。 还好,由于我研究生一直学习着机器学习和深度学习,并留下了很多博客笔记,并且算法也是年前就开始刷,所以这两块没有准备太长时间,但还是有些慌。而慌则乱,下面就一个接一个的坑了。

  • 制作简历

    制作简历我是4月1号和2号,2个晚上的时间就把简历写完了,因为当时光想着尽快投了,得抓住机会试错呀,还是想先积累经验的,简历就这样潦草的制作完毕,由于我研究方向是时空序列嘛,所以推荐的东西没积累太多,时序的却是有些积累,所以我简历相对下来,两个时序比赛,一个推荐比赛,一个推荐项目,再加上论文经历,技能啥的,也是写了足足两页的。 而当时突然想着, 虽然我想找推荐, 但是感觉这个简历,也可以找数据挖掘或者机器学习岗位呀,不冲突,于是乎又复制了一份,想投机器学习岗位,我当时考虑的中的几率可能会大。

    这里面犯了三个简历上的问题: 简历有点潦草(没好好梳理语言和包装) + 简历杂乱(时空序列预测和推荐写一块) + 两个不同的岗位同样的简历

    这次出问题的原因,首先是第一次找实习,没有意识到简历的重要性,之前都是听学长学姐的经验,简历很重要啥的, 但听和亲身体会真的是两码事,再加上当时有些慌乱,导致制作简历的环节,没有参考太多别人的优秀简历,没有好好找找简历应该咋写啥的,又加上了一段自以为是的小聪明,也就是投一份简历投俩岗位同时,所以不用想,也知道我后面的后果了。

    But, 或许还不是你想的那么简单!

  • 开始投递

    开始投递简历是4月3号, 正赶上清明节放假, 我打开牛客, 找到暑期实习,搜推荐系统,发现这时候只有字节和快手的推荐算法实习生岗位,我天,虽然这俩是比较想去的,但也不能直接就干这俩吧,这还一点经验都没有,所以不太敢直接上,虽然当时有点初生牛犊子不怕虎的感觉,但还没有那么不怕,不过纠结了一下,还是投了,因为当时就这俩呀,无可选择,当时真以为大厂都快完事了,所以想着先投再说了。 然后再搜机器学习, 发现了阿里的推荐算法岗,美团的数据挖掘岗,没有犹豫,投。

    4月4号,再搜推荐系统,又出了个腾讯微保推荐算法和滴滴推荐算法以及360广告算法,不犹豫,投。

    这一连串投了5到6家, 然后等消息了。等消息可真的是煎熬。

    阿里是最快的,简历过了,然后约了笔试, 其次是腾讯微保,约了笔试,快手简历没过,字节和美团没消息的状态。但等了3天了, 又有点小慌, 再投, 又去了字节的官网和走了熊学长的内推,又投。 这时候京东又发现有搜索岗位NLP+推荐, 也投了, 结果岗位不匹配。 而字节和美团依然没消息。 这时候真的是慌得一批呀,不过又阿里和腾讯微保的笔试挂着,依然得好好复习。

    阿里笔试完了之后,美团和字节也有消息了, 也是约了笔试。

    所以,找实习来说,简历还是能敲一下门的,不过上面有两个坑

    • 第一个是只在牛客投递,由于信息闭塞, 没来得及了解其他渠道,其实当时准确的说,啥也不懂,也没有人指点当时(慌了之后,我忘了找人先了解些找工作的基本知识了),又看到我身边小伙伴也是这么投,我更加感觉没啥问题了,呵呵,殊不知进了个大坑, 尽量不要只从牛客上投简历。 牛客上投简历,其实也是走内推,在这里面投,第一个是看不到地点,第二个是看不到部门,第三个是看不到实时反馈或者流程进行到第几步,第四个是如果投过去的那个人没来得及提交到相应的hr手里,那么相当于简历根本没投过去。只这四个, 啥后果依然是可想而知了吧。

    • 再就是切忌在同一阶段投一个公司的多个部门, 这里面的规则是,只要有一个部门接了简历,其他部门就根本拿不到了,除非前面的部门放出来。


      这俩个坑带来的后果,虽然投了简历,但对目前的部门情况一无所知,对流程进行到哪一无所知,只能被动等待对方联系, 有一些简历投的没有意义,比如字节的那三个,那两次投递,其实浪费了。

      所以投简历, 最好考虑多个渠道, 比如找靠谱人内推,比如去公司的官网投递,比如用Boss 直聘啥的,这个我还是没用过,但我身边好多小伙伴推荐。因为我当时发现这个问题,依然是太晚了, 好多都通过牛客投出去了,再用这个软件或者官网投递,又相当于走第二步坑,并且当时对自己的定位不明确,对各个部门也不了解,根本不知道对接或者想去啥部门啥的。 核心还是对自己定位不太明确,兴趣太多,但不集中

  • 笔试

    4月7号到15号, 是笔试的时间, 字节总共参加了3场笔试,阿里,腾讯微保和美团,还是场景题算法题为主,笔试也是遇到了一些坑的,对刷题存在一些误区,这个我之前总结了一篇文章了。这里就不说了。

  • 面试

    4月20号-30号期间,是面试的高峰期,10天的时间面了12面,这个过程更是高度紧张加煎熬哇,我发现从投递简历开始的那一刻,就无法好好的入睡了,始终把心悬挂起来,而最后的这10天,紧张和焦虑到了顶峰,10天的时间,而此时手头啥也没有,再加上我老师那边还有改论文写材料的一些事情,再加上各种孤独,我滴天, 短短这10天,我心态应该是崩了两到三次,但还好都让我自己把自己忽悠过来了。这期间也需要感谢下张一鸣老师的那篇"平常心"的演讲,以及中科院那个博士的感谢信,还有些类似鸡汤性的文章("鸡汤有时候还是挺香的")。 好吧,又偏了,回到正轨,谈面试。

    这里具体的问题就不整理了, 这个和具体的简历有关,介绍自己,介绍项目,然后提问+手撕,基本上流程都差不多, 而介绍项目基本上会占用大部分时间,所以这个不同的人不一样。 而提问的知识,这个不同公司侧重点也不一样,涉及的面也很广,所以这块就需要面经来补充啦,多研究研究面经吧还是。下面说体验:

    • 腾讯微保一面,推荐算法,这个是第一次面试,并且之前也忘了面试前先把自己的项目介绍啥的练几遍了,所以准备并不是很充分,并且还超级紧张, 自我介绍和项目啥的说的都不是很好,但面试官的问题除了个智力题都答上来了(这是第一次接触智力题,也没啥经验), 不过最终没消息了,又从牛客上投的,所以并不知道啥情况,应该是挂了。

      这次挂了之后,赶紧找上面存在的问题, 自我介绍和项目介绍不行,并且由于简历上时序比赛和推荐比赛同在,这次面试面推荐竟然介绍了时序比赛,所以后面又重新梳理比赛,总结语言。

    • 字节一面,做在线教育,问的还是比较深的,最后手撕一道hard,不过是LeetCode上的原题, 只可惜,思路正确,但没撕出来, 第一次手撕,脑瓜子嗡嗡的当时。这次说实话对自信打击挺大的,但竟然过了。所以面试这东西有时候真的是玄幻,无法预料。

      刷题还是不够, 手撕也不行。

    • 阿里一面,推荐算法,但好像是toB的,简单谈了谈项目,然后让等二面,结果也没等来二面,阿里这次的体验这次并不是很好。

    • 360一面,问的很广, 多方位考察,ML,DL,C++,操作系统那一套,然后手撕, 计算机基础的那些只有些潜在的印象了,回答的并不是很好感觉,但面试官人超级好感觉, 过。

      认识到了基础的重要性,包括数据结构,操作系统等, 也知道C++的重要性,还是要捡起来的。

    • 字节二面,有了前面的教训,进行了一波总结和准备,二面相对来说就好多了,在一面基础上更加深挖,并伴有智力题和概率题了, 过,字节体验还是可以的,不过水平也是很高。

    • 滴滴, 一面和二面持续了5个小时, 这个是问的比较细了,也非常广,后面面试官直接看着我的博客和GitHub问的,所以这个不同的人会不一样。面试官水平非常高, 说的时候都是让他自己能自己推出来的程度才行。 这个过+OC

    • 字节HR面试,在线教育部门竟然是两面,也是出乎意料的,这个就相对来说较为轻松了,个人优缺点,前两次体验等。 不过最后的反问环节,不小心表达出了不想去上海的意愿,最终字节这个就没有消息了。

    • 美团一面, 这个就比较惨了,投到了数据挖掘岗,但我介绍的时候发现我找推荐,但他那部门没推荐算法, 所以比较尴尬了,我也没法介绍推荐比赛, 全程跟着面试官的思路跑了, 问机器学习,深度学习,场景题,智力题,python基础等等,最后手撕题原地哈希的那种,也是思路对,没撕出来,但感觉没问题呀,课下写了一遍也过了,可能是太紧张有地方出错了吧,这次体验就不太好了, 结果显然挂。面试官也比较严肃, 自信也受到了一定的打击。不过发现了简历有问题,也发现知识上也有很多的漏洞, 给了我很大的教训。

      清晰的记得, 4月28, 目前只有一个口头oc, 还是六月份才启动申请,所以当时自信即将为0。 准备放弃,但突然360打来电话约二面, 瞬间又看到了点希望。

    • 360二面,由于面试官看到了我之前博客总结,发现大部分ML和DL的知识,所以直接避开不问了,介绍完项目之后,给了个数学题,主要是英文的,考察朴素贝叶斯和全概率公式,我天,之前准备实习是没看这两块的,不过,在面试官的一点点翻译帮助下,顺利搞定,这个面试官也超级nice,最后还给我讲了广告和普通推荐的区别,推荐了广告算法的一些资料,过。

      这时候,进入五一了,我手里面已经没有任何牌了,本来想打算既然这样了,就好好休息休息,玩玩,毕竟一个多月的高压紧张, 长时间可能会出问题, 但老师那边需要改论文,并且360打电话说假期之后约三面, 得, 五一也没休息得逞,又进入了一个紧张状态。

    • 360三面, 这次面试官又考察的比较全,项目谈的少了点,MLDL和推荐模型挖了一些深知识,算法策略和思维能力以及基础C++,Java锁机制,数据结构底层,再加上场景题啥的, 感觉这次答得就不大行了,再加上这个过了五一的一个假期,我发现ML DL的基础也记得有些模糊了,不过运气成分在,面试官给过了。

      通过这次,我真的发现自己有很多的知识漏洞,主要来自于计算机基础, C++,和推荐方面的算法思维,急需补充和学习,再加上之前简历方面的各种漏洞,缺少比较出色的项目等, 后面的几个就没有面了,这段时间真的是压力超级大,越面自信越不行(是因为真认识到自己的各种不足了,所以到后面心理没底), 而有面试根本就无心学习,所以真的想着尽快结束,然后静下心去补基础,所以大约5月10号的时候,停。 当然后面几天由于焦急等offer,也没静下心来学习。

  • offer情况

    这次拿到了滴滴和360的两家offer, 前者是偏推荐,后者是偏广告算法, 考虑到了目前的处境和后面秋招的一些计划, 我还是选择了后者,三个原因:

    1. 专业对口: 我找实习目的相对还是明确些,推荐本身是偏实践, 和业务强相关,所以学校学习更多的理论策略,得结合具体场景去验证才有意义,这也是我想找实习最重要的原因,由于时间紧,任务重, 这时候曲线救国战略感觉会有风险。
    2. 第二个原因是广告算法,对于我来说,虽然不太了解广告算法,但我对推荐算法落地性的应用研究非常感兴趣,而广告和推荐关联很大,广告推荐又涉及到了三方博弈,更有挑战性,当然需要学习的知识会更多,这会意味着成长空间和选择空间会大一些(或许能向下兼容)。
    3. 第三个就是不管是360的面试官水平还是面试体验,还有后期负责沟通的老师,真的都超级好的,被感动到了,然后360也非常强调各种底层基础(C++, 数据结构和算法), 这也正是我的弱点所在,所以在实习期间希望能顺便把基础弱项给补了。

3. 经验总结

如今5月又中旬了, 这段时间算是秋招的前奏吧, 体验了一波,还是非常有意义的,至少对于自己的水平,对于未来找的岗位,对于找工作的整体流程等清晰了很多,这是一个玩心态的过程,期间也少不了心态调整,时间调整和各种规划调整, 还是挺锻炼人的,这两天又和伙伴们进行了一些沟通和交流,又发现了很多问题,后期也会进行策略上和学习重点上的调整,也非常幸运这段期间遇到的我那几个哥们以及一块找工作的这实验室的哥几个等。

下面通过上面的几个坑总结下经验(亲身体验了一波,特别深刻),助力秋招啦。

  1. 先对自己的未来有个定位,然后有个大体的秋招计划, 这个非常重要, 得知道自己想找啥岗位,对应的每个公司有啥部门,然后提前做了解,包括部门自身信息和岗位要求,这样才能高效的"对症下药"。真的不能海投和乱投,这样会白花费掉很多心力,面试多了有时候也不是好事, 第一个是费时间,第二个是有面试挂着,真的无心学习。

  2. 早准备,早投。一定要把握好秋招各大公司的招聘时间点,包括提前批和正式秋招的,准备好了就开始投,投递可以采用多种渠道,不要仅用牛客,可以通过找一些师兄师姐内推,这样能熟悉部门的相关情况,也有简历筛选方面的优势,但是并不会有啥捷径,不要偷懒哈哈。

  3. 简历非常重要,不要乱写, 写到上面的每个点必须要彻底明白,并且还要想好可能引申的一些点, 切忌太分散,这样让面试官不知道问啥,自己介绍的时候也不知道如何介绍,会很尴尬。简历上的内容要和意愿岗位匹配,然后精简。

  4. 简历上如果感觉没有啥内容,千万不要硬凑,这些东西应该都是提前规划和准备,不是自己的东西,千万不要乱借鉴, 即使想借鉴,也得自己手写一遍,加入自己的思考,内化成自己的。

  5. 面试前,一定要把简历上的东西自己口头推演几遍,模拟几遍,否则,有时候因为紧张, 大脑可能空白状态,不知道说啥了。

  6. 知识不要贪多,还是做减法,先以自己简历的内容为主,然后往外扩散,每个大厂侧重点都不一样,可以提前通过刷面经来了解大厂的面试风格,做相应准备,不要盲目的光补基础, 这样效率不高。

  7. 刷题不能停, 高频题多练,多思考, 因为每个公司大部分都会有手撕和笔试

  8. 每次的心态调整也非常重要, 要对自己有信心,可以找几个伙伴一块准备,还能互相交个流,谈个心啥的,有些焦虑和紧张,互相聊聊就抵消了,焦虑和紧张这俩哥们肯定避免不了,大家都有,慢慢习惯了,面多了,就好啦。当然这俩的根源,大概率还是来源于我们对于简历上的东西不熟悉,如果简历上的东西都搞懂了,这俩哥们存在的几率会小一些,所以打铁还得自身硬呀

  9. 最后,这两点是算法岗而言的

    1. 对于算法工程师,我发现依然是算法思维,策略等非常重要,也就是对于某个方法,在明白了原理之后,一定要知其所以然,为啥要这样? 为啥这样就会有效?别的方法为啥就不行呢? 这种方法行了之后,还有没有啥问题? 还能不能更行呢? 算法工程师的话这种思维会非常重要,但需要慢慢培养的,所以找算法来说,一定要刻意去培养这种思维,而这种思维往往来源于读论文,基于真实实践等,所以打比赛,看论文,看大佬的博客,以及基于业务场景做项目是非常好的机会,一定要珍惜。

      1. 对于推荐算法工程师,工程也很重要,也需要考虑具体业务场景,但这些东西都不是在学校能培养出来的,这也就是找实习的另一个原因。但是对于学生小白找实习的话,还是上面的思维最重要,我花了20天准备的工业推荐项目,没给我助上一点力,反而可能会给我减分,因为这算蛮力,而不是思维。 不是对自己没有用,而是不应该是在这时候做,时间有限,还是找准重点。

      不过,秋招的时候,实习经验上的工程能力应该算是加分点了,所以好好把握实习机会,把上面的能力抓紧补上。

      1. 算法岗, 计算机的底层基础也非常重要, 也得好好看看数据结构算法等基础知识,还需要学习一门硬性语言, 目前发现,如果找推荐的话,往往会和四五门语言打交道,python和C++,SQL得熟悉, Java和scala现用现学。

到这里基本上就差不多了吧,和笔试一样, 目前面试机会还是挺有限的,公司面的也比较少(百度和腾讯没找到投的地方,快手,京东,美团没匹配到合适的岗位,不过和我几个小伙伴的交流里面我大体知道了风格,有难度), 所以体会就这么多了,不过,这里面的这些坑我可是亲身体会了一下,要不是最后还留有一丝运气,差点就翻车了,所以把这些东西记录下来,一个是提醒自己后面还得好好努力,可不能浮躁了,在公司要好好跟着各位前辈学习,结合实际场景多思考积累经验,锻炼推荐广告的相关算法思维,各方面实在是差太远了呀,好在认识到的及时,抓紧制定计划在实习的这段时间弥补。第二个算是还愿,希望能帮助更多的小伙伴,尤其是没机会实习的伙伴们,为秋招再攒点好运气哈哈。 这是我亲自趟到的,当然有些不一定有普适性哈,仅供参考, 如果你也趟到了一些,也欢迎偷偷的告诉我呀哈哈,秋招一起加油呀!

上面的内容来自我CSDN博客,后面各种知识点都在那里记录,欢迎关注一波呀 https://blog.csdn.net/wuzhongqiang/article/details/115341405