今天分享一篇春招斩获了字节和腾讯offer 的面经。
(相关资料图)
整个面经都写的很详细,也有自己的思考,值得学习。
以下是求职者分享的内容:
前言
我背景是NUS计算机硕士,武汉理工EE本科,春招收获腾讯、字节等后端实习Offer,目前仍在字节实习,今天给大家分享一下面试准备经验,我认为也同样适用于大家日常的学习。
在开始分享之前,我想给大家抛出一个我认为的技术面试公式,仅供大家参考,欢迎大家一起讨论:
面试 = 40% 八股 + 30% 算法题 + 20% 项目经验 + 10% Idea
在接下来的面试准备经验分享中,我会着重介绍项目经验与Idea。
八股&算法题
八股和算法题我想市面上资料已经数不胜数了,这里我简略说一下。
如果大家已经对此部分准备足够充分或者已经有着自己的方法论或学习路线,可以直接快进到 项目经验 & Idea。
八股准备
对于八股准备,我主要以 Java Guide和 小林Coding为主,书本(如Redis设计与实现、JVM圣经、Java并发编程的艺术、高性能MySQL)为辅。如果大家时间紧张,可以不看书。此外,我是面试驱动复习,八股文复习与面试相互交叉,是一个相互促进的过程。
大家可以参照我的复习路线与经验,以面试作为驱动力,高效地复习八股文。这一阶段不考验智商,只考验耐心、毅力。因为一轮复习的时候大家可能会很新鲜,接触或复习到很多有意思的知识点,感觉自己有很大的提升,这一阶段可能还比较有趣。但是在二轮复习尤其是穿插了面试之后,大家可能会遇到两个问题:一个是感觉到很慌,认为自己什么都不会,看一个面经慌一次;另一个是感觉到很枯燥但又不敢不看。不管是哪一个问题,都需要静下心来,戒骄戒躁,迅速调整心态,不要乱了阵脚。八股文这里我相信只要能花费20天~1个月的时间,每天拉满,一定能攻克。
算法题准备
对于算法题准备,没有任何捷径除非天赋加持,刷就完了。我当时候是LC刷了500多道题目,还有在其他平台也零散地做了一些题,总体刷了8个月。其实精刷200~300道题就足够用了。大家可以以Leetcode为主,着重做剑指Offer,最好做2~3遍。接下来我根据复习时间长短,提供两种策略。
3. 项目经验
接下来,我将重点介绍 项目经验 与 "Idea"。
对于项目经验,我先为大家介绍项目,然后从项目准备中分享我的经验。
我准备了三个项目:智能停车场项目、仿B站项目、RPC项目。这些都是我自己日常学习的项目,不是实习项目。顺便说一下我在此之前只有一段很水的实习。
现在,我来总结一下项目准备中需要注意的点:
4. “Idea”
对于 "Idea",我认为占比是最少的甚至可能面试官压根不会问你,但是我认为它对我而言是最有用的,实际上也指导了我整个面试过程甚至是学习编程的过程。
我这里的 "Idea"是指 你想要什么& 你的一些灵光乍现的想法。
"Idea"第一层
"Idea"第一层:我认为需要清晰地认识到自己学习编程、想要进大厂是为了什么,这一点实际上直接或间接地指引着我们的日常学习或工作。我可以先和大家分享一下我在实习之前的 "Idea"(实习后我又有了新的认知与变化,这部分大家有兴趣我之后再做详细的分享)。
我学习编程的目的就是觉得有意思,做网站、开发小程序、学习前后端、部署服务器等都很有挑战性,做出以后也很有成就感,于是一发不可收拾。
想要进大厂一方面是因为大厂给钱确实多,另一方面还是因为想要进公司学到一些真正企业落地的技术,并能够真正做出一些产品或项目,直接点说就是想要干点真东西出来。
此外我也对自己的职业生涯有着较为清晰的规划,我想的是工作中以后端为主,深耕技术,向架构师的方向迈进;日常学习中提升自己的技术广度,以兴趣为导向,涉猎各个领域,尝试各种新东西。
我上述所说的 "Idea",确实对我面试过程中起到了推波助澜的作用。因为当面试官和我聊起日常学习、职业规划时,我整个人的头脑是清晰的,我可以清晰地给他讲述我的想法。
这一点可以给面试官留下很好的印象,毕竟程序员面试并不仅仅是技术的考察,而是综合评估。此外,我还可以给大家举出一个最近组内的case,我一个同事面试其他后端实习生,但是当问到那位同学有没有投其他岗位时,他犹豫不定。
他说自己不确定,之后会尝试算法岗。面试官就认为这位同学没有很清晰的规划,即使招进来,他可能心思也不会完全地投入到后端工作中。(可能还有其他多方面因素导致面试挂掉)
"Idea"第二层
"Idea"第二层:是否有一些奇思妙想、是否正在尝试做自己的开源项目。这一点我在腾讯面试的过程中深有体会,我先和大家分享一下这段面试经历。
三轮面试几乎没有问什么八股文,第三轮面试在拷打项目,另外两轮都是业务场景设计题以及聊日常学习、聊开源。尤其是第一轮面试给我的印象最深刻,面试官估计很多人都听说过,是一位PHP的开源大佬。
面试中他一直在给我抛出与实际业务相贴近的场景设计题,开放题目,没有固定答案,我觉得是在考察我的思维广度和技术广度。这些问题我也都给出了自己的思考。此外,我们也聊到了开源项目,他向我分享了他做开源的初衷与过程。
而我也一直想要去做自己的开源项目,我和他说了我的想法。这一场面试也让我学习到了很多在八股文中无法学习到的东西。第二轮面试中,面试官最后问了我最近在学习什么,我很自然地说了关于GPT的一些话题以及我想要做一个AIGC的简历项目。本来面试已经准备结束了,但是面试官可能对这个话题比较感兴趣,又和我聊了不到10分钟。
从我这两场面试中,我感觉到有着自己的想法很重要,是否每天有在探索并思考一些新东西,并去实际地做出来一些有意思的项目或产品。这一点是我从学编程以来的兴趣所在,兴趣推动着我不断地去探索一些新东西,经常性地产出自己的"Idea"。
尽管有一些似乎和后端关联性不大,但是它其实最终在一定程度上帮我拿到了Offer。而且"Idea"也可以促使自己即使在春招秋招结束后,还能够有自驱力并且快乐开心地去学习编程,这一点也是我认为最重要的。
总结一下"Idea"就是:清晰认知自我,不断尝试探索。
往期推荐