薪资幅度上涨70%,外包翻身,拿下美团点评L8级技术专家岗(面经+心得)

前言

大多数情况下,程序员的个人技能成长速度,远远大于公司规模或业务的成长速度。所以,跳槽成为了这个行业里最常见的一个词汇。

实际上,跳槽的目的无非是为了涨薪或是职业发展,我也不例外。普通本科毕业后,进了一家互联网公司,这几年里不断在积累经验,最终选择跳到美团,涨薪了50%,下面分享一下我个人的面经和一些心得建议。

A:面试前的准备

1.目标企业

在跳槽之前,一定要思考清楚自己的目标企业是什么,到底是去大公司当一颗螺丝钉,还是在中小公司做万金油。

当然,去大公司也不一定是螺丝钉,关键还是要看自己的技术水平和能力。所以综合自己的实际情况考量来看,目标企业在美团、字节和京东三家里选择。当然,3家都投了简历,最终在面试美团时发了力拿下了Offer。

2.时间节点

跳槽的时间节点是非常重要的,不同的时间节点,岗位面试的难易程度可能都有不同,主要是根据缺人的程度以及岗位HC的数量来划定的。

一般来说,以下两种情况,是比较容易通过面试拿到offer的:

  1. 着急招人干活的时候
  2. 年底坑比较多的时候

3.简历准备

关于简历的准备,我不用多说,大家应该也都明白。简历至少要满足以下几个要点:

  • 以项目为主体,设计你的简历
  • 针对企业的需要,突出你的技能
  • 项目的三要素(项目 = 产品 + 技术 + 结果)
  • 量化你的项目,给出数字

关于简历的准备,很多人可能不知道从何下手,我这边可以提供一些简历模板作为参考,对我个人来说,帮助还是非常大的。

【简历模板】

4.面试复习

关于面试前的复习,重要性我就不过多赘述了,相信只要面试过的人都知道,即使是临时抱佛脚,也比直接裸面要强得多。至于我的复习方法以及一些技巧,会在文章的第三部分详细说一说,希望能给你一些启发。

B:面试美团全过程(面试经历分享)

美团点评高级Java一面(技术,电话面试,约40分钟)

  1. 自我介绍。
  2. 项目介绍。
  3. 了解过redis源码及redis集群么?
  4. 分布式下redis如何保证线程安全?
  5. Hashmap的原理,源码?
  6. Hashmap增删的情况后端数据结构如何位移?
  7. hashmap容量为什么是2的幂次?
  8. object类你知道的方法?
  9. 你重写过hashcode和equals么,要注意什么?
  10. jvm内存分区,为什么要有新生代和老年代?
  11. 有做个JVM内存优化吗?
  12. 数据库索引 主键和唯一索引有什么区别?
  13. 聚集索引和非聚集索引的区别?
  14. MySQL存储引擎innoDB和MyISAM的区别?
  15. 讲一下稳定的排序算法和不稳定的排序算法?
  16. 讲一下快速排序的思想?

美团点评高级Java二面(技术,现场面试,约60分钟)

  1. 几种线程池区别?
  2. aio,nio,bio的了解,NIO的核心概念有哪些?
  3. 常用的NIO框架有哪些,优劣势?
  4. 事务的四大隔离级别?
  5. jvm场景问题, 标记清除多次后老年代产生内存碎片,引起full gc,接下来可能发生什么问题?
  6. MySQL innodb的b+树索引,主键索引,聚簇索引有什么区别?
  7. 数据库四大特性?
  8. MySQL里有哪些锁,行锁表锁,乐观锁呢?
  9. MySQL的死锁怎么产生的,举了两个例子。
  10. dubbo里的zookeeper是做什么的?
  11. 表锁 行锁 乐观锁 悲观锁的特点和区别?
  12. 并发工具包有哪些,具体怎么用?
  13. Docker平时怎么使用的?
  14. Kafka如何解决数据堆积?
  15. kafka消息的存储机制?
  16. 如何用kafka保证消息的有序性?
  17. kafka如何保证并发情况下消息只被消费一次?

美团点评高级Java三面题目(技术,现场面试,约60分钟)

  1. 项目介绍。
  2. 最有技术难度的项目,介绍下相关核心设计流程。
  3. 分布式下redis如何保证线程安全?
  4. redis持久化的方式以及区别?
  5. zookeeper如何实现分布式锁、其他分布式锁怎么实现?
  6. kafka的架构,如何用kafka保证消息的有序性?
  7. 数据库的优化包含哪些?MySQL的优化,谈两个你优化的例子。
  8. redis用的哪个版本?
  9. 如何搭建redis集群?
  10. redis如何主从同步?
  11. redis分布式锁注意事项?
  12. redis持久化的方式以及区别?
  13. redis持久化方式及区别?
  14. my sql数据量多大的时候需要分表?
  15. my sql常用的存储引擎及区别?
  16. zookeeper的作用:分布式锁、注册服务中心?
  17. zookeeper如何实现分布式锁、其他分布式锁怎么实现?
  18. 分布式事务的解决方案?
  19. 单点登录怎么实现?
  20. 秒杀系统怎么来实现?
  21. 工作中,遇见了技术瓶颈无法解决,你的解决思路?
  22. 技术选型方面,一个新技术和一个稳定的旧技术,你会如何选择,会考虑哪些因素?

美团点评高级Java四面题目(HR,现场面试,约30分钟)

  1. 自我介绍下。
  2. 自己的优点和缺点。
  3. 为啥想来美团,对美团了解多少?
  4. 心中的互联网公司排序。
  5. 工作中遇见暂时无法解决的问题,你是怎么应对的?
  6. 最近在学什么新技术
  7. 你是通过什么路径与方法,去学习和接触一门新技术的?
  8. 未来的职业规划是什么?
  9. 沟通岗位与薪资:此处省略......

美团面试题答案:

C:如何实现质的飞跃?

1.技术沉淀(学习+积累)

对于技术新人来说,无论是在大厂小厂,还是在外包公司,基本上都是做得简单的CRUD工作。很多人认为,重复简单的工作对自己的技术是没有提升的,但实际上也有人能从中杀出一条血路,所以关键是你自己是否花了心思,付出了努力。

当然,我个人也有自己的一套学习方式和习惯,平时喜欢利用碎片时间来看点什么东西,比如一些技术性的书籍或文档,还有一些视频讲解等,经常会让我有一种恍然大悟的感觉,对我的工作也起到了很大的帮助。

  • 阅读书籍文档:

  • 看视频学习:

  • 面试刷题:

BAT一线大厂面试题

专题面试题

2.确立正确的技术方向

在我看来,有时候选择比能力更重要,俗话说:站在风口上,猪都能起飞。

对于程序员来说,尽早地做好自己的职业规划,确立发展路线,是很有必要的。我认为,同样的实力,善于发现和判断机会的人,永远占据先机。

程序员的发展方向,大致分为三类:

  • 架构师
  • 项目经理
  • 管理者

首先抛开管理者不谈,就前两个方向来说,对你的技术水平和工作能力都有一定的要求,首先我们要清楚,技术是根基,其次才是能力偏差。

比如,架构师需要你具备完善和扎实的技术体系,具有一定的修养,具备较好的系统分析和设计能力,具有丰富的开发项目经验;而项目经理,除了技术要过关以外,还应该了解软件开发的的各个环节、了解开发的各种技术和运用、了解开发队伍人员的水平和特点。

3.学习如何阅读别人的代码(笔记)

不知道为啥,很多开发人员总有一股“迷之自信”,抱着“除了我,其他每个人写的代码都是垃圾”这种想法,用杨笠的观念:为什么你明明很普通,却又那么自信?

实际上,能够在别人的代码之上继续工作是一项有多重好处的伟大技能。因为不论以前的代码是多么混乱或者考虑不周,你都需要去扩展它。

由此,它会对你两方面都带来益处:

  • 能够阅读他人的代码是一个了解什么是糟糕设计的好机会。
  • 能够阅读别人乱七八糟的代码的话,也使得在需要更新的时候变得容易。

我个人会阅读一些大佬的技术笔记,其中就包括了一些开发技巧和源码:

(篇幅有限,只展示部分了,笔记包括Spring全家桶、Redis、MySQL、JVM等各个知识点)

  • Spring源码笔记

  • SpringBoot技术笔记

  • 玩转Redis实用笔记

4.培养自己的场景化思维

在工作的前两年里,我一直都在培养自己的场景化思维,这种思维是很难在大学学习中复制到的。何为场景化思维?也就是会主动去思考最终用户可能会如何错误地使用你的软件。

由于大部分编程都是维护性的,因此它通常意味着更改与其他代码高度耦合的代码。即使是简单的更改也需要跟踪对象、方法和 API的每一个可能存在引用的地方。否则,很容易意外地打破你没有意识到的模块连接。即使您只是更改了数据库中的数据类型。它还包括在进入开发之前通过边缘案例和整体化的高级设计进行思考。

对于开发新模块或者微服务的场景就更加复杂,花时间去考虑所构建的操作场景非常重要。想想未来的用户可能需要如何使用您的新模块,他们可能会如何不正确地使用它,可能需要什么参数,以及未来的程序员是否会以不同的方式需要您的代码。

简单的编码和编程只是问题的一部分。创建一个在你的电脑上运行良好的软件是很容易的。但是部署代码可能出错的方式就会有很多。一旦进入生产环境,就很难说代码将如何使用,以及哪些其他代码将附加到原始代码中。五年后,未来的程序员可能会对你的代码局限性感到沮丧。

总结

Java程序员,最宝贵的时间是从你开始工作那一刻计算的“黄金五年”,这五年是你学习和成长的最好时期。

为自己奠定一个好的基础,才能够在未来的发展道路上少走些弯路,实现自己年薪五十万、一百万的梦想。

需要文章中提到的面试题、笔记、电子书、学习视频,可以前往下方自取!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值