写点什么

阿里菜鸟 + 腾讯 IEG 面经(阿里 5 面,腾讯 8 面)无限秽土转生

用户头像
胧月
关注
发布于: 52 分钟前

写在开头

收到阿里实习生意向书也有十天了,也完整的经历了互联网春招的历程。虽然已经收到 offer 了,但是每天还是不断在刷牛客的讨论帖,看看大家的状态。一路走来也很感谢牛客这个平台(虽然在平台投的简历大都没有回信-,-),也是从当初的看大家的面经一脸懵逼到现在一路走来收获了阿里和腾讯的 offer。所以还是打算写一篇帖子回馈一下牛客哈哈~

回顾

从 7 月初开始,一共收了了三个 offer,同城艺龙(最早面的),腾讯 IEG 运营开发,阿里巴巴菜鸟网络 Java 研发。因为腾讯过了,所以期间陆续放弃了快手、携程的面试和网易、百度等大厂的笔试(比较懒,有点后悔,其实应该去面面涨涨经验的)。头条也投的比较早,当时还没准备充分其实,连最基本的堆排序都没有写出来,硬撑到三面挂了。其他也投了一些公司,不过大都没有下文了。

总的过程也比较曲折,腾讯一共面了四个部门(也就是被捞起来三次,无限秽土转生。。),共面了八次,两次一面挂,一次二面挂,最后 IEG 是三面技术面+一面 HR 通过面试。。阿里原本投的是天猫,但是在三面后流程被转到了菜鸟网络,最后是在北京现场加面了一面技术面和一面 HR 面,顺利通过面试。

腾讯给我的面试体验是比较好的,每面之前都会电话或者邮件预约时间,很人性化。头条是现场面,每面反馈也非常快,大概 10-20min,中午还管了饭。阿里战线拉的最长,每面之间都要隔 1-2 周吧。所以投阿里的小伙伴一定要稳住性子,毕竟有海量简历需要处理,也可以理解。

过程是曲折的,好在最后的结果是好的吧。也希望还没有理想 offer 的小伙伴不要着急,稳扎稳打,还有很多机会。

经验

经历了这次春招,也有了一些自己的体会,和大家分享一下吧。

提早准备。金九银十是真的,九月到十月份这个时间点机会是最多的,所以一定要提早准备,多刷题、多看面经。不要抱着我还没准备好的态度,面试经验是一点点积累出来的,面的越多越知道自己的薄弱点,越自信。

《剑指 offer》简直是本神书,刷五遍也不过分。再结合面经多刷一些面试经典算法题,把基本的数据结构,查找,排序算法都搞清楚,能手写,基本可以应对 80%的面试。

简历很重要。多找找以前的学长学姐,对自己的简历多指导一下,一分简洁大方,重点突出的简历是很有加分的。

态度真诚。对于面试中不会的或者有些遗忘的点,可以直接和面试官说我这里不是很清楚,不要不确定的情况下硬去回答,这样反而效果不是很好。

基础最重要。总的来说,越是大厂对基础越为看重。甚至 spring 都没用过,只要你的算法数据结构,操作系统,计算机网络,Java 基础,JVM,并发这些都能够理解的比较好,通过面试也是完全没有问题的。

附上腾讯和阿里面经

注:由于是后来回忆的,所有有一些问题记不大清楚了,只能记住个大概

腾讯

一面( 挂)

聊项目(20min 左右,主要针对项目架构和一些感兴趣的点深入的问)

TCP 三次握手,四次挥手

知道哪些树的结构,分别介绍一下

算法题,给一个数组构造二叉排序树,二叉树的层次遍历,时间复杂度,空间复杂度。

一面 (被腾讯音乐捞起来)

开头:能实习吗?什么时候能,

TCP 三次握手

TIME_WAIT 发生在什么时候

select/epoll 了解么(不会,那跳过吧)

说一下进程间通信吧

说一下进程调度

哈希表了解吗,说一下

说一下快排

说一下归并排序

智力题:100 个硬币,有一个坏的,怎么快速找到,时间复杂度

redis 介绍一下,为什么速度快? 单线程如何保证高并发?

rabbitmq 介绍一下,了解哪些消息队列产品,为什么用 rabbitmq

平时课余时间都做些什么,怎么提高自己的技能?

一面 PCG 无线运营

真的好基础

常见的算法

二面 挂了

说一下 Mysql 结构。。???怎么存储的

Mysql 引擎有了解么,介绍一下

Mysql 主从复制过程

事务特性

Mysql 怎么实现持久性,高可用

OSI 三层模型

网络层协议

TCP 和 UDP 的区别

HTTP 说一下,HTTP 请求头请求行,有哪些状态,请求头有哪些,HTTP 方法有哪些

linux,查看系统状态的命令,查看磁盘的状态?

redis 介绍一下,redis 常见数据结构,zset 怎么实现的

redis 高可用怎么实现的,高可用怎么实现,集群怎么实现,主从复制怎么实现

hadoop 了解哪些,hdfs 架构说一下,怎么实现高可用

hadoop 中的 nameserver 都存储了哪些东西?文件结构是怎么样的?(一脸懵逼)

啊,redis 和 hadoop 还不如不写我擦,被虐的好惨啊!!!

腾讯一面

基础知识,基本就是围绕网络,数据库,那些,都答腻了。。。

介绍一个最熟悉的项目

自己实现过哪些数据结构,快排和归并排序的时间复杂度,空间复杂度

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



第三件事:勤写博客,多做笔记

合格的开发人员一定是要养成良好的学习习惯和工作习惯的,程序员为什么要勤写博客,多做笔记?理由很简单:

整理思维、加强理解。

方便未来、回顾复习。

记录成长。

锻炼写作文字组织能力。

跟其他人反馈、互动,别人会发现一些你发现不了的问题,提升你的思维。


第四件事:社群互动,拓宽圈子

人脉的重要性,相信每一个工作的社畜心里都清楚,而我们开发者同样也需要积累自己的人脉。所以,在唯品会的三年里,我并未只是早出晚归,整天对着电脑工作,我会利用自己的剩余时间,去参与到一些社群里,与同行交流,参加一下线下的会议或者活动是我比较直接的扩宽圈子的方式。


第五件事:懂得复盘,准备面试

我学会了复盘自己,每年给自己的一个总结,包括知识、工作、生活及情感等各个方面,是否把自己的丰富度进一步地提升了。今年是我第一阶段的第三年收尾,也给自己这三年来做个一个总结,同时也要开始开展我的跳槽计划,然后准备面试。

关于面试,我也做了一些系统且全面性的准备:

整理面试知识点



刷题刷题刷题



总结

外行对于程序员的认知很单一,也有很多刻板印象,但不管如何,作为开发人员的我们,自己一定要正视自己。如果我们连自嘲和自卑都分不清楚了,那发展也就仅限如此了。

所以,尽早规划自己,朝目标发展,才是上策之道,而不是怨天尤人,等到 30 岁后再去焦虑。

希望大家能一起进步,文章以上所有的资料均可以免费分享给你们,需要的朋友可以点击这里即可获取到文章中的文档,资料


用户头像

胧月

关注

还未添加个人签名 2021.08.17 加入

还未添加个人简介

评论

发布
暂无评论
阿里菜鸟+腾讯IEG面经(阿里5面,腾讯8面)无限秽土转生