清华大学信息与通信工程学硕(清华通信本硕巨佬)(1)

背景

学习群里的清华学霸,去年这时候只有Java基础,后面帮他制定了学习路线开始学习,并参加了春季实习,这次秋招收获颇丰,基本都是顶级大厂的A /A offer。

个人情况

TOP 2 - 985 本硕。本科电子系,硕士通信方向。实验室里基本做的是通信的事情。计算机基础方面,大一时学过一点 C ,更准确地说是 C with classes,研究生阶段学过一点机器学习。

2021年的秋招中,拿到了腾讯 WXG,蚂蚁金服,字节跳动,美团,快手,shopee 新加坡开发岗的 offer,并且基本都是SP/SSP。

岗位选择

研一的时候就打算去互联网公司做技术方面的工作,并一直在开发/算法二者中纠结,毕竟当时正是 AI 行业快速起飞的时候。在知乎上也看过许多相关的帖子,后来考虑到算法越来越卷了,许多非科班的专业都可以转到算法岗,竞争压力大。加上实验室导师不放实习,以及非科班很难出算法顶会文章,最后选择了开发岗位。

事实上,在今年的秋招中,再一次印证了“选择大于努力”这一句话。我身边选择开发的同学,基本都有 BAT 等大厂的 offer。而算法岗位由于 hc 较少,竞争大,内卷极其严重,和开发相比更难拿到大厂 offer。例如,我一个室友面腾讯算法岗位面到三面,才被告知部门里没有 hc 了。

并且, AI 行业也逐年趋于冷静,许多 AI 公司必须让业务落地,实现公司盈利。其次,AI 岗位的薪资也没前几年疯狂了,许多大厂算法岗基本与开发岗同薪了。所以如果没有充分竞争力的情况下,还是建议大家选择相对容易的开发岗位,当然大佬除外。

另外,在 C /Java 二者的选择中,我选择了需求量更大的 Java。实际上,在校招面试中,面试官并不会在意你的语言。只要选择一种语言并且熟练掌握即可。正式工作中需要什么语言,入职后再进行学习即可。

学习路线

在确定下来走开发岗位后,我参考了许多过来人的学习经验,从 Java 基础学起,接着是 Java 并发,JVM,MySQL,Redis, 最后是 Java 后端生态常用的框架,例如 Spring,Zookeeper,SpringBoot 等等。

另外,计算机网络,操作系统和数据结构与算法也是面试中必考的知识点,需要花功夫去学习。尤其是算法方面,面试的时候都会有在线网页编写代码题的考核,并且会占据面试半数以上的时间,需要着重准备。

算法学习上,简单翻翻《算法(第四版)》后,可以刷几遍《剑指 offer》,这时基本可以应付小厂的面试题了。另外再建议刷完左程云的《程序员代码面试指南:IT 名企算法与数据结构题目最优解(第二版)》,这时大厂的面试算法题基本毫无压力了,笔试也基本能通过了。如果还有空余时间,可以看看 GitHub 上前人总结的 Leetcode 分类习题,我参考的是https://github.com/dingjikerbo/Leetcode-Java 。这个 repo 总结得特别全面,刷完后算法的考核就不再会是面试的难点了。

面试准备

面试时,除了算法题的考核是硬功夫外,80% 以上的知识点都是常考的,也就是大家所说的”八股文“。面试前,可以去牛客网上看看相应公司的面经,或者别人总结成册的面经 pdf 版本。我反复看了几遍 https://github.com/jianghui-galaxy/Interview-Notebook 和峰哥给的 Java 面经后,对常见“八股文”烂熟于心,基础知识的问答基本就稳了。

另外,简历上有项目的话,也会是一个加分项。面试官会对简历上所写的项目进行详细的询问,所以简历上的每一句话都不要乱写,尤其是自己一知半解的东西就不要写到简历上了。

但要注意的是,要精炼地在简历上指出项目的主要亮点,如果是实习期间做的项目的话还可以标明项目收益(例如服务延时减小,ROI 提升,并发量增大等等)等等。

如果没有实习经历的话,也可以参考网上的许多项目教程/视频,自己也做一个,摸清楚项目里主要的难点后,写在简历上。在这里感谢峰哥对我项目进行把关!

春招历程

下面总结下我春招的历程。

字节跳动蚂蚁金服

由于蚂蚁金服笔试 A 了1.9道(一共两道),所以一二面没有做算法题。另外蚂蚁是电话面试,在家里吃火锅的时候突然一个电话打来,后来屁颠屁颠收拾了下就去面试了。

腾讯

本来实习投的是 WXG,后来 WXG 打电话过来问我愿不愿意去广州实习,实在是太远了就拒绝了。后来简历就被 PCG 老了,面试官说主要做腾讯体育。感觉部门比较一般,一、二面通过后拒绝了后续的面试,准备秋招再战 WXG。腾讯的面试也很硬核,每次面试官都是直接打开 IDE 写题,并且面试 90% 时间都是写算法题…

美团

美团也是提前做过笔试,所以面试时没考算法题

美团技术只有二面,而且 hr 面后意向书拖得特别久…我主动问了一面面试官后,当天晚上 hr 就打电话和我沟通了。

快手

春招只面了上面几家公司,之后选择了在字节跳动实习。

秋招历程字节跳动

清华大学信息与通信工程学硕(清华通信本硕巨佬)(2)

蚂蚁金服

清华大学信息与通信工程学硕(清华通信本硕巨佬)(3)

腾讯 WXG

一共三轮面试,都非常硬核,每轮基本都两小时。

清华大学信息与通信工程学硕(清华通信本硕巨佬)(4)

美团/快手

和实习面的内容基本一致,不再详述

清华大学信息与通信工程学硕(清华通信本硕巨佬)(5)

清华大学信息与通信工程学硕(清华通信本硕巨佬)(6)

Shopee 新加坡秋招总结

1.重视算法:可以看到,大部分公司校招面试都强调算法题的考核,并且考核的基本都是常见题型。所以在算法上,需要下狠功夫进行准备。另外,还需要对边界条件的处理予以重视。我前后把《剑指offer》刷了三遍,左程云的那本书看了两遍,Leetcode 上也做了 400 道题。

2.基础知识:80% 的面试知识点都是常见“八股文”,面试前找一份相应的总结资料,并理解通透即可。

3.尽量找人内推:有一些公司内推可以免除笔试考核,直接进入面试环节,并且可以直接内推到你所感兴趣的部门主管手上。如果没有认识师兄师姐,可以在学校 bbs,牛客网等平台上进行内推信息的查询。

4.春招很重要!春招很重要!春招很重要!有一些公司(例如阿里巴巴)在你春招通过后,可以拿到秋招绿色直通车,秋招直接参加终面。并且,春招面试难度往往低于秋招。另外,春招可以及时让你查漏补缺,为秋招做好准备。所以不论导师放不放实习,都建议投递下春招参加面试。

5.写完算法题后,一定要自己写几个测试用例自测一下!如果有错误可以及时发现,没错误的话也可以给面试官留下良好印象。

6.秋招一定要尽早投递,不要等到“完全准备好”后再去投递。一是因为某些岗位 hc 少,越早投递越容易占坑。二是面试永远不存在所谓“完全准备好”的状态,要对自己有信心。

7.面试中一定要与面试官进行沟通,不要一个人一直埋着头写代码。如果你沟通能力不佳,也会被面试官拒掉。

,