关于作者:程序猿石头(ID: tangleithu),从十八县贫困农村一路逆袭上清华(点这里查看我的逆袭之路),BAT某厂P7,是前大疆(无人机)技术主管。
本文首发于微信公众号,原文链接,转载请全文保留。后台回复关键字 “1024” 获取程序员大厂面试指南。
背景
大家好,我是患有深度拖延症的石头哥。
插播:阿里2022年的春招(实习生)已经开始了,详情可进群(文末)了解。
上次邀请的学弟分享的 学妹从985跳槽到Top2,此行无憾,拿遍了大厂SSP Offer的经验,大家好像还不过瘾?
这不这次,又找了一个学弟,给大家邀请了一个朋友来分享他新鲜的校招经验啦。这位读者朋友横扫大厂,拿了 BAT、TMD 中的5家,还有华为。真心佩服,实力派选手。
知识体系
秋招投递的岗位大多是数据库和存储相关的,研究生参加的竞赛也有两个是数据库方向的。
经过不断的深入学习,觉得这个领域确实是一个很有意思的领域,尤其是存储引擎和分布式系统相关的知识,其中的一些设计理念让人印象深刻。
学习的过程主要有书籍、公开课和博客几个渠道。
书籍看过数据库系统内幕,MySQL 技术内幕。
公开课推荐 CMU15445 和 MIT6.824,前者是讲数据库的,后者是讲分布式系统的,都能找到带有中文翻译的版本,减少学习成本。
学习过程中也需要阅读相关论文,深入学习的话有 lab 可以做。可以通过博客了解一些开源方案,比如 MySql、TiDB 和 RocksDB 等。
对于面经,我最开始是有点排斥的,吃了亏之后又花了点时间看了一下,建议大家抱着查漏补缺的心态去看。
实际上也确实是这样的过程,面经可以覆盖一部分八股文,但有些问题还是需要自己思考总结过才能回答。(哈哈,戳这里校招面经合集)
每个人需要的面经是不完全相同的,尽快动手搜集整理一下。
我分阶段的刷了一部分算法题,队友还建了刷题用的知识星球,身边想刷题的同学在知识星球里边打卡每日一题,有一段时间大家很有热情,打卡的人也很多。
简历
制作简历用过 超级简历 和 职徒简历 两个平台,超级简历中途崩过一次,所以换到职徒简历。
研发的简历简洁明了就可以,和投递岗位不相关的项目不要写。
要突出简历的亮点,把最想让面试官问的放到最前面。
大部分面试官会从简历中找到感兴趣的内容来问,写到简历上的内容应该都能做到可以完整的表述,但有一个细节要注意,简历中的某些词汇会让面试官想到一些相关的但是你可能了解的不够透彻的知识,如果没时间准备,就换一个词汇。
最好有一个专门的文档是记录如何描述简历中的项目的,根据每次面试官的反馈后不断修改,避免出现同样的问题。
投递简历最好的方式是内推,当你想跟踪进度的时候可以找给你内推的人问,想加快进度也比较方便。
要和内推的人了解好这个岗位是做什么的,投递岗位和个人经历的匹配度非常重要。如果给你内推的人职位比较高,没准会有啥意想不到的好处呢!
笔试
很多厂提前批是不需要做笔试的,所以能走提前批就走提前批。
大厂中只做了阿里和美团的笔试。
阿里第一题 ac,第二题有一个 bug 是结束后发现的,不过问题不大。
美团不同批次的笔试难度差异大,我参加的那批还可以,通过 90% 多。
石头补充:在准备面试前,建议多刷刷题。算法面试是在程序猿面试时的重中之重(特别是大厂,看中编码能力和基础),在这里也送大家一本个人收藏的算法笔记,对于算法薄弱或者想要提高数据结构算法基本功的同学都十分受用:BAT大佬写的 1300 页 Leetcode刷题笔记,必须收藏!
面试
技术面主要分 4 个环节,自我介绍,手撕代码,面试官提问和面试者提问。
自我介绍
要突出自己的亮点,直入主题,自我介绍中的项目大概率之后会被问到,这也是控制面试节奏的一个机会。
手撕代码
主要分为两类:
一类是偏实践的,比如让你写个内存池、哈希表或者无锁编程相关的,了解原理就能写上。
一类是偏算法的,需要平时刷题,剑指的命中率不错。
手撕代码环节非常重要,但也不是没做完就肯定不能通过面试,要放松心态,紧张只会影响自己的思考,在写代码之前和面试官沟通一下自己的想法,根据面试官反馈做思路调整。
面试官提问
当遇到你不会的问题,要和面试官说:“我目前对这个问题理解的不够透彻,不好意思”。
这样大多面试官会换一个问题继续问,部分面试官会给你一些提示,让你继续思考。
在一个问题上讨论时间过长,回答的又不尽如人意,会给面试官留下不好的印象。
面试者提问
如果提问的是技术问题,一定要思考这个问题有多大的意义,如果自己就能够通过书籍或者其他渠道了解到,最好不要问啦。
我一般通过这个环节了解这个部门的业务和系统架构。
HR 面
重点是态度端正,表述清晰,需要提前了解一下投递公司和投递部门。
面试的部分大厂
百度
3 面技术面,无 HR 面,问题是由浅入深的问,面试官问到面试者不太了解的程度后再给一个开放性的问题,还会和面试者一起讨论这个问题。
没有使用平台刷题,口述代码思路。
阿里
2 面技术面,有 HR 面。技术面是围绕我的知识体系提问的,问了一些比较细节的数据结构问题,这部分准备比较充分,有充分的机会展示自己。
部门比较看重个人经历和成长性,面试官给的评价也比较准确。
阿里面试推荐参考:阿里面试流程大揭秘
腾讯
3 面技术面,有 HR 面。 是第一个给我发意向书的大厂,感谢腾讯。
技术面问的问题比较综合,需要把学过的知识提炼总结才能回答的更好,二面聊到了协程的实现,这个美团也问啦,但是回答的深度不够,还需继续努力啊。
字节
3 面技术面,无 HR 面,一面考察 C++ 基础和实习经历,只想说 C++ 真的太难啦。
二面做了三个题,有两个是性能的优化问题,一个无锁编程,一个堆的优化,研究生期间参加了几次计算机相关的竞赛,正好都用到过这些优化方案,答的自我感觉不错。
美团
3 面技术面,有 HR 面,我的实习经历和美团的部门匹配度很高,所以问题集中在实习经历和项目经历,不怎么问八股文,三面问了多个无锁编程的问题,给我问出一堆问号,时间也超时啦。
华为
3 面技术面,无 HR 面,技术面试挺顺利的,性格测评没过,总结没过的两个原因:
- 题目中会有符合,一般符合,不确定等选项,如果你有多个项都选了符合,它在下一页就会继续问你哪个更符合,我为了不让它问,所以特意把程度区分开,这就导致会选择出不符合自己性格的选项;
- 上边说要区分程度,所以选出了多个不确定,这样测评结果可能会出现你不够了解自己。
后来华为给安排了澄清,可以认为是一次 HR 面,通过啦。
结果
上边说的都过啦,有 SSP,也有 SP。
总结
从研一开始就想着秋招,有意识的增强自己的综合实力。
参加了几次计算机相关的竞赛,考研时候的研友,后来成为了一起打比赛的队友,从比赛中的队友和对手身上学到了很多知识,在决赛的关键时期还和队友熬夜写代码,甚至肝到半夜三四点。
每次性能提升都会让我俩激动不已,秋招过程中,每次面试后都会和队友复盘,压力大了就一起出去吃小龙虾、烧烤或者火锅,充实又快乐,感谢我的队友!
幸福的烦恼
秋招的最后是更难的选 offer 的过程,要综合考虑平台、薪资、城市、工作氛围等等。
这个过程最重要的是收集信息,可以从面试部门的业务人员、HR 小姐姐、朋友和一些大佬口中了解。
对于如何选择 offer,每个人手里拿到的 offer 不同,考虑因素不同,导致其他人很难给一个说到你心里的建议。
重点还是你自己想要什么!
身边也有同学拿了很多 offer,有的优先考虑城市,主要受父母和生活压力的影响,有的优先考虑薪资和平台,薪资的影响会更多一些。
我在选择的时候也很纠结,和家人、朋友讨论过多次,在这里要重点感谢石头哥给我的建议,石头哥深夜还回复我的消息,感动,非常赞哦!(哈哈,欢迎大家找石头哥聊天vx:codershitou,周末时间会多一些)
我的 offer 在北京,上海和杭州三个城市,好感度上海和杭州大于北京。
薪资差不多,有的 base 高,有的签字费高,单看薪资倾向 base 高和签字费发的早的。
有两个注意事项,第一,公积金比例,第二,房补和绩效是不算 base 的。
对于平台,主要看部门是否核心,工作方向是否喜欢,工作氛围是否融洽,这个是最需要获取信息的地方,我和我队友想了很多办法去获取这个信息。
选 offer 只有好与更好,明白自己想要的是什么,综合考虑就会得到你想要的结果。
后记
其他校招经验分享:
上面内容包含在前面整理的本号精华文章,(详见 100篇原创,聊几句心里话),可在后台回复“历史文章”下载。
关于作者:程序猿石头(ID: tangleithu),从十八县贫困农村一路逆袭上清华(点击这里查看我的逆袭之路),目前在BAT某厂打工,是前大疆(无人机)技术主管。
欢迎扫码加入互联网大厂内推群 & 技术交流群,一起学习、共同进步。后台回复关键字 “0” 送阿里技术大礼包。