写在开头
收到阿里实习生意向书也有十天了,也完整的经历了互联网春招的历程。虽然已经收到offer了,可是天天仍是不断在刷牛客的讨论帖,看看你们的状态。一路走来也很感谢牛客这个平台(虽然在平台投的简历大都没有回信-,-),也是从当初的看你们的面经一脸懵逼到如今一路走来收获了阿里和腾讯的offer。因此仍是打算写一篇帖子回馈一下牛客哈哈~java
回顾
从7月初开始,一共收了了三个offer,同城艺龙(最先面的),腾讯IEG运营开发,阿里巴巴菜鸟网络Java研发。由于腾讯过了,因此期间陆续放弃了快手、携程的面试和网易、百度等大厂的笔试(比较懒,有点后悔,其实应该去面面涨涨经验的)。头条也投的比较早,当时还没准备充分其实,连最基本的堆排序都没有写出来,硬撑到三面挂了。其余也投了一些公司,不过大都没有下文了。python
总的过程也比较曲折,腾讯一共面了四个部门(也就是被捞起来三次,无限秽土转生。。),共面了八次,两次一面挂,一次二面挂,最后IEG是三面技术面+一面HR经过面试。。阿里本来投的是天猫,可是在三面后流程被转到了菜鸟网络,最后是在北京现场加面了一面技术面和一面HR面,顺利经过面试。linux
腾讯给个人面试体验是比较好的,每面以前都会电话或者邮件预定时间,很人性化。头条是现场面,每面反馈也很是快,大概10-20min,中午还管了饭。阿里战线拉的最长,每面之间都要隔1-2周吧。因此投阿里的小伙伴必定要稳住性子,毕竟有海量简历须要处理,也能够理解。程序员
过程是曲折的,好在最后的结果是好的吧。也但愿尚未理想offer的小伙伴不要着急,稳扎稳打,还有不少机会。web
经验
经历了此次春招,也有了一些本身的体会,和你们分享一下吧。面试
- 提前准备。金九银十是真的,九月到十月份这个时间点机会是最多的,因此必定要提前准备,多刷题、多看面经。不要抱着我还没准备好的态度,面试经验是一点点积累出来的,面的越多越知道本身的薄弱点,越自信。
- 《剑指offer》简直是本神书,刷五遍也不过度。再结合面经多刷一些面试经典算法题,把基本的数据结构,查找,排序算法都搞清楚,能手写,基本能够应对80%的面试。
- 简历很重要。多找找之前的学长学姐,对本身的简历多指导一下,一分简洁大方,重点突出的简历是颇有加分的。
- 态度真诚。对于面试中不会的或者有些遗忘的点,能够直接和面试官说我这里不是很清楚,不要不肯定的状况下硬去回答,这样反而效果不是很好。
- 基础最重要。总的来讲,越是大厂对基础越为看重。甚至spring都没用过,只要你的算法数据结构,操做系统,计算机网络,Java基础,JVM,并发这些都可以理解的比较好,经过面试也是彻底没有问题的。
附上腾讯和阿里面经
注:因为是后来回忆的,全部有一些问题记不大清楚了,只能记住个大概
腾讯
一面( 挂)
聊项目(20min左右,主要针对项目架构和一些感兴趣的点深刻的问)
TCP三次握手,四次挥手
知道哪些树的结构,分别介绍一下
算法题,给一个数组构造二叉排序树,二叉树的层次遍历,时间复杂度,空间复杂度。
redis
一面 (被腾讯音乐捞起来)
开头:能实习吗?何时能,
TCP三次握手
TIME_WAIT发生在何时
select/epoll了解么(不会,那跳过吧)
说一下进程间通讯吧
说一下进程调度
哈希表了解吗,说一下
说一下快排
说一下归并排序
智力题:100个硬币,有一个坏的,怎么快速找到,时间复杂度
redis介绍一下,为何速度快? 单线程如何保证高并发?
rabbitmq介绍一下,了解哪些消息队列产品,为何用rabbitmq
平时课余时间都作些什么,怎么提升本身的技能?
算法
一面PCG无线运营
真的好基础
常见的算法
spring
二面 挂了
说一下Mysql结构。。???怎么存储的
Mysql引擎有了解么,介绍一下
Mysql主从复制过程
事务特性
Mysql怎么实现持久性,高可用
OSI三层模型
网络层协议
TCP和UDP的区别
HTTP说一下,HTTP请求头请求行,有哪些状态,请求头有哪些,HTTP方法有哪些
linux,查看系统状态的命令,查看磁盘的状态?
redis介绍一下,redis常见数据结构,zset怎么实现的
redis高可用怎么实现的,高可用怎么实现,集群怎么实现,主从复制怎么实现
hadoop了解哪些,hdfs架构说一下,怎么实现高可用
hadoop中的nameserver都存储了哪些东西?文件结构是怎么样的?(一脸懵逼)
啊,redis和hadoop还不如不写我擦,被虐的好惨啊!!!
sql
腾讯一面
基础知识,基本就是围绕网络,数据库,那些,都答腻了。。。
介绍一个最熟悉的项目
本身实现过哪些数据结构,快排和归并排序的时间复杂度,空间复杂度
Java 的 volatile有什么做用,怎么实现的
垃圾回收,内存模型
题目一道,两数之和,双指针
腾讯二面
自我介绍
项目状况,哪些是本身实现的,项目细节 10min左右
用过python和go么(答用过py,主要是java技术栈),就没继续问了
家庭状况,本身之后的规划
介绍了部门状况,问IaaS Paas知道吗
知道SQL注入么
项目对安全有什么考量,怎么增长项目的安全性
项目部署在哪里,用过linux么
说一下知道的linux命令吧,怎么查看系统负载? 端口占用?
shell编程会吗?
本身的优势有哪些
腾讯三面
家庭状况
实习时间,本身将来的规划
项目状况,项目总体架构,针对性的提问 10min左右
用过python和go么,python用过哪些库
Java内存模型
Java并发,怎么实现多线程
Full GC
多线程并发问题,怎么解决
Java并发控制,锁机制,怎么实现的
说一下乐观锁
Mybatis和Hibenate的区别,为何用Mybatis
Mysql的并发量?锁是怎么加的?
RabbitMQ怎么用的
HR面
家庭状况
将来的职业规划
为何考研?
知道本身的部门吗,有什么见解?
何时能入职?
阿里巴巴
一面
自我介绍
项目劈里啪啦,主要针对项目里使用的技术,问了大约二十多分钟
知道哪些树的结构,树、二叉树、平衡二叉树的应用
知道哪些集合类,线程安全的呢,concurrentHashMap原理
看过哪些jdk源码,平时都怎么学习?
springMVC原理,Spring AOP 实现原理
聊聊毕设 分布式存储相关 优化策略
负载均衡策略有哪些
数据库分表策略,分别都对应哪些场景
秒杀系统里怎么作的流量控制,QPS 3000,那么 6000+的请求来了怎么办
设计一个分布式存储系统考虑哪些
设计一个分布式架构怎么设计(负载均衡,缓存,一致性等等)
以为本身有什么缺点
以为本身有什么优势
有什么要问个人吗
整体来讲主要问项目,和针对在校的状况进行一些有针对的提问,问的基础并很少,能够定义为简历评估面试。
二面
自我介绍,夹杂各类学校的事情
怼项目,设计,担任的角色
hashmap,对象能够当key吗,有什么注意的地方,线程安全吗,有什么线程安全的map
equals和hashcode有什么关系
gc了解吗,垃圾回收算法,策略
一个线程等待四个线程,怎么作
BloackingQueue有哪些,介绍一下
线程池策略,10个核心线程数,再来一个,怎么办
Synchronized的做用域,修饰实例方法和静态方法有什么区别
数据库事务隔离级别,分别会产生哪些问题
IO模型有哪些,答阻塞和非阻塞,感受好像被鄙视
在rocketmq社区都作哪些事情
平时怎么学习
在技术上作的最自豪的一件事
有什么想问个人吗
在线编程测验
二叉树的层次遍历
5个线程分别计算一个数组的和,主线程汇总结果。
两道都A了,面试官说能够,今天先这样
三面
晚上9.30了都,刚作完笔试,脑壳懵呢还,接到电话。
项目介绍,分别介绍,怎么优化,主要针对项目用的技术问,大概15min左右,基础问的很少
select和epoll区别,本身用过么
socket代码怎么写,你用的哪一种,服务器端和客户端怎么写的
数据库隔离级别,分别会出现什么问题
垃圾回收知道吗,虚拟机何时会full gc
二分排序知道么(二分排序???我一脸懵逼,后来发现好像意思是二路归并排序。。)
算法:统计大写字母出现顺序,而且排序
以后就是漫长的等待,大概等了三个周。。。
四面 北京现场面
自我介绍
问实验室的项目(大概有20min左右,也是分别问了项目架构和一些细节)
socket怎么写的,用的什么模式,NIO知道么,是阻塞的仍是非阻塞的,同步的仍是异步的,怎么实现。
rabbitmq介绍一下,为何用。有哪些模式,你用了哪些?
设计模式知道吗,介绍一下,有哪些应用?
数据库熟悉吗?熟悉哪一个?介绍一下(说了Mysql InnoDB引擎的一些特色),有什么好处
为何须要事务? 解决了哪些问题?
MVCC了解么,说一下,解决了什么问题。版本号改为时间戳能够吗?
sql优化有了解么,说说一些须要主要的地方。sql执行慢怎么办?
web项目中中文乱码怎么解决的
spring介绍一下,spring ioc有什么好处,怎么解耦的。spring aop原理
类加载机制介绍一下,有两个同名的类怎么加载(能编译没法运行)
最后一个问题,浏览器输入url到页面显示发生了什么
五面 hr面
自我介绍
我说了个人名字,而后开始聊关于更名起名的事23333
大学学生会活动,一些活动细节
家庭状况
为何考研
说说作过最极端的事
职业规划,为何想来阿里
说说本身的优势
说说本身的缺点
问问题,何时能出结果?答 最先五一以前
整体聊的挺开心的
我是如何拿到大厂offer的?
第一件事:分清阶段,制定计划
从我大学以后,我清晰到本身的现状,也明白要想改变本身的人生,那就要懂得去规划。因此,从我实习工做开始,就已经对本身的职业生涯开始进行了一个规划,而个人规划很清晰地分红了几个阶段,也把每一个阶段的目标和重心确立了下来。
- 第一阶段:0~3年;我给本身的第一个时间就是3年时间,3年完成第一次跳槽,并且须要跳到更大的平台。
- 第二阶段:3~7年;确立本身的发展方向,技术专家、架构师、CTO或者产品都可,但我知道,不管是朝哪一个方向发展,技术知识的储备必定要系统完善。
- 第三阶段:7~将来;这个阶段,我应该完成了本身的发展方向,这个时候须要思考人生,或者继续本身的爱好,享受生活,也或者开始进行创业。
第二件事:梳理知识,从新学习
在惟品会的三年里,我为跳槽作准备,也为第二阶段的发展方向作准备,因此梳理本身的知识,让本身从新开始学习。这三年里,我从未落下过提高本身,本身的学习方向也是按照本身梳理出来的知识路线进行的,一步一步,有条不紊。
- 架构师筑基必备技能:并发编程,JVM,网络编程与高效,MySQL,Tomcat
- 设计思想解读开源框架:SSM框架(Spring+SpringMVC+Mybatis)
- 性能直线提高架构技术:分布式,ZK,Nginx,RabbitMQ,RocketMQ,Kafka
- 高效存储让项目性能起飞:Redis,MongoDB,MySQL高可用,Mycat,Sharding-Sphere
- 分布式扩展到微服务架构:SpringBoot,SpringCloud,SpringCloud Alibaba,Docker,K8S
第三件事:勤写博客,多作笔记
合格的开发人员必定是要养成良好的学习习惯和工做习惯的,程序员为何要勤写博客,多作笔记?理由很简单:
- 整理思惟、增强理解。
- 方便将来、回顾复习。
- 记录成长。
- 锻炼写做文字组织能力。
- 跟其余人反馈、互动,别人会发现一些你发现不了的问题,提高你的思惟。
关于这三年来,我也算是写了很多博客,制做了很多笔记类的PDF,能够免费分享给你们参考一下,包括Redis学习笔记,SpringBoot核心笔记,MySQL调优笔记等等。
Redis学习笔记
SpringMVC开发笔记
SpringBoot-核心技术笔记
第四件事:社群互动,拓宽圈子
人脉的重要性,相信每个工做的社畜内心都清楚,而咱们开发者一样也须要积累本身的人脉。因此,在惟品会的三年里,我并未只是早出晚归,成天对着电脑工做,我会利用本身的剩余时间,去参与到一些社群里,与同行交流,参加一下线下的会议或者活动是我比较直接的扩宽圈子的方式。
第五件事:懂得复盘,准备面试
我学会了复盘本身,每一年给本身的一个总结,包括知识、工做、生活及情感等各个方面,是否把本身的丰富度进一步地提高了。今年是我第一阶段的第三年收尾,也给本身这三年来作个一个总结,同时也要开始开展个人跳槽计划,而后准备面试。
关于面试,我也作了一些系统且全面性的准备:
- 整理面试知识点
- 刷题刷题刷题
总结
外行对于程序员的认知很单一,也有不少刻板印象,但无论如何,做为开发人员的咱们,本身必定要正视本身。若是咱们连自嘲和自卑都分不清楚了,那发展也就仅限如此了。
因此,尽早规划本身,朝目标发展,才是上策之道,而不是怨天尤人,等到30岁后再去焦虑。
但愿你们能一块儿进步,文章以上全部的资料都可以避免费分享给大家,须要的朋友可扫码获取