记录自己如何找到第一份工作 : ) 。
校招是场持久战,除了个人实力外,运气也占很大成分。各位同学在笔试面试的过程中一定要放平心态,不要去怀疑自己,祝大家都找到一份满意的工作!
algo-learning
:数据结构的笔记leetcode
:刷过的力扣题目、笔试题目记录,ACM
模板笔记和一些其它的手撕常考题cs-base
:八股笔记和看公众号博客中相关知识的笔记modern-c++
:现代c++
的笔记pdf
:八股部分的Markdown
导出的PDF
下面是个人应聘后端开发岗位的timeline
,以月份为计数单位。
由于没有每个月总结,每个月具体的任务可能不完全对,但大体是没问题的。具体细节可以去看对应月份的提交: )
日期 | 任务 |
---|---|
2023.10 | 跟着Hello算法复习数据结构和算法,复习STL |
2023.11 | 跟着Hello算法复习数据结构和算法 |
2023.12 | 刷Krahets 笔面试精选 88 题 |
2024.01 | 刷Krahets 笔面试精选 88 题 |
2024.02 | 刷Interview-75 |
2024.03 | 刷LeetCode 热题 100,学习现代 C++ 教程:高速上手 C++ 11/14/17/20 |
2024.04 | 刷LeetCode 热题 100,复习操作系统 |
2024.05 | 刷LeetCode 热题 100,每日一题,准备项目 |
2024.06 | 刷LeetCode 热题 150,每日一题,准备项目,复习计算机网络,C++基础知识,Go基础知识,MySQL基础知识,Redis基础知识 |
2024.07 | 刷LeetCode 热题 150,每日一题,复习计算机网络,MySQL基础知识,Redis基础知识 |
2024.08 | 全盘复习之前的所有内容并标记已经很熟的内容,看面经,面试 |
2024.09 | 查缺补漏,看面经,面试 |
2024.10 | 面试 |
算法主要会在笔试和面试两个部分出现。
对于大部分公司来说笔试占比不算很大,对于简历符合要求的同学(学历,项目,实习),笔试只要不做的太差基本都能过,但需要注意的是有些公司会有所谓的及格线(比如华为,阿里系据说好像也会)。笔试和平时刷的力扣还是有一些不一样:
- 笔试是
ACM
模式,平时刷的力扣是核心代码模式,因此需要提前练习一下基本的输入输出。 - 笔试的题目描述相较于力扣,会带到一些情景里面去描述。
- 笔试考察的题目一般不是原题,但也有一些公司会出力扣原题,也可以提前去刷一些对应公司往年的真题(网站推荐CodeFun2000,公众号推荐万诺Coding)。
我个人没有太准备笔试,算法主要还是通过力扣,因为非ACM
选手要想基本ak
的话需要耗费很多时间,性价比不高。另外提前批的话很多公司是没有笔试的,然后一些公司是全程没有笔试的(比如腾讯)。
另外一个场景就是面试中的手撕,手撕对于大部分公司来说就很重要了,甚至有一票否决权。对于手撕的准备来说就很“简单”了,大部分手撕都是力扣原题,因此必须刷熟LeetCode 热题 150,至少两/三遍。并且在每次面试前,再把对应公司的高频题过一遍或者写一遍。除了力扣原题外,手撕还可能会考设计模式、多线程、排序算法等,也需要提前准备一下尤其自己简历和项目中用到了。
对于力扣需要刷到什么程度,至少刷熟LeetCode 热题 150,我个人刷了差不多400
道题。
对于后端开发,所谓的“八股”总体可分为下面三个部分:
- 计算机基础
- 操作系统
- 计算机网络
- 数据库
- 语言
- 后端基础
- 缓存
- 消息队列
- 其它的一些知识,比如
RPC
,Git
,Prometheus
,ES
.....;这部分根据自己的简历和项目去学习即可
八股虽显枯燥,但实际是很有用的。尤其对于大部分人的本科教育,虽然学习了相应科目,但还是一知半解。充分利用这次机会,梳理之前所学,你将发现会有很大提升!八股一定不要死记硬背,而是着重理解,并尝试自行编写一些小的示例程序。
后端开发主要可分为C++/Go
和Java
。其中C++
在互联网里主要是基础架构、搜广推、AI
落地、游戏、客户端,另外C++
还可以投递嵌入式;Go
在互联网主要是一些业务和云原生,Java
则偏向于业务。关于语言的选择,我觉得首先是看自己喜欢,而是结合自身情况和市场去决定,选好后就不要再改了。总体来说两部分语言各有优劣,比如C++/Go
岗位少吃学历,Java
人太多太卷背的东西多。如果想去互联网后端,还是主推Java
,对于想选择C++/Go
的同学可以参考【校招方向】C++输麻了,C++后端开发还能学吗?—椒麻酸菜鱼。
语言 | 公司 |
---|---|
Java |
阿里系,蚂蚁,美团,快手,京东,拼多多,小红书,携程,滴滴 |
Go |
字节,腾讯,百度,滴滴,阿里云 |
C++ |
腾讯,百度,阿里云,蚂蚁,快手 |
基本每个公司都会多语言,比如基础架构基本都是
C++
,上面列举的只是所列公司(公司太多就不一一列举了)的主流语言
我个人简历上是写了4个项目:
- 1个开源项目(基本没有技术类的开发),为了凑个开源经历;没人问
- 1个组内横向项目,虽然是横向但还能讲一些内容;问的较多
- 1个
C++
的烂大街项目,技术栈是C++
所以做了一个项目;问的很少 - 1个
Go
的微服务项目,为了引出MySQL/Redis
八股找的项目;问的不多
对于没有实习经历的同学来说,大家项目都差不多甚至重复(我个人的项目也是),因此如果能找到有亮点的项目会加分很多,建议多翻翻Github
看看有没有有趣的项目。
写在简历上的项目一定要熟悉(最好是能从0-1自己写一遍),这里的熟悉包括业务逻辑、用到的技术栈和可扩展到的场景。
模板我个人是用的hijiangtao-resume,然后加了照片。我简历包括如下部分:
- 个人信息
- 姓名
- 电话
- 邮箱
- 个人博客
Github
- 教育背景
- 学校
- 专业
GPA
/排名- 荣誉
- 技术能力
- 编程语言
- 计算机基础
- 技能特长:这里可以引出一些八股
- 英语
- 项目经历
- 网址/源码(如果有的话,仓库代码的话可以给面试官看一下自己的编码规范和Git使用,但我自己面试的经历应该没有面试官去看过)
- 亮点
- 自己的工作
- 开源社区
- 竞赛获奖
- 只列了国家级的
- 个人总结
- 一段话,个人觉得还是有必要有的
前期可以采取海投策略,尤其对于面试经验少的同学,可以投一些中小厂(推荐在Boss
上投,这样节约很多时间)来练手。
在积累一定的面试经验后可以开始投递大厂,最好是在开启校招投递的前两周就投递,毕竟筛选和约面都会有缓冲期的。一定不要太晚投递,越晚一是hc少了很多;二是有实习的开始投递了竞争更大,对于没实习的同学很大劣势。千万别想着自己没准备好,准备是不可能完全准备好的,在面试中不断的查缺补漏。
对于bg
不太好的同学一定要多投,争取更多的面试机会。下面是我个人的投递路线(不包含Boss
,Boss
我只有八月初几天疯狂投了一下,但都没有后文,后面就没投了)。此外,一定要多关注招聘动态,如果有几个搭子共享信息是最好的,信息差很重要。
互联网公司一般是2-3轮技术面,0-1轮hr
面,对于面评不一致或者定级的同学会有技术加面,此外同一公司不同BG或者团队面试流程可能都有差异。
面试(技术面)一般可包括以下几个部分:
- 自我介绍:控制在两分钟内,主要介绍学校专业、技术栈和项目,不要讲太多细节,这里可以强调自己擅长的部分,引导面试官
- 八股
- 项目
- 场景题:只能自己积累,比较常考的有海量数据问题等;平时可以阅读一些大厂的技术公众号(
C++/Go
选手可以看腾讯技术工程,Java
选手可以看看美团阿里系的);微服务接口设计原则这篇博客我感觉可以涵盖很多校招面试的大部分场景题 - 智力题:不一定有,InterviewGuide基本能覆盖常考的智力题
- 手撕:基本每轮都有(部分公司可能没有手撕,大厂比如京东;美团如果你笔试做的ok的话好像也没有;中小公司有的也没有手撕)
每一轮技术面考察的点也不太一样,但基本内容不会差太多:
- 一面考察基础知识为主,会问一些项目
- 二面主要考察项目以及发散
- 三面主要考察综合能力,会问一些设计题和场景题
Hr
面一般了解候选人的基本情况,大部分公司只是走流程不会挂人(京东和阿里除外),如果这个阶段被挂大概率是横向对比挂了或者没hc了。Hr面可参考HR面试面经问题汇总(共计30+问题,2500+字数)—timeErrors。
面前的准备:
- 熟练自我介绍
- 熟悉项目
- 把对应公司的高频题过一遍或者写一遍
- 放轻松
由于我个人没有过实习,这部分只是个人见解,可能有不对的地方。互联网越来越卷,有实习经历肯定是占优势的,尤其对于背景不好的同学,当然背景好的同学即使没有实习,一般大厂也会给机会。实习的优势我觉得主要包括下面几个部分:
- 提前感受互联网,看看适不适合自己
- 感受不同互联网公司的文化和氛围
- 实习经历比起自己找的项目更有优势,可以减少八股拷打的时间
- 暑期实习有转正机会,可以有个保底,心态更稳
实习可以分为日常实习和暑期实习两种:前者要求低一点,全年都有,一般不提供转正机会;后者难度和秋招差不多,有转正机会,一般在三月份开始。对于实习的面试准备也是一样的,暑期实习的同学建议早点去实习,不然后面秋招实习甚至还有毕设一起会很痛苦,一定不要all in
转正。
“面试结束并不意味着可以躺平。当大家拿了多个 offer
后,就拥有了选择的权利。为了拿到让自己满意的 offer
,我们需要做好充足的准备,才能掌握校招后半场的主动权。除了被动地等待各家公司开奖外,我们也应该主动收集一切有用的信息,不仅要发挥手中 offer
的最大价值,也要认真谨慎地做选择,这才是对自己负责的表现。”
上面的文字来自【方法论】校招碎碎念 - 收获 Offer 篇—imageslr,写的很好(btw这位博主其他blog也很好),这部分内容建议大家详读,这里我就不再重复造轮子了。