1. 前言

想来今日现已入职字节 1 个多个月啦,身边也有许多苍茫的同学,常常问询我怎么温习陈腔滥调、预备面试。今日这篇文章主要给我们供给一个思路,供给一个我总结的面试公式,希望能供给一些新的维度供我们参阅~

我们好,我是ltyzzz。这或许是我第一次和我们做自我介绍~之前一向在忙着玩 GPT 项目。

我布景是NUS计算机硕士,武汉理工EE本科,春招收获腾讯、字节等后端实习Offer,现在仍在字节实习,今日给我们共享一下面试预备阅历(挨近5000字),我以为也相同适用于我们日常的学习。现在我实习刚满一个月,之后我会陆续给我们共享实习的作业阅历~

在开始共享之前,我想给我们抛出一个我以为的技能面试公式,仅供我们参阅,欢迎我们一同谈论:

面试 = 40% 陈腔滥调 + 30% 算法题 + 20% 项目阅历 + 10% Idea

在接下来的面试预备阅历共享中,我会侧重介绍项目阅历与Idea。

2. 陈腔滥调&算法题

陈腔滥调和算法题我想市面上材料现已数不胜数了,这儿我简略说一下。

假如我们现已对此部分预备满足充分或者现已有着自己的方法论或学习道路,可以直接快进到 项目阅历 & Idea

2.1 陈腔滥调预备

关于陈腔滥调预备,我主要以 Java Guide小林Coding 为主,书本(如Redis规划与完成、JVM圣经、Java并发编程的艺术、高性能MySQL)为辅。假如我们时刻紧张,可以不看书。此外,我是面试驱动温习,陈腔滥调文温习与面试彼此穿插,是一个彼此促进的进程。

  • 第一轮温习我花费了大约1到2周的时刻,粗糙粗浅地过了一遍MySQL、Redis、JUC、JVM、操作体系、计算机网络、微服务等基础知识,大约是1~2天一个板块,可以简略的敷衍一下基础面试题,一轮温习完之后正好对应于字节跳动的一轮面试。
  • 第二轮温习我花费了大约20天的时刻,侧重深入地学习与温习之前各个板块的知识点,并调配面经(百度或Google搜索:某某公司后端/前端面经),重复地查漏补缺,遇到陌生的标题或知识点,从书上或网上寻觅答案,记录下来,便于之后温习。我大约看了不到50篇面经,梳理了挨近150道不了解的面试标题,我们有需求的话,之后也可以在星球中共享给我们。第二轮温习与美团、字节、腾讯、阿里面试彼此穿插。这段时刻预备的许多陈腔滥调面试标题,在面试中也有被问到。

我们可以参照我的温习道路与阅历,以面试作为驱动力,高效地温习陈腔滥调文。这一阶段不检测智商,只检测耐心、意志。由于一轮温习的时分我们或许会很新鲜,接触或温习到许多有意思的知识点,感觉自己有很大的提升,这一阶段或许还比较有趣。但是在二轮温习尤其是穿插了面试之后,我们或许会遇到两个问题:一个是感觉到很慌,以为自己什么都不会,看一个面经慌一次;另一个是感觉到很单调但又不敢不看。不管是哪一个问题,都需求静下心来,骄傲自大,敏捷调整心态,不要乱了阵脚。陈腔滥调文这儿我信任只要能花费20天~1个月的时刻,每天拉满,必定能霸占。

2.2 算法题预备

关于算法题预备,没有任何捷径除非天赋加持,刷就完了。我当时分是LC刷了500多道标题,还有在其他渠道也零散地做了一些题,总体刷了8个月。其实精刷200~300道题就满足用了。我们可以以Leetcode为主,侧重做剑指Offer,最好做2~3遍。接下来我根据温习时刻长短,供给两种战略。

  • 时刻长且充裕:每天坚持刷LC每日一题,拓展思路。抽出必定时刻刷 LC HOT100精选200 题单,也可以做一些闻名的算法博主总结的题单(推荐宫水三叶姐的LC题单)。总之便是多刷多看,加上剑指Offer的标题,半年多时刻可以刷够300多道题,满足敷衍一般算法题。
  • 时刻短且紧:会集性地刷 剑指Offer,比如会集一周时刻乃至更短。看题10分钟没思路的话就直接看题解,重复的刷题,重复不断地刻意练习,直到背过停止。若仍有余力,可以再抽空刷刷 LC HOT100 题单。即便时刻如此之短,此时的刷题量也可到达100道题左右。

3. 项目阅历

接下来,我将要点介绍 项目阅历 与 “Idea”。

关于项目阅历,我先为我们介绍项目,然后从项目预备中共享我的阅历。

我预备了三个项目:智能停车场项目、仿B站项目、RPC项目。这些都是我自己日常学习的项目,不是实习项目。顺便说一下我在此之前只有一段很水的实习。

  • 智能停车场项目,简略总结便是一个增删改查项目,技能含量不是很高。前端通过小程序和后台管理体系展现。前端技能栈是Uniapp + Vue,后端技能栈是Springboot、SpringCloud、Mybatis等。仅仅用了一些简略的微服务技能(Feign、Gateway、Nacos),后台管理体系用了RBAC完成权限管理。但是在包装项目时,我添加了几个亮点:Redis数据缓存、分布式Session、分布式ID、分布式锁技能、与网络摄像头联调开启道闸。假如我们后续需求,我可以重构一遍项目后端,并开源出来,供我们学习(自以为小程序界面写的还算美观哈哈哈哈)。
  • 仿B站项目,这个项目含金量要高一些。它后端根本框架是我参阅Ruoyi Cloud Plus完成的,脚手架自带了许多功用如数据脱敏、幂等、微服务限流、可观测监控、分布式Session单点登录、安全性办法等。光是脚手架自带的功用点就够在面试上聊许多。此外,该项目我侧重于Redis相关的体系规划,如动态Feed流推拉、点赞谈论相关的计数体系、数据缓存,运用了许多Redis的数据结构。此外,还规划了站内信、单聊群聊、视频弹幕等功用点。这个项目是我和朋友一同做的,还没有做完,所以暂时无法开源给我们。
  • RPC项目,这个项目是我参照掘金小册中的RPC做的。此类项目现已许多了,但是在面试进程中,还是会被常常问到这个项目是怎么规划的。我一般会具体说出代理层、路由层、注册中心层、异步规划等的规划思路。有的面试官或许还会问压测相关的内容。假如说要将RPC项目写到简历中,必定要清楚核心功用的规划,并且重复地测验自己练习表达几回。

现在,我来总结一下项目预备中需求注意的点:

  • 预备的项目必定要是自己非常了解的项目,起码写到简历傍边的功用点可以经得起面试官的盘查。一般面试官也不会问的特别杂乱,只要预备充分,都是可以答复上来的。不了解的功用点最好不要写,不打无预备之仗。
  • 预备的项目最好是两个以上,一个可以为Web前后端项目,另一个可以为框架开发、中间件开发。这样一方面可以体现你事务才能okay,了解常见的开发场景,当mentor或leader派活的时分,你知道怎么下手去做,有自己的完成思路;另一方面可以体现你有必定的研究自学才能与处理问题才能,可以啃动硬骨头。
  • 此外,我以为我们可以从日常开发中发现需求,自己规划网站从实践动身,去处理痛点,这样的话在面试中更是加分项。由于实习或作业中,便是从实践需求动身,处理一个个事务场景。面试官会更加认可你的项目。这一点也与我之后要说的 “Idea” 有关。

4. “Idea”

关于 “Idea”,我以为占比是最少的乃至或许面试官压根不会问你,但是我以为它对我而言是最有用的,实践上也辅导了我整个面试进程乃至是学习编程的进程。我这儿的 “Idea”是指 你想要什么 & 你的一些灵光乍现的主意

  • “Idea”第一层:我以为需求明晰地认识到自己学习编程、想要进大厂是为了什么,这一点实践上直接或间接地指引着我们的日常学习或作业。我可以先和我们共享一下我在实习之前的 “Idea”(实习后我又有了新的认知与改变,这部分我们有爱好我之后再做具体的共享)。

    • 我学习编程的意图便是觉得有意思,做网站、开发小程序、学习前后端、部署服务器等都很有挑战性,做出以后也很有成就感,所以一发不可收拾。想要进大厂一方面是由于大厂给钱确实多,另一方面还是由于想要进公司学到一些真实企业落地的技能,并可以真实做出一些产品或项目,直接点说便是想要干点真东西出来。此外我也对自己的职业生涯有着较为明晰的规划,我想的是作业中以后端为主,深耕技能,向架构师的方向跨进;日常学习中提升自己的技能广度,以爱好为导向,涉猎各个领域,测验各种新东西。
    • 我上述所说的 “Idea”,确实对我面试进程中起到了火上加油的效果。由于当面试官和我聊起日常学习、职业规划时,我整个人的脑筋是明晰的,我可以明晰地给他讲述我的主意。这一点可以给面试官留下很好的印象,毕竟程序员面试并不仅仅是技能的调查,而是综合评价。此外,我还可以给我们举出一个最近组内的case,我一个搭档面试其他后端实习生,但是当问到那位同学有没有投其他岗位时,他犹豫不定。他说自己不确定,之后会测验算法岗。面试官就以为这位同学没有很明晰的规划,即便招进来,他或许心思也不会完全地投入到后端作业中。(或许还有其他多方面要素导致面试挂掉)
  • “Idea”第二层:是否有一些奇思妙想、是否正在测验做自己的开源项目。这一点我在腾讯面试的进程中深有体会,我先和我们共享一下这段面试阅历。

    • 三轮面试几乎没有问什么陈腔滥调文,第三轮面试在拷打项目,另外两轮都是事务场景规划题以及聊日常学习、聊开源。尤其是第一轮面试给我的印象最深刻,面试官估计许多人都听说过,是一位PHP的开源大佬。面试中他一向在给我抛出与实践事务相贴近的场景规划题,敞开标题,没有固定答案,我觉得是在调查我的思想广度和技能广度。这些问题我也都给出了自己的考虑。此外,我们也聊到了开源项目,他向我共享了他做开源的初衷与进程。而我也一向想要去做自己的开源项目,我和他说了我的主意。这一场面试也让我学习到了许多在陈腔滥调文中无法学习到的东西。第二轮面试中,面试官最后问了我最近在学习什么,我很自然地说了关于GPT的一些话题以及我想要做一个AIGC的简历项目。本来面试现已预备结束了,但是面试官或许对这个话题比较感爱好,又和我聊了不到10分钟。
    • 从我这两场面试中,我感觉到有着自己的主意很重要,是否每天有在探究并考虑一些新东西,并去实践地做出来一些有意思的项目或产品。这一点是我从学编程以来的爱好所在,爱好推动着我不断地去探究一些新东西,常常性地产出自己的”Idea”。虽然有一些好像和后端关联性不大,但是它其实终究在必定程度上帮我拿到了Offer。而且”Idea”也可以促进自己即便在春招秋招结束后,还可以有自驱力并且高兴开心地去学习编程,这一点也是我以为最重要的。

总结一下”Idea”便是:明晰认知自我,不断测验探究。

5. 跋文

以上这便是我的面试阅历共享啦~

这也是我第一次在自己的博客对外共享我的面试阅历,希望能给我们带来协助!

此外,假如我们感爱好,我可以之后共享一下我近期实习作业的阅历考虑,我信任必定可以给我们带来新的启示~

后续我会继续共享一些学习心得、技能干货和实战项目,协助我们在 金九银十 斩获各路大厂 Offer!