C++基架
本篇内容整理自蒋雨宸学长的经验分享,已获得原作者授权,蒋学长是2024届南京大学计算机硕士毕业生,以下是他的微信号和知乎链接。
微信号:LIMBO_42
知乎主页: https://www.zhihu.com/people/luo-chen-96-77
前言
我的BG是985科班本硕,求职方向为基架,实习经历是在阿里云某核心部门(这为我加了不少分)。主力编程语言是C++,曾参与过一些国外的知名课程,比如CMU的15445和MIT的6.824,6.S081,以及TIDB的TinySQL项目。代码题上,我在LeetCode上刷过了1000道题,不过学习成绩中等,没有什么奖项,也没怎么参与过学生活动(在国企求职时这算是个不小的减分项)。
最终,我拿到了几个不错的offer,包括钉钉、阿里云、蚂蚁、百度、快手和TP-LINK,基本都是SSP级别的,快手还特批了一个待遇,比快star略低一档。
整个秋招从七月持续到十一月末,终于尘埃落定。在这段时间里,我经历了多个阶段,经常在内耗和纠结中徘徊,最终选择了自己实习过的阿里云。我想给自己做个总结,回顾秋招的各个阶段,以及我在做出每项选择时的思考逻辑,希望能对后来的学弟学妹们有所帮助。
前期准备
在准备方面我认为的重要性排序是:技术方向 > 实习 ~ 学历 ~ 顶会论文 > 项目
方向: 开发无脑推荐后端。基架选择建议仅限于两种情况:一是实验室专注于OS、DB、网络等领域,拥有深厚的积累和强大的师兄网络;二是对底层技术有极高的兴趣。测开和前端适合背景稍弱但希望进入大厂的同学。关于算法,尽管我不是专家,但注意到今年算法与开发之间的差距增大,建议抓紧时间进入大模型领域,即使没有论文也不是问题,关键是方向对口的实习经验。一定要关注职业方向的广度,这有助于跳槽或应对裁员时更容易找到工作。我后续可能会详细讨论这个话题。
语言: 后端推荐使用Java,是绝大多数人的万金油选择。C++需要和具体的方向结合,比如OS,DB,网络,图形学,音视频,我比较推荐网络,因为进可游戏服务端,退可去各家基架部门。
实习: 目前来看秋招方向强相关,各家面试都希望你至少有一些相关的经验,所以如果有实习的机会,一定要去,实习推荐去强背书的地方,核心部门,实习就是一段经历,背书比较重要,转正没那么重要(压价 or 压根就不能转正 or 秋招拖得很久),不建议 all in 转正,谈薪环节需要其他家的 offer。
学历: 目前各家大厂都有卡本科学历和科班的情况,其中有一些很严重(非硕士非23所要走特批)
论文: 除非是顶级会议的论文,否则大部分不被重视。因此,在确保满足毕业要求的前提下,应为求职多做准备。
项目: 项目我虽然列在最后一项,但其实说白了方向,实习,论文,都是项目,所以说要通过面试,项目的重要性一点不差。请选择有亮点的项目写到简历上,并且列出具体使用的技术,如何写一份好的简历也很重要,需要学会包装自己,引导面试官向你准备好的问题上引.
秋招过程
提前准备,早投秋招
现在各家公司的秋招都很早就开始了。面对需要在实习期间同时准备秋招的情况,一些同学选择在实习结束后再开始投递简历,认为早投只是为了排序。但实际上,如果等到实习结束再投,核心部门的候选人名单可能已经满员,错过了最佳投递时机。例如,我在腾讯因为错误填写了毕业时间,错过了优先投递的时间,结果只能选择剩余的部门。
实习转正后不要停
实习拿到 offer 之后也要多面,有直通终面的可能:即使实习拿到满意的offer,也得多面,好处有两个:一是留的面评越好,秋招越容易被捞,腾讯和字节都是这样。二是,如果实习表现好,拿到offer,秋招还能直通终面,尤其是如果加了leader微信,即便实习不去,秋招去问一下,可能就会有机会了。
尽量海投
建议先广泛投递和面试,拿到多个offer后再决定去向。例如,我没有面试美团,因为以往有“开水团”的说法,但今年美团表现不俗,发放了很多SSP级别的offer。多面试还有助于提高谈薪的底气,尤其是在转正时,可能面临薪资压价的情况。
不设限,敢于尝试
针对像我这样成绩平平,但又不甘心平庸的同学,即使你没有明确的去向,例如国企,或者荣誉、GPA不是特别出色,建议还是先面试互联网公司,到十月、十一月再考虑其他行业也不迟。
发挥学历和资源优势
例如TP-LINK和联洲等,它们的面试比较简单,开出的薪资也很慷慨,可以早早拿下offer,减轻压力。内推很重要,如果通过内推进入具体的部门,将比在池子里等待更有优势。如果发现内推的部门不符合期待,建议及时终止面试流程。
小心一些大型池子
有的地方一些HR为了自己的 KPI,不管方向匹不匹配,捞很多很多人面试,只要面的不是很差,都进池子,导致池子造的无比庞大,然后一直排序不发意向不发 offer,导致流程被卡住。
关于实习
实习很重要!
如果秋招想找一份互联网的工作,有条件的一定要实习。不仅是作为一份背书,而且在秋招面试的时候,面试官才不会陷入无话可聊,只能用八股算法填满面试时间的情况。先想好实习的目的是什么?实习的目的无外乎两个一是转正,二是背书。
关于转正率
按往年来说转正率比较高的应该是阿里系,但我那一年阿里云出了点问题,不仅转正结果出的晚,而且转正率相比往年大大降低,但据了解,淘天的转正率还可以。注意字节和腾讯的转正率相对较低,美团,pdd的转正甚至不需要转正答辩,只需要提交自评,leader同意即可,所以美团pdd的转正率很高,蚂蚁pdd接近百分之百。如果想求稳,推荐美团蚂蚁,背书也不错,至少拿美团蚂蚁秋招面试是平分项。如果能接受pdd,也可去pdd,今年转正基本都开了很高的薪资,而且18薪,钱还是很多的。
关于实习背书
我个人认为背书会比转正率重要一些,因为目前的形势属实一般,前面也说了腾讯字节的转正率比较低,甚至我感觉秋招的hc数量会比能够转正的实习hc要多,所以拿个背书好的实习,秋招多面多投,结果不会差的。举个例子:字节今年的能够转正暑期实习hc巨少,而且目前的实习往往需要6个月,甚至一年。面试的时候甚至会问能够实习多久,如果只能实习三个月,可能直接被刷。什么叫背书好?title:大厂核心部门>中厂核心部门>大厂非核心>中厂非核心>其他。
首先定义什么是大厂,我认为只有BAT御三家称得上大厂,只有他们三家业务很广,横跨多个领域,其他公司例如美团在本地生活,外卖上发力,快手短视频,pdd电商,小红书社区,业务稍微单一了一些。什么是核心部门?首先判断是否盈利,二判断他们在各家的定位。
我这边给出一些核心部门供参考:
腾讯:WXG(微信事业群,注意今年没有秋招,只有实习转正),IEG天美光子(游戏业务),TEG部分(基础技术)。
字节:AML(机器学习和算法,包括 AI infra),Tik Tok,抖音,搜广推等。
阿里:阿里云(ECS,PolarDB,各种存储包括OSS,SLS等等),淘天阿里妈妈,淘宝首猜,蚂蚁,达摩院等。
美团:到店,到家。百度:凤巢,大搜。
快手:搜广推。
非核心举例:腾讯的pcg(qq),csig部分(云业务);阿里的淘宝买菜、菜鸟、飞猪;字节的飞书等等。
这边提一下特殊的两家:华为实习会比较晚出结果,而且没有转正,但秋招面试有直通主管面的机会。pdd今年所有实习生都被分配到了temu做海外,按照它们的力度,估计明年可能也是一样,但做海外也不差就是了。
找不到实习怎么办?这边有个很关键的问题,暑期实习还是很卷的,尤其是三个月能转正的暑期实习。那如果最后还是找不到或者导师不放,怎么办?试着找日常实习:这里有个误区,大家看到实习要求上写至少需要5个月or 6个月实习,大家可能就不敢投,但事实上,你提前离职没有人会管,只是可能会不能转正而已。但如果都找不到实习了,这个时候就别挑了。另外在技术面和hr面的时候,不要说导师只放三个月。 导师不放:请报名参加 google summer of code(这个会比较难),中科院开源之夏,我认为含金量还是很不错的,同时也有钱拿,做完都有一万块左右(需要申请,通过之后才能做)。找项目做,这个后面我也会写文章推荐一下项目。
实习转正的评价指标,同时也是转正开奖的评价指标:HC(招聘人头数Headcount) > 背景(学历等)≈ 面评 > 转正答辩 > 实习产出。因为实习时间很短,入职之后还需要熟悉环境阅读文档,而且做的事也可能比较琐碎和边边角角,所以大家的产出其实都差不多(大佬除外),这个时候,决定性的因素其实是HC,HC足够,大家都能转正,不够,就会从背景,面评等各方面综合考虑了。
关于一些重要时间节点和相应计划:
下面时间节点按照25届毕业生,如果你是其他届的学弟学妹,请自行推算。
2023年x月-2024年3月:两个任务,做项目,写算法题Leetcode。
选什么项目做:不要做重复的项目,即使是导师的项目,也请把多个相同方向的项目写到一个里面。建议每个项目主打一个方向:比如一个数据库,一个操作系统,一个后端,一个网络。做完项目之后,请做个总结,因为最后,需要写到简历上,那么就要考虑,这个项目的哪些内容可以写到简历上,如何通过简历上的内容引导面试官提问。如何写一份简历,如何面试,这个后面可能我也会总结一下。
怎么写算法题:首先要清楚,笔试的算法题难度和面试不一样,笔试会比较难一些,而面试的算法题基本上都是高频题。要应付面试,做好LeetCode前200道,剑指offer,以及面试高频题。这里的做好,指的是任何时候拿到都要会做,所以记住,如果算法能力不行,请反复做高频题(不是说记题,而是理解的情况下能够快速做出)。面试做题和在下面做题完全不一样,想象一下,有人盯着摄像头看着你做题,加上时间限制,会不会紧张。如何学习算法题,这个很多大佬都写过文章了,我觉得都还行,入门之后,刷题+记住反复做高频题应该都没问题。另外,建议在找实习的时候,就打好算法基础,因为实习的时候很可能没什么精力继续做算法题,那个时候保持手感罢了。
2024年2月-2024年5月:面试高峰期。
2月中旬的时候,阿里云很多部门可能就开始面试了,这个面试记录不进面评系统,仅留存在部门自己手里,要等实习面试系统开了之后才会进去。这就意味着,你可以同时面多个部门,最后选择一个最有希望,面的最好的进系统,建议抓住这个机会多面试,多锻炼面试经验。另外可以用来刷面试经验,一般来说,第一次面试一般都很紧张,表现都不会太好。据我所知,甚至有同学面了七八个部门。我也面了4个部门,除了一个部门第一次面试完全没经验之外,其他均通过了三面。但这个后果就是导致很多部门养鱼严重,池子巨大。34月的时候其他几家陆续开了,也就没有这样的机会了,它们只能同一时间面一个部门,俗称锁简历,就是你如果在某个部门面试的流程中,其他部门是看不到你的简历的,所以有HR联系方式的话建议多催催,但部门那边很有可能养鱼,毕竟部门那边想优中选优。
2024年6月-2024年9月:实习+秋招。
建议早点去实习,因为秋招一般七月中旬陆续就开了,边实习边秋招挺折磨的。前面也说了,关系实习转正的决定性因素其实是HC,所以表现正常的情况下,抽些时间看看面经,上班的时候出去面试都是没关系的,mentor也懂。
2024年9月下旬-2024年11月:等待开奖。
这个时候就很折磨了,各家面试池子都足够大,面试也都面完了,意向却要拖个两三周,转正结果也可能迟迟不出,甚至最后来个惊喜,告诉你转正不过,开奖更是折磨,一家更比一家晚。安心等待,总会有好结果的。
关于算法题
1. 算法题重不重要,需要做到什么程度?
面试手撕的算法题基本上都是高频题,做好LeetCode前200道,以及剑指offer的题目基本上就能应付面试了。这里的做好指的是拿到题目可以在15-20min内bug-free通过,要做到这一点需要反复刷高频题。记住面试和平时做题是完全不一样的,面试的时候面试官可能就开着摄像头一直看着你(虽然他可能是在切屏做其他的事情,但是还是会有压力)。面试的时候手撕算法不通过是大概率被一票否决的。
高频题的网站,LeetCode Hot 100,剑指Offer现在直接搜索好像出不来了,现在要在LeetCode里面搜LCR才行,或者直接通过搜索引擎搜索 “LeetCode 剑指Offer”
笔试的算法题没有那么重要,一般不要太差就行;大厂似乎不是很看重笔试成绩(因为客观上笔试有作弊的可能,作弊代价也比较低)。除了阿里硬性要求笔试成绩60分,如果不达60分很有可能会被一票否决。即使有面试机会也可能被HR judge,需要补做一次笔试。阿里的笔试也是比较难一些,比较灵活。
**笔试的成绩对面评有影响吗?**这个事情就见仁见智了,当然是笔试成绩越高越好,但似乎跟最后的评级关系不大,还是面评、背景更重要。只有华为会稍微看重一点笔试成绩。
2. 只学过数据结构,零基础如何刷LeetCode?
首先,需要去学一下STL的基础用法,掌握常见的如数组、堆、栈的API即可。
然后,去网上随便找个分类的题单,比如 代码随想录,开始刷题。
怎么刷?
你需要明白,学习是一个通过模仿,然后触类旁通的过程。
所以,看到新的题目不会很正常,尤其是在刷题的早期,每个题目给自己5-10min的思考时间,如果没有思路,就直接看题解。
题解怎么看?
我的建议是不要看网上整理好的题解(比如代码随想录,把它看做分类题单即可),直接看LeetCode的评论区和题解区,这样对于同一个题目可以看到不同的思考,快速地看两篇题解,然后选择质量最高,自己最容易理解的。不要照抄代码!看懂思路后自己重新写一遍。
题解里面 灵茶山艾府 质量很高,他对每日一题,周赛都会有题解,一些题单的总结也非常好。
面试高频题,每个题目重复写,不是说短时间内重复写,而是隔一段时间把高频题写一遍,保证拿到题目的第一时间就有思路。不要刻意记答案记代码!高频题写到最后可能每题都要写个3-4遍的。(类似艾宾浩斯遗忘曲线的思路,当然不用做到那么精确)
3. 面试手撕算法小技巧
4. 算法进阶
基本上做到以上所说的应付常规面试没啥大问题,如果希望能面对笔试题、一些量化的笔面、面试偶尔出现的新题Hard题目游刃有余,或者发现自己对算法题比较喜欢,下面是一些进阶思路。