从双非到爱大,我成功拿下华为、BAT、小红书算法岗offer!
指南者留学 Journey
2022-11-20
阅读量:3359

大家好,我是Cardi,首先说一下整体情况:普通一本(双非),爱大计算机硕,本硕期间共3段大厂实习,职位主要是算法和软件工程师,今年秋招拿到了华为和某1线互联网大厂的NLP 算法offer,目前在小红书商业化团队实习。这篇主要介绍一下CS专业在求职上的一些建议,尤其是机器学习相关岗位。

 

求职方向

 

我投递的企业主要是互联网+外企+自动驾驶/新能源,主要面向搜索推荐广告和多模态场景;薪资的话,大家可以去offershow小程序查看,一般来说,绝大多数硕士普遍在35-45W之间,少数极其优秀同学可以拿到超过60W以上的头部计划offer(百度aidu, 阿里星,华为天才少年,美团北斗等)。

 

值得一提的是,近年来,前后端的薪资正在无限接近算法岗,所以我不建议all in算法,可以退而求其次投大数据开发,数据挖掘等岗位。

 

留学生求职建议

 

01 要求

 

近两年来看难度水涨船高,加上很多公司降本增效,需求量在减少,进大厂/核心业务岗还是比较难的,当然1-2线厂非核心业务岗+自动驾驶/新能源企业相对容易一些(QS前100/211硕都可以尝试)。


整体要求基本是名校硕士起步了,因此我建议至少要QS前75会好一些,比如华为有一些组今年只要QS前50的硕士且本科院校必须在list里,字节搜索核心组基本拿到offer的同学学历是双985。

 

02 技能

 

请认真刷题!leetcode hot 100必须做熟,这是基本关卡,身边同学的平均值大概4-6周周期可以刷完,建议集中刷题,每天拿出4小时+时间来理解消化;因为研发岗基本都有笔试,且面试有手撕代码环节,做不出来是有可能会被挂的。刷题我推荐用代码随想录,题解详细,附有图文,B站也有视频,支持多种编程语言。

 

03 项目

 

请抓住机会去工业界实习!


CS是与时俱进的学科,且相当重视实践,因此工业界尤其是大厂的实习是很有含金量的,当然在撰写简历时,实习过程中的内容经历要尽可能深挖其背后的内在逻辑和细节,多加思考和讨论,面试的时候就更能打动招聘方,往往也会顺利一些。


其次就是能发paper尽量发paper,毕竟高质量论文是硬通货,1作的顶会是可以充分证明候选人的综合能力,建议实验室或者导师有较强学术实力的,还是抓住机会,争取发论文,当然确实种种限制,很多同学并不能发表出高质量的论文(包括我),那么就转变思路,走刷题+做比赛,然后面试去公司实习吧。


项目方面,入门我推荐指南者的机器学习课程或者cousera/B站上的公开课,具备一定基础后,可以找一些阿里云天池和kaggle的比赛,认真和队友做一做,也是进步比较快的,如果结果还不错,写到简历也是加分的。
总而言之,除了本身的长期积累的硬实力之外(Paper,实习,项目/比赛),公司主要考核的就是两个方面的能力:"基础(看你有没有潜力)"和"广度(看你学习力)",加上在不断的投递中积累的面试技巧,那么基本还是很有概率拿到比较理想的offer的。

 

04 面试

 

面试校招一般有2-3轮技术面,深挖简历和手撕代码穿插其中,有时面试官会结合公司背景,出一些业务理解题来考察候选人的知识广度和随机应变能力;下面我附上一个小红书算法实习面经:

  • 项目深挖,问项目中数据集的分布,数据规模,数据有什么特点,是否存在标签不一致,样本不均衡如何处理,文本平均长度,项目使用的方法,分布式训练怎么做,你的贡献在哪里?
  • 预训练任务如何设计,基于roberta的改进点在哪里?
  • 上线前是否做了消融实验?评测方结果可以得出哪些结论?哪些指标还可以继续优化?
  • 有没有考虑上线的模型做蒸馏?
  • 什么是macro-F1,recall,precision?写出公式并解释
  • 算法题20mins:一道leetcode medium 实现前缀树(trie-tree)
  • 小红书这边想做搜索多样性,谈谈自己的理解?

 

整体下来,可以看出面试官是比较重视对项目的理解深度和算法基本功(手撕代码等),记忆性知识并没有考察太多;需要提醒的是,我们可能会碰到题目不会做的情况,不要慌,可以让面试官进行提示并积极讨论,先说出解题思路,哪怕最后没有debug成功,思路清晰正确或者可以分析算法复杂度也是加分的,因此面试官往往也不会太为难,也是有机会通过面试的。

 

总结

 

最后总结下,今年整体难度上升了,所以请想清楚自己是否适合算法岗,如果硬性条件明显不够,建议尽快转前后端,想拿下40W+以上以及想冲击ssp 50W的算法offer,大厂对口实习和顶会仍然是最具有竞争力的两项(尤其是搜推广,学术界和工业界差距较大,而从面试来看,大公司普遍认可有工业界实操经验的同学)。

 

两个方面提升自己:

 

基础牢固:


编程coding基础--今年难度增加,请至少以完成medium要求自己;


ML/DL算法的数学基础--基础扎实意味着围绕某个知识点,面试官不管怎么问,都难不倒。目标是应对笔面试过程中coding以及对知识深度的考察。

 

前沿涉猎:


follow时下科研趋势,如预训练模型,知识图谱,对比学习,因果推断,模型加速场景等;以及了解工业界中推荐/搜索/nlp的整体应用和流程等,以应对面试中的对知识广度、开放性场景问题的考察。


硬实力有的前提下,这三个方面扎实的话,我觉得拿offer是完全可以的。


当然,包括外在形象,谈吐交流、找对内推人、运气都是技术本身之外非常重要的东西。


最后,欢迎对互联网等技术岗位感兴趣的同学关注一波我的小红书!(小红书号:958398026),后续会分享求职和社群来给大家交流,也欢迎私聊我咨询。