前言
博主普通本科毕业,现在在一家小公司工作已经两年了,感觉公司的技术已经远远不能满足我了,所以我决定跳槽,顺便看看自己的水平到底到了什么层次。
最近也是面了一些大厂,包括:阿里、头条、美团、京东、小米、网易等等,也是拿到了一些大厂的offer,对自己还是比较满意的。
目前拿到的offer:
- 阿里c2m部门
- 美团买菜营销系统部门
- 抖音电商部门
下面我会分享一些自己面试的经验给大家,希望能帮助大家拿到心仪的offer!
面试经历
其实一开始决定跳大厂,心里面是很没底的,一直觉得自己挺菜的,还需要沉淀,只是想面试试试,看看自己进步了多少,结果就收到阿里的面试,当时还是很慌的,所以就急急忙忙准备了一周。
第一次面试的时候还是挺慌的,感觉发挥的也不好,后面面多了就越来越好了,所以大家面试前还是最好找一些不想去的公司练练手(大佬除外),虽然不太地道,但是这个行业就是这样,都能理解的吧。
面试准备
简历
重点放在专业技能和项目经验两块
1.你的简历就是你给面试官提供的考点,简历上的东西必须自己Hold住,万一自己写的东西被问住了,会很尴尬,给面试官留下的印象也不好,所以就是会啥写啥。
2.技术栈最好不要写精通,你敢写面试官就敢问,被问倒了很尴尬的,写熟悉,了解就行。
怎么投简历
我这里强烈建议找人内推,这样简历通过的概率大些,如果找不到,可以试试脉脉,我就是从脉脉投的简历,把状态改成寻找机会就行,会有很多人找你的。
复习
我复习主要以看书为主,推荐一些我看的书籍和资料,有时间的话尽量看的细一点,多看几遍,没时间的话就挑重点看。
- 并发编程:Java并发编程的艺术,Java发编程实战
- JVM:深入理解Java虚拟机
- Redis:Redis设计与实现,Redis开发与运维
- MySQL:高性能MySQL,MySQL技术内幕
- Kafka:Apache Kafka实战
- 设计模式:大话设计模式,设计模式之禅
- 分布式:从Paxos到Zookeeper分布式一致性原理与实践
面试技巧
1.面试得自信且谦虚,声音自信,面试表现谦虚,得给面试官一种你啥都会,很稳的感觉(实际内心很慌),然后语言表达流畅,吐字清晰,回答问题也要有逻辑性,不能支支吾吾半天说不明白,面试官都听不懂,这就很尴尬了,这个可以自己多练习一下。
2.面试本质是一个自我优势展示的过程,不要让面试官问一句自己回答一句,主动抛出一些可能的点让面试官来主动问你,还有就是不会的问题就说不会,这个没关系的,千万别瞎说。
3.不要眼高手低,不少小伙伴看面经觉得自己啥都会,但是会与面试过程中能清晰有层次的说出来是两回事,费曼学习法可以了解一下,举个例子:比如sychronized的原理,能不能说出点面试官眼前一亮的东西,这还是不容易的,其实面试主要是证明你比别人更有技术的深度,广度,不然都是背八股文,那面试官看不出你有什么不一样的,这个面试过的概率就大大降低了。
个人建议,面试没准备好,不要随便面试,一些大厂都会有面试评价记录,太多差评影响以后的面试,同时面完之后要多总结,复盘,整理知识点,查漏补缺。
面试总结
阿里的面试更倾向于实用性,基本是从各种场景出发,来给你一个场景,让你来解决实际的问题,那么在解决问题的过程中,对于各种知识的应用就是亮点了。
头条更看重计算机基础,算法,以及对各种中间件的了解 。
面试也有不少的运气成分的,毕竟每个面试官的侧重点可能不一样,大家放平心态就好。
面试最后
面试结束时问面试官什么问题
我一般会问:
- 我面试的岗位的具体工作是什么
- 使用的技术栈有哪些
经验分享
1.准备一份好的简历(敲门砖,不会包装简历的程序员只能去外包)
程序员的简历一定要多下一些功夫,尤其是对一些字眼要再三斟酌,如“精通、熟悉、了解”这三者的区别一定要区分清楚,否则就是在给自己挖坑了。当然不会包装,我可以将我的简历给你参考参考,如果还不够,那下面这些简历模板任你挑选:
2.了解面试公司,做好功课,知道问什么
对一线互联网大厂的面试点,我也做了以下总结:
- 阿里巴巴、百度、腾讯
- 字节跳动、美团、京东
3、梳理知识体系,学会举一反三
实际上,梳理知识体系是最简单的事,但很多开发小白总是一头雾水,实际上从第二点的大厂面试点就可以总结梳理出来我们应该要学什么,要掌握什么,通常我的方法是“大厂面试点”+“工作年限”来梳理自己接下来的学习及发展路线图。
之后,就需要根据路线图上的重点去进行有针对性的学习,在学习过程中,学会举一反三,学会写笔记,做总结。
这里我分享我个人的一些笔记内容吧:
注:本文限于篇幅,故而只展示部分的文档截图,完整的Java学习文档和简历模板我已经帮你们整理好了,需要的同学直接去文末领取!
java高并发核心编程
多线程原理与实战;
Java内置锁的核心原理;
CAS原理与JUC原子类;
可见性与有序性的原理;
JUC显式锁的原理与实战;
AQS抽象同步器的核心原理;
JUC容器类;
高并发设计模式;
高并发核心模式之异步回调模式;
CompletableFuture异步回调;
JVM
- JVM内存区域
- 内存溢出异常
- 垃圾收集器
- 内存分配策略
- 类加载机制
- JVM调优
Spring
- spring概述
- Spring控制反转(IOC)
- SpringBean
- Spring注解
- Spring数据访问
- SpringAOP
SpringCloud
- 什么是服务熔断,什么是服务降级
- 微服务的优缺点
- 使用中碰到的坑
- 列举微服务技术栈
- eureka和zookeeper都可以提供服务的注册与发现功能,他们的区别
- eureka服务注册与发现原理
- dubbo服务注册与发现原理
- …
Redis
- Redis数据类型
- Redis事务
- Redis持久化及缓存
- Redis缓存异常方案
- Redis集群架构
MySQL
RabbitMQ
- 如何确保消息正确地发送至RabbitMQ?
- 如何确保消息接收方消费了消息?
- 如何避免消息重复投递或重复消费?
- 消息基于什么传输?
- 消息如何分发?
- 消息怎么路由?
- 如何确保消息不丢失?
- 使用RabbitMQ有什么好处?
- 消息队列有什么缺点?
- MQ如何选型?
- 如何保证消息队列高可用?
- 如何保证消息的顺序性?
由于篇幅原因,还有SpringBoot,MyBatis,SpringMVC,Dubbo、Linux、Tomcat、ZooKeeper、Netty等专题就不做展示了!
需要文中所有详细资料的一键三连之后点击这里开始学习。
学习建议
学习要形成自己的知识体系,不要天天盯着别人的面经(当然,我的面经可以看,哈哈)做碎片化学习,面经只是辅助作用,查漏补缺的,一旦你的知识体系有了,很多问题都能举一反三,这时候面试就很稳了。