算法转 Java 后端,2021秋招斩获腾讯、京东、百度等大厂offer 面经分享!

这是一篇来自算法转Java后端的一位读者的投稿!文章主要分享了作者从迷茫崩溃到最终斩获腾讯、京东、百度等大厂 offer 的经历。文章内容很全面、真实,相信可以对正在准备面试的小伙伴有帮助!

意识到又一年的秋招大戏要开始了,也不由的想起了去年这会的自己。就想写这篇文章记录一下曾经的秋招之路,也希望能帮助到看到这篇文章的各位。

个人简介

不用太多介绍,也不用太多指教,三秒钟之内就能让大家尖叫…嗯…好了,不闹了。开始!

我是 2021 年毕业的研究生。本科是在一所双非大学读的,专业是软件工程,本科时学过一些 Java 开发。因为学历一般,又对科研存在幻想,我选择了考研,拼了老命总算是考上了一所中游 985。

读研期间,我主要做的是自然语言处理方向。但是!因为我们组做自然语言处理是在我读研刚入学时起步的,甚至当时整个实验室只有一块显卡,所以,研一基本上没做什么东西。研一暑假的时候,我才在师兄的帮助下入了门,搞了一个研究性的项目和一个工程类的算法项目。

迷茫期

当时是 2020 年的 2 月底,也就是研二的下学期,因为疫情被困在家,当时的想法还是做算法,于是就把算法的项目准备了一下,又准备了准备基础知识,就开始投实习试水。但是因为没有比较硬的论文,也没有比较硬的项目,所以投了几家大厂都没理我。

虽然,美团给了我面试机会,但是,我被面试官吊打了。到最后,只过了两家还行的“中厂”。但是,因为导师严禁出去实习,所以也没实习成。

那段时间特别迷茫,天天在网上问一些算法大佬,焦虑的不行!

我当时想:以我自己的条件准备到 6 月,几乎没可能在秋招面试上岸大厂的算法岗。

算法转 Java 后端

整个 3 月都在纠结一个事情,继续硬刚算法还是转做 Java 后端。算法确实工资比较高,但是自己其实打心里更喜欢做一些工程应用(因为就算让我做算法,我也喜欢做工程应用类型的算法)。

并且,当时自己的条件进大厂算法已经很难了,肯定去不了好的算法团队,拼一拼开发或许还能去比较好的团队。

但是,因为 Java 主要是在本科时学的,已经很久没有做过,很多都忘了,甚至 Java 语法都很生疏了。并且,像 JVM,Redis,RabbitMQ 相关的,当时也没学过,一直在想就几个月的时间真的能不能把这些东西学好。还好在四月初的一天中午,躺在床上睡不着,做出了一个重要的决定: 转 Java 后端

在咨询了几个学长学姐,以及几个朋友以后,订好了学习计划。当时的计划是这样的。

  1. 首先复习 Java 的基本语法以及一些集合用法,先达到能比较熟练的用 Java 写代码。因为从 2 月多就开始刷 LeetCode 了,当时已经用 Python 刷了 30 多道,就又用 Java 把这些做过的题写了一遍,到 9 月底我的秋招结束时一共刷了 130 道左右,刷了两遍。
  2. 把自己本科时用 Java 做的电商系统又拿出来温习了一下改成了秒杀系统,这当作我的第一个项目。另一个项目是看着网课仿照 Spring 源码做了一个简化版的 Spring 框架(只实现了几个最基本的功能)。
  3. 开始学习 JVM,MySQL,Redis 的原理,以及 Java 集合的一些实现方法等。
  4. 这是在当时 4-6 月所做的准备。到六月的时候,项目梳理的不太清楚,其实有些地方是看网上代码写的,只是能用了,具体怎么做自己也说不清,那些面试基础知识也记得不太劳。但是因为时间也差不多了,就开始往外投简历。

崩溃期

2020 年的 6 月底到 8 月中下旬,可以说是最艰难的一段时间。6 月中下旬开始陆续向一些公司投简历,大部分简历投了都石沉大海,或者笔试做了没了消息。

好不容易在七月初收到了招银网络的笔试和面试机会。招银网络的面试算是问的很简单了,但是因为当时准备的不好,一面后我被无情的放入了招银网络的人才库中。

我很难受,第一场面试就打了败仗,这让我有点措手不及!

接下来将近有 10 多天的时间,我没有接到任何公司 hr 的电话。然后又在随后的一个月中,百度一面挂、一点咨询三面挂、快手一面挂、字节二面挂、网易笔试没过…以及各种公司投完简历没信,或笔试没过。这段时间一天可能会有两场笔试外加三场面试,到了晚上累的说话都不想多说。但是迎面而来的是一封封进入人才库的感谢信。

守得云开见月明

还好的是我在那段时间并没有放弃学习。我在学长学姐的指导下,开始梳理我的项目。

我在秒杀项目上分别从 MySQL 部分以及 Redis 部分做了一些自己的优化(自己设计的架构,也算是有了一些创新点)。并且,将简化版的 Spring 框架做了一些梳理,较为深刻的理解了 Spring 那几个基本功能的设计方法以及意图。

这两个项目在面试后期确实起到了很大的作用。并且对 MySQL 的一些底层设计做了一些了解,比如 MySQL 怎样实现回滚。并且开始在网上看一些还不错的面试题总结,我总结了一份,在后面内容展示,并且在一场场的面试中,将这些知识点记得很牢。

在八月下旬时,我觉得自己的实力应该有很大的提升了,就开始换了个部门重新面试百度,一面的面试官是个比较较真的人,我刚介绍了项目几句,那个面试官直接打断我说,你等会,咱们一点一点的来,于是他一句我一句的一点点的把秒杀项目梳理了一遍。在他严肃的追问了很多问题后,突然语气很满意的说,我觉得你做的挺不错的,在那一瞬间我感觉我的任督二脉都打通了,感觉已经不怕任何面试官再问这个项目了,后续的半个小时,他问了我一些基础知识并且聊了一些职业规划,就满意的结束面试了(但是事后那个部门貌似招够人了,在二面时面试官也很满意,可是依然没通过面试,但是当时不知道)。

在百度一面结束后就收到了度小满打来的约面电话,约了第二天的面试。度小满的面试经历算是我整个面试的转折点,重要性和情节跌宕起伏性堪比李云龙打平安县城。一面的面试官因为他们那边开会迟到了几分钟,他坐下跟我表达了歉意,我也表示理解,说了声您辛苦了。然后面试官就开始了面试,但是面试官在面试过程中不知道什么原因全程很愤怒的感觉,并且时常打断我,语气不善的提出一些刁钻的问题。

我在忍了几次以后也不惯他这毛病,于是就同样开始语气不善的回答他的问题,并且对于一些我觉得不太好的问题,我就直接的回问:“您觉得您问我这些问题有什么意义吗?”。

在将近一个小时的面试中,我觉得我们就要吵起来了。在面试的结尾我准备关视频时,面试官突然来了一句,你等下下一个面试官。当时我的表情可能有点难以形容…

在等了几分钟以后,二面的面试官来了,刚坐下他就说:“一面的面试官对你评价不错,咱们开始吧!”。

和二面面试官的面试在很好的氛围中结束,面试官问我的问题基本都是我擅长的,面试官边面试边问我怎么学的这么好。于是紧接着就要约三面主管面,但是因为晚上有事,就约到了第二天。好不容易到主管面了,自然要好好表现,面试开始以后我表现的很有礼貌,但是那位主管不知道怎么回事,可能也是心情不好?面试过程中总是怼我,在比忍一面面试官多忍了几次以后,我又开始了反怼,在一个小时的面试中,又几次差不多吵起来的感觉…在面试结束问我有什么问题吗?我直接语气不善的说了句我没什么问题,就准备关电脑,这时,神奇的一幕又来了,主管突然和我说:“我觉得你学习能力挺不错的,我们打算给你 offer,但是你在收到 offer 以后,一定要确定在我们这稳定做一段时间,你再接受 offer”。

???嗯?你们是怎么回事…接下来的故事就很神奇,在主管面完的当天晚上 9 点左右,我手机震动了一下就收到了我人生中的第一份录用意向书,当时激动的差点哭了出来。
算法转 Java 后端,2021秋招斩获腾讯、京东、百度等大厂offer 面经分享!_第1张图片

总结

接下来是个人的一些见解,供大家参考。

  1. 我认为算法和开发这两个方向,没有好坏之分,大家应该结合自己的兴趣去选择,并且最终尽量去一个在这个方向上比较优秀的团队。
  2. 在面试前期都会很艰难的,但是不要放弃学习,等面到 9 月,10 月,甚至 11 月时你会感觉面的很顺畅的。(并且个人感觉,面试到 10 月后,因为还在招的公司都是没招够人的,面试要求会有一定降低)。
  3. 要注意好好梳理自己的项目,在讲解自己的项目时逻辑清楚,这样很加分。
  4. 虽然做 offer 收割机也没必要,但是不要拿到一个 offer 就结束秋招了,这样你后期谈薪的时候很被动。
  5. 持续学习,补充技能

技能储备

不用多说,相信大家都有一个共识:无论什么行业,最牛逼的人肯定是站在金字塔端的人。所以,想做一个牛逼的程序员,那么就要让自己站的更高,成为技术大牛并不是一朝一夕的事情,需要时间的沉淀和技术的积累。

下面是详细的学习路线及资源:

在这里插入图片描述
Java成长笔记大致内容如下:

0-1年入门:

  • Java基础复盘(面向对象+Java的超类+Java的反射机制+异常处理+集合+泛型+基础IO操作+多线程+网络编程+JDK新特性)

  • Web编程初探(Servlet+MySQL数据库+商品管理系统实战)

  • SSM从入门到精通(Spring+SpringMVC+Mybatis+商品管理系统实战-SSM版)

  • SpringBoot快速上手(SpringBoot+基于SpringBoot的商品管理系统实战)

  • 零距离互联网项目实战(Linux+Redis+双十一秒杀实战系统)

1-3年高工:

  • 并发编程进阶(并发工具类实战+CAS+显示锁解析+线程池内部机制+性能优化)

  • JVM深度剖析(理解运行时数据区+堆外内存解读+JDK+内存泄漏问题排查+Arthas+GC算法和垃圾回收器+类加载机制等)

  • MySQL深度进阶

  • 深入Tomcat底层(线程模型+性能调优)

3-5年资深:

  • 数据库(调优+事务+锁+集群+主从+缓存等)

  • Linux(命令+生产环境+日志等)

  • 中间件&分布式(dubbo+MQ/kafka、ElasticSearch、SpringCloud等组件)

5-7年架构:

  • 开源框架(Spring5源码+SpringMVC源码+Mybatis源码)

  • 分布式架构(Zk实战+RabbitMQ+RocketMQ+Kafka)

  • 高效存储(Redis+mongoDB+MySQL高可用+Mycat+Sharing-Sphere)

  • 微服务架构(RPC+SpringBoot+SpringCloud Netflix+SpringCloud Alibaba+docker+k8s)

这些内容均免费分享给大家,需要完整版的朋友,点击这里查看获取方式

《Java核心知识点合集(283页)》

内容涵盖:Java基础、JVM、高并发、多线程、分布式、设计模式、Spring全家桶、Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、MongoDB、Redis、MySQL、RabbitMQ、Kafka、Linux、Netty、Tomcat、数据库、云计算等
在这里插入图片描述

《Java中高级核心知识点合集(524页)》

在这里插入图片描述

《Java高级架构知识点整理》

在这里插入图片描述

《Docker从入门到实践》

在这里插入图片描述

《spring could 学习笔记》

在这里插入图片描述

《MySQL性能调优与架构设计解析文档》305页

在这里插入图片描述

《Nginx入门到实战》319页

在这里插入图片描述

《Java并发编程》385页

在这里插入图片描述

《1000道 互联网Java工程师面试题 (485页)》

在这里插入图片描述
以上这些内容均免费分享给大家,需要完整版的朋友,点击这里获取,备注“CSDN+面经”一键三连提高通过率

所以,最后希望同为代码献身的我们,不负初衷,不畏困难,拥抱发展!

在到来的2021秋招,提前祝大家找到心仪的工作~争取能够帮助更多学习 Java 的小伙伴!共勉!凎!

你可能感兴趣的:(Java,面试,java,百度,腾讯,京东,后端面试)