聊聊阿里面试的三个层次!

最近去阿里的菜鸟国际做了一次面试交流,发现大公司对于面试者的知识结构考核非常严谨,可以作为我们日常工作学习的指导。虽然很多人说面试问到的东西在实际工作中很少用到,甚至有「面试造火箭,工作拧螺丝」的说法。但从面试中,其实可以看得出来现在的公司对于面试者的知识体系要求。如果我们能在工作中就按着这样的要求去不断提升,那么在面试的时候必然也能游刃有余。

一般来说,阿里的面试会有两轮的技术电面,分别交叉检验你的技术基础。后面还有两轮的现场技术面试,主要检验你的项目经验。但从知识体系的角度来看,阿里面试对于知识的考核可以分为三个层次:对于基础知识的考核、对于项目经验的考核、对于项目深度的考核。

1基础知识考核
在这个层次上,主要考核你对 Java 语言本身原理的理解以及各种框架的原理理解。对于 Java 开发岗位上来说,这些知识点包括但不限于:

集合 HashMap 的原理,与 Hashtable、ConcurrentHashMap 的区别?

Java 线程池的核心属性以及处理流程

Java 并发包原理、Synchronized关键字、锁

线程的生命周期

JVM类加载机制

JVM内存模型

JVM分代以及垃圾回收机制

Spring Bean 容器生命周期

Spring AOP 原理

Dubbo 请求流程以及原理

数据库 SQL 优化、数据库索引、索引原理

……

上面只是说了很少的一部分而已,以下还有往期整理的5套面试试题!

第一套:《2018年最全Java面试通关秘籍第一套!》

第二套:《2018年最全Java面试通关秘籍第二套!》

第三套:《2018年最全Java面试通关秘籍第三套!》

第四套:《2018年最全Java面试通关秘籍第四套!》

第五套:《2018年最全Java面试通关秘籍第五套!》

其他地方也可以在后台回复「面试题」,即可获得5份往期经典面试试题哦!

看到这么多的知识点,我一下子就懵逼了,这么多得看到什么时候才看得完啊?但后面我想明白了,其实你不需要全部都懂,但需要了解大部分知识点,并且在这大部分知识点中,还需要有部分是了解得非常深入的。如果达到这个水平,基本上都能通过考核。

对于基础知识的考核多出现在阿里的前两轮电话面试上。对于这块,你事前把网上常见的面试题目看一遍,多面试几次基本上都没有问题。

2项目经验的考核
当你成功通过基础知识的考核之后,你会进入下一关的考验:项目的理解程度。

面试官首先会让你选择一个你最拿手的项目,画出架构图,之后的一切问题都从这个架构图触发。当你画出架构图之后,你肯定需要解释清楚每个模块的作用,每个框架的原理以及与其他框架的区别。

例如我就用我做过的一个搜索项目作为经典项目,与面试官探讨。

项目中用到了 Kafka 这个框架,那么面试官就会问 Kafka 和 RocketMQ 之间的区别是什么,它们两个有什么不同?

项目中还用到了 Canal 这个阿里巴巴开源的框架,那么面试官自然会问这个东西是干嘛的,原理是怎样的?

项目中还用到了 Zookeeper 作为协调者,那么 Zookeeper 在这个项目中的作用是什么,扮演了什么角色?

对于「项目理解程度」的考核会发生在技术面试的三四轮。在这个层次上,你必须要有一个拿得出手的项目,并且对其中的所有框架以及原理都了如指掌,否则你会被虐惨。

3项目深度的考核
通过上一轮对于「项目理解程度」的考核后,基本上你对整个项目都会有一个全面的认识,应用层面上的问题基本上不会难倒你了。但在「项目思考深度」的考核上,就不仅仅只是考核应用层面上的问题了。

还是用我做过的一个搜索项目作为例子,其中 Canal 这个开源框架暂时是没有实现集群这个功能的,那么面试官就问了:

你如何去改造这个项目,从而实现 Canal 的集群功能?

这个时候,你会发现你懵逼了,因为你从来没有去思考过这个问题。你所有的工作内容都是在想如何使用开源框架,而没有进一步思考这些开源框架好不好,有什么可以改进的地方。

所以,在这一个层次上考核的是你对开源框架的思考深度,这些框架到底好不好,好在哪里,不好在哪里,有什么可以改进的地方。

对于「项目思考深度」的考核同样发生在技术面试的三四轮。在这个层次上,你不仅要对项目本身理解足够深刻,还要跳出项目本身,去思考开源框架本身的问题。

4总结
当我们回过头来总结,你会发现这三个层次都是层层递进的,而且逐步深入。虽然这是面试中总结出来的经验,但是这却是一个很好的学习指引。读者可以自己自查,看看自己现在是处于哪个层次,这样在工作中也可以不断地向更高层次迈进。

对于我来说,我缺乏的是对于项目的思考深度,很多时候都是业界觉得好,那我就用了。但是作为一个高级开发,甚至是一个即将成为架构师的高级开发来说,你必须知道为什么要用这些框架?它有什么问题,我们能不能做得更好?只有这样,我们才能有所成长。

原文地址:http://blog.51cto.com/13732225/2138873

时间: 2024-08-16 14:07:32

聊聊阿里面试的三个层次!的相关文章

聊聊阿里社招面试,谈谈“野生”Java程序员学习的道路

阿里社招面试都问什么? 和之前一样,文章一上来,我们先来谈谈阿里的社招面试都问什么,其实这个话题并不是什么秘密,所有来阿里面试过的同学,都能回答一二. 两年前的时候,笔者在文章里是这么回答的. 这个是让LZ最头疼的一个问题,也是群里的猿友们问的最多的一个问题. 说实话,LZ只能隐约想起并发.JVM.分布式.TCP/IP协议这些个关键字,具体的问题真的是几乎都没记住.而且就算LZ记住了,也告诉你了,你也背会了,但LZ觉得,在面试中,你被问到一模一样问题的可能性依然很小. 甚至,就算你运气好被问到了

阿里面试回来,想和Java程序员谈一谈(转载)

引言 其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来.LZ自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容基本上忘得一干二净,所以写这篇文章其实是很有难度的. 但是,最近问LZ的人实在是太多了,为了避免重复回答,给自己省点力气,干脆就在这里统一回复了. 其实之前LZ写过一篇文章,但是那篇文章更多的是在讨论“面试前该不该刷题”这个话题,而这篇文章将会更加聚焦在面试前如何准备,以及工作当中如何学习这个话题上

阿里面试回来,想和Java程序员谈一谈

引言 其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来.LZ自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容基本上忘得一干二净,所以写这篇文章其实是很有难度的. 但是,最近问LZ的人实在是太多了,为了避免重复回答,给自己省点力气,干脆就在这里统一回复了. 其实之前LZ写过一篇文章,但是那篇文章更多的是在讨论“面试前该不该刷题”这个话题,而这篇文章将会更加聚焦在面试前如何准备,以及工作当中如何学习这个话题上

刷《一年半经验,百度、有赞、阿里面试总结》·手记

在掘金上看到了一位大佬发了一篇很详细的面试记录文章-<一年半经验,百度.有赞.阿里面试总结>,为了查漏补缺,抽空就详细做了下.(估计只有我这么无聊了哈哈哈) 有给出的或者有些不完善的答案,也尽力给出/完善了(可能有错,大家自行辨别).有些很困难的题目(例如实现Promise),附带相关链接(懒癌患者福利). 总的来说,将这些题目分成了"Javascript"."CSS"."浏览器/协议"."算法"和"We

【阿里面试系列】Java线程的应用及挑战

文章简介 上一篇文章[「阿里面试系列」搞懂并发编程,轻松应对80%的面试场景]我们了解了进程和线程的发展历史.线程的生命周期.线程的优势和使用场景,这一篇,我们从Java层面更进一步了解线程的使用.关注我的技术公众号[架构师修炼宝典]一周出产1-2篇技术文章.Q群725219329分享并发编程,分布式,微服务架构,性能优化,源码,设计模式,高并发,高可用,Spring,Netty,tomcat,JVM等技术视频. 内容导航 并发编程的挑战 线程在Java中的使用 并发编程的挑战 引入多线程的目的

阿里面试应该注意什么?通过5轮面试的阿里实习生亲述

很多做java开发的小伙伴都会对大厂有一种敬畏之心,觉得进大厂就是鲤鱼跃龙门了,所以很多人不敢轻易的向大厂投简历.但是你知道吗?进大厂的黄金期也就是你刚毕业的一两年之内,这个时候一般不会对你的技术不会有太高的要求,工作越久反而要求越高. 我们鲁班学院是在腾讯课堂上针对Java高级开发授课的在线直播教学的学习机构,接触到的学员也是比较多的.所以这里特别采访了一名刚拿到阿里offer的学员,是如何通过阿里的5次面试的.希望能够帮助到更多想进大厂的小伙伴.(为了方便阅读,接下来我们称这名学员为"阿七&

阿里面试 Java 都问什么?万字总结!

作者:rhwayfunn blog.csdn.net/u011116672/article/details/50991618 拿到阿里实习offer,经历了5次面试,其中4轮技术面,1轮HR面试.在这里分享一下自己的面试经验和学习总结.希望能够帮助更多的小伙伴. 我本科毕业于中南大学信管专业,真正开始学习Java是在大三下学期,研究生就读北航的移动云计算专业. 刚开始也是小白,也是一步步成成起来的.需要提的一点是,你将来是需要靠这个吃饭的,所以请对找工作保持十二分的热情,而且越早准备越好. 阿里

物联网系统的三个层次

综合国内各权威物联网专家的分析,将物联网系统划分为三个层次: 感知层 网络层 应用层 感知层解决的是人类世界和物理世界的数据获取问题,由各种传感器以及传感器网关构成.该层被认为是物联网的核心层,主要是物品标识和信息的智能采集. 传输层也被称为网络层,解决的是感知层所获得的数据在一定范围内,通常是长距离的传输问题,主要完成接入和传输功能,是进行信息交换.传递的数据通路. 应用层也可称为处理层,解决的是信息处理和人机界面的问题.网络层传输而来的数据在这一层里进入各类信息系统进行处理,并通过各种设备与

阿里巴巴产品需求工程师的三个层次

在阿里巴巴公司,产品经理对需求的分析深度分为三个层次:   “被动型”是指开发者被动地对待需求工程中的各项活动,能少干则少干,能偷懒则偷懒.他们认为需求是用户的事情而不是自己的事情.开发过程中经常发生需求变更,导致产品迷失方向,不是半途而废就是陷入半死不活的状态.  “主动型”是指开发者积极地开展需求工程中的各项活动.他们把获取准确的需求当作自己的职责,会想尽一切办法克服需求开发和需求管理过程中的困难,而不是找借口推卸责任.俗话说“良好的开端是成功的一半”,“主动型”需求工程是开发成功产品的必备