涨薪60%,从小厂逆袭,坐上美团技术专家(面经+心得)

news2024/11/24 23:11:56

前言

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

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

A:面试前的准备

1.目标企业

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

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

2.时间节点

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

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

  1. 着急招人干活的时候

  2. 年底坑比较多的时候

3.简历准备

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

  • 以项目为主体,设计你的简历

  • 针对企业的需要,突出你的技能

  • 项目的三要素(项目 = 产品 + 技术 + 结果)

  • 量化你的项目,给出数字

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

4.面试复习

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

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

美团一面:

  • redis集群,为什么是16384?哨兵模式,选举过程,会有脑裂问题么?raft算法,优缺点

  • JVM类加载器,自定义类加载器,双亲委派机制,优缺点,tomcat类加载机制

  • Tomcat热部署,热加载了解吗?怎么做到的?

  • cms收集器过程,g1收集器原理,怎么实现可预测停顿的?region的大小,结构

  • 内存溢出,内存泄漏遇到过吗?什么场景产生的?怎么解决的?

  • 锁升级过程,轻量锁可以变成偏向锁么?偏向锁可以变成无锁么?自旋锁,对象头结构,锁状态变化过程

  • kafka重平衡,重启服务怎么保证kafka不发生重平衡?有什么方案?

  • 怎么理解分布式和微服务?为什么要拆分服务?会产生什么问题?怎么解决这些问题?

  • 你们用的什么消息中间件?kafka,为什么用kafka?高吞吐量,怎么保证高吞吐量的?设计模型,零拷贝

  • 算法1:给定一个长度为N的整形数组arr,其中有N个互不相等的自然数1-N,请实现arr的排序,但是不要把下标0∼N−1位置上的数通过直接赋值的方式替换成1∼N

  • 算法2:判断一个树是否是平衡二叉树

美团二面:

  • Innodb的结构了解么?磁盘页和缓存区是怎么配合,以及查找的?缓冲区和磁盘数据不一致怎么办?mysql突然宕机了会出现数据丢失么?

  • redis字符串实现,sds和c区别,空间预分配

  • redis有序集合怎么实现的?跳表是什么?往跳表添加一个元素的过程,添加和获取元素,获取分数的时间复杂度,为什么不用红黑树?红黑树有什么特点?左旋右旋操作

  • io模型了解么?多路复用,selete,poll,epoll,epoll的结构,怎么注册事件,et和lt模式

  • 怎么理解高可用?如何保证高可用?有什么弊端,熔断机制,怎么实现?

  • 对于高并发怎么看,怎么算高并发,你们项目有吗?如果有会产生什么问题,怎么解决

  • 项目介绍

  • 算法:给定一个二叉树,请计算节点值之和最大的路径的节点值之和是多少,这个路径的开始节点和结束节点可以是二叉树中的任意节点

美团三面:

  • 项目介绍

  • 线上有遇到大流量的情况么,产生了什么问题,为什么数据库2000qps就撑不住了,有想过原因么,你们当时怎么处理的?

  • 限流怎么做,如果让你设计一个限流系统,怎么实现?

  • 算法:求一个float数的立方根,牛顿迭代法

  • 什么时候能入职,你对岗位的期望是什么?

  • 你还在面试其他公司么,目前是一个什么流程?

美团面试题答案:

C:如何实现质的飞跃?

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

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

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

  • 阅读书籍文档:

  • 面试刷题:

2.确立正确的技术方向

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

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

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

  • 架构师

  • 项目经理

  • 管理者

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

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

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

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

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

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

  • 能够阅读他人的代码是一个了解什么是糟糕设计的好机会。

  • 能够阅读别人乱七八糟的代码的话,也使得在需要更新的时候变得容易。

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

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

  • Spring源码笔记

  • SpringBoot技术笔记

  • 玩转Redis实用笔记

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

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

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

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

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

总结

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/489457.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机网络基础知识(一)计算机发展史、网络设备、网络结构及拓扑

文章目录 01 | 网络设备02 | 网络结构 && 拓扑 网络发展史可以追溯到20世纪60年代,当时美国国防部高级研究计划署(ARPA)启动了一个名为 ARPANET 的项目,旨在建立军事目的的分布式通信网络,使得网络中的任何一台…

【redis】redis红锁Redlock算法和底层源码分析

【redis】redis红锁Redlock算法和底层源码分析 文章目录 【redis】redis红锁Redlock算法和底层源码分析前言一、当前代码为8.0版,接上一步分布式锁的主要考点lock加锁关键逻辑unlock解锁关键逻辑 二、redis分布式锁-Redlock红锁主页说明:目前所写的分布式锁还有什么…

c++自学笔记(陆续更新)

本笔记为从菜鸟教程边学边记录的笔记---》C 教程 | 菜鸟教程 面向对象程序设计 封装(Encapsulation):封装是将数据和方法组合在一起,对外部隐藏实现细节,只公开对外提供的接口。这样可以提高安全性、可靠性和灵活性。…

C语言入门教程||C语言 头文件||C语言 强制类型转换

C语言 头文件 头文件是扩展名为 .h 的文件,包含了 C 函数声明和宏定义,被多个源文件中引用共享。有两种类型的头文件:程序员编写的头文件和编译器自带的头文件。 在程序中要使用头文件,需要使用 C 预处理指令 #include 来引用它…

USART串口接收

文章目录 运行环境:1.1 串口接收代码分析1)开启接收中断和空闲中断2)接收存储变量声明和定义3)中断处理函数 2.1实验效果 运行环境: ubuntu18.04.melodic 宏基暗影骑士笔记本 stm32f427IIH6 stlink 9-24v可调电源 usb转串口 杜邦线转4pin 1.1 串口接收…

Python | 人脸识别+活体检测+背景模糊+关键点检测系统(Face_Recognition+dlib+OpenCV+MediaPipe+PyQt)

本博客为人脸识别系统项目简介 项目GitHub完整源代码地址: 一、运行环境 本系统能够运行在基于PC操作系统Windows环境下,要求Windows操作系统安装Python 3.9 及以上环境,且已安装MySQL数据库。 Python3.9 安装:Python 3.9安装教程…

【UE】坦克开火

1. 添加开火的操作映射 2. 创建一个actor蓝图类,添加一个静态网格体组件 添加发射物移动组件 设置初始速度和最大速度 发射物重力范围设为0.05 添加音频组件 设置音效 3. 打开炮管的静态网格体 在插槽管理器中创建插槽 将创建的插槽放到炮口位置 4. 打开“BP_BaseT…

B-Tree (多路查找树)分析-20230503

B-Tree (多路查找树)学习-20230503 前言 B-树是一类多路查询树,它主要用于文件系统和某些数据库的索引,如果采用二叉平衡树访问文件里面的数据,最坏情况下,磁头可能需要进行O(h)次对磁盘的读写,其中h为树的高度&…

探究Android插件化开发的新思路——Shadow插件化框架

Shadow插件化框架是什么? Shadow是一种Android App的插件化框架,它利用类似于ClassLoader的机制来实现应用程序中的模块化,并让这些模块可以在运行时灵活地进行加载和卸载。Shadow框架主张将一个大型的Android App拆分成多个小模块&#xff…

提升V-Ray渲染效率的五个实用技巧!

Chaos V-Ray是一个 3D渲染插件,可用于所有主要的 3D设计和 CAD程序。V-Ray可以和 3ds Max、Cinema 4D、Houdini、Maya、Nuke、Revit、Rhino、SketchUp和 Unreal无缝协作。艺术家和设计师也可以通过使用 V-Ray的实时光线来追踪探索和分享自己的项目,并渲染…

SpringBoot调取OpenAi接口实现ChatGpt功能

很高兴和大家分享我实现的一个小项目,利用 Spring Boot 实现了一个 ChatGpt 对话系统。在本文中,我将详细介绍这个项目的实现步骤,以及代码实现。 什么是 ChatGpt ChatGpt 是一种基于 GPT 技术的对话系统,能够生成连贯、流畅、…

V-Ray怎么快速渲染_渲染加速小技巧

很多小伙伴在使用V-Ray渲染器的时候都想要更加快速的出图,今天Renderbus瑞云渲染就给大家分享一下V-Ray渲染加速的小技巧。 在了解渲染加速技巧之前,我们首先要了解渲染制作主要受两个因素影响——图像质量和渲染时间,高图像质量是以长渲染时…

k8s集群搭建(3主2从)

目录 kubeadm 和二进制安装 k8s 适用场景分析 多 master 节点高可用架构图 集群环境准备 部署过程 修改主机内核参数(所有节点) 配置阿里云的repo源(所有节点) 配置国内安装 docker 和 containerd 的阿里云的 repo 源 配置…

day11 TCP连接管理与UDP协议

目录 ​编辑 连接的建立——”三次握手” 连接的释放——“四次挥手” 保活计时器 用户数据报协议 UDP​编辑 连接的建立——”三次握手” TCP 建立连接的过程叫做握手。 采用三报文握手:在客户和服务器之间交换三个 TCP 报文段,以防止已失效的连接…

SPSS如何进行多重响应分析之案例实训?

文章目录 0.引言1.多重响应变量频率分析2.对多重响应变量集进行交叉表分析3.使用表过程研究多重响应变量集 0.引言 因科研等多场景需要进行绘图处理,笔者对SPSS进行了学习,本文通过《SPSS统计分析从入门到精通》及其配套素材结合网上相关资料进行学习笔记…

对模式的迷信,大部分是幻觉和妄想

对模式的迷信,大部分是幻觉和妄想 往往有严重的投机心理 郑翔洲,所谓模式设计专家 还是有点虚,仅供一点参考 说苹果、说华为、说小米这些总结都是事后诸葛亮 趣讲大白话:商业模式被妖魔化 【趣讲信息科技153期】 ****************…

从零构建等保三级|安全狗一站式等保解决方案助用户快速过等保

一 政策法规下的等级保护 “没有网络安全就没有国家安全,没有信息化就没有现代化。” 在2017年6月1日,我国开始全面实行《网络安全法》,其中第二十一条规定了“国家实行网络安全等级保护制度”。此外,在2019年5月13日&#xff…

数据开发常见问题

目录 环境变量过多或者参数值过长时,为什么提交作业失败? 为什么Shell作业状态和相关的YARN Application状态不一致? 创建作业和执行计划的区别是什么? 如何查看作业运行记录? 如何在OSS上查看日志? 读…

阿里云服务器vCPU和CPU有什么区别?

阿里云服务器vCPU和CPU是什么意思?CPU和vCPU有什么区别?一台云服务器ECS实例的CPU选项由CPU物理核心数和每核线程数决定,CPU是中央处理器,一个CPU可以包含若干个物理核,通过超线程HT(Hyper-Threading&#…

不坑盒子 (Office、WPS插件)高效办公,让你提前进入摸鱼状态。

不坑盒子简介 很多朋友在工作过程中需要对Word文档进行编辑处理,如果想让Word排版更有效率可以试试小编带来的这款不坑盒子软件,是一个非常好用的办公工具,拥有近百项功能的Word,wps插件,支持Office 2010以上的版本&a…