一、引言
相信程序员们对互联网一线大厂并不陌生,每一个程序员都有一个大厂梦,都想努力提升自己,跻身大厂之中,不仅仅是追求薪资,更重要的是增加自己的项目经验,让自己的履历更加丰富,让自己变得更有价值。
互联网大厂最吃香的首当其冲自然是阿里巴巴了 ,今天小编就来分享一个小伙进阿里巴巴的面经!
就像“不想当将军的士兵不是好士兵”一样,“不想进大厂的程序员也不是好程序员”
春节过后,本是金三银四之际,大部分人也都准备好了这在两个月里谋得一份自己心仪的工作,奈何今年的2022有些特殊,肺炎肆虐,对我们的工作和生活都造成了极大的影响。那么,是不是这样,我们就不工作,不学习了呢?实际上,正是因为现在正值传染病毒传播期间,所以我们宅在家里好好学习是再好不过的。对于安卓程序员来说,利用这两三个月的时间,好好学习,着手准备起来,等到疫情好转,开始面试时,也不至于胆怯。
本人也是准备了大半年,利用疫情这个非常长的空档期复习提升自己,最终如愿以偿拿到阿里offer!
本人情况
我是一个普通的双非本科生,开发三年多(Android开发),平时学习也比较勤学好问,对待工作也极度认真负责,对自己进入大厂工作还是很有信心的,我的方向是Android开发,也知道现在Android的竞争比较激烈,大厂比较难进,但我丝毫不胆怯。为此也在半年前就开始筹备了,今7月份在一位大佬的内推下加上自己对知识点的复习和努力也如愿以偿的成功拿到阿里的offer!
在此特别感谢这位大佬给我提供的帮助及内推!
二、面试过程
1.阿里一面
- 自我介绍,聊项目, 这边挺常规的,从项目入手。
- 解析Excel为什么用POI ? POI存在的问题?
- 还知道哪些解析Excel的工具吗?
- 你们项目中用过MQ,平时都用MQ来做什么?
- 你处理过MQ得幂等问题,当时是怎么做的?
- MQ的可靠性怎么保证?
- redis你们都用来做什么?
- redis的持久化机制?
- 怎么样保证redis的高可用?
- HashMap和ConcurrentHashMap的区别?
- ConcurrentHashMap不同版本的差异?
- 用过多线程吗?
- 多线程的几种实现方式。
- 做过微服务开发吗?
- 说一说对重构的看法
- 有什么问题要问我的吗?
时间不长,大概二十分钟,面试官人不错。一面结果通过。
2.阿里二面
过了一个星期,由于当地有阿里的子公司,就去了子公司的会议室进行视频面试。
- 二面看上去是个组长的人,年纪并不轻。同样的自我介绍开始,然后聊来深圳发展的意愿,个人的情况,然后问了一下做的项目,就开始问问题了。
- 项目中处理了哪些格式的数据类型?
- 数据传输过程用的什么加密?
- 对称加密和非对称加密的区别?
- http和https的区别?
- 为什么https使用混合加密的方式?
- 说一说JVM调优的思路及你是怎么样调优的。
- JVM常见的算法。
- 抽象类和接口的区别和应用场景? ( 挺新鲜的,第- -)次碰到 )
- 平时有没有用到什么设计模式?
- 看过什么源码没有?
- 什么是SpringAOP?
- AOP实现的原理。
- sql优化的思路。
- 索弓|实现原理。
- 有时候索引失效,为什么?
- 问了我期望薪资,本来说月薪了,后面他说他们那里是按年薪算的。然后让我等一下 ,他去找部长去概去了二十分钟。
二面结果:通过。
3.阿里三面
- 自我介绍,然后开始聊项目。
- 数据采集的时候有没有对数据进行校验?
- 有没有做加密处理?
- 对称加密和非对称加密的区别?
- 如何保证数据不丢失呢? ( 对账)
- 你们项目中redis用来干什么了?
- redis常用的数据类型?
- redis持久化机制?
- 分布式锁的实现?
- 场景题:一个SQL的TOP N问题
- JVM参数调优及JVM内存结构。
- 常见的垃圾回收算法。
- dubbo整个调用过程。
- SpringMVC、Spring和SpringBoot的区别 ?
- 线程池实现原理。
- sql优化的思路。
- 索弓|实现原理。
- 聚簇索引和非聚簇索引的区别。
- 你有什么要问我的吗? ( 你是部长?他说不是,部长授权面试。)
4.阿里四面
过了一个星期,收到电话面试,各位以为是HR面,错了,这个叫业务经理面。HR说这个一 般都能过。
- 自我介绍,说一个你最熟悉的项目, 你在其中承担什么样的角色,开发过程中碰到最大的难题是什么?
- 聊一聊SOA和微服务。
- 大学挂过科没有。
- 哪科学得最好。
- 大概总共聊了15分钟左右。
四面结果:通过。
5.阿里五面
又过了一个星期。才到HR面,是当地子公司视频面试。
- 自我介绍,项目类型。
- 为什么考虑到深圳发展?
- 现在在面试哪些公司?
- 如何规划自己的生活?
- 期望薪资。
三、面试小结
1.阿里面试注意事项
- 部门选择:从这三次面试经历来看,部门不同,问到的技术栈都有所区别,所以在面试前最好是根据自己所面试的部门做相应的准备。
- 岗位选择:根据岗位介绍能够洞见的关键信息并不多,基于有限的信息,所谓合适通常需满足以下几点:①自身的核心竞争力与所应聘的岗位具有较高的匹配度;②对岗位的工作内容感兴趣,至少不排斥;③岗位所在的业务具有良好的前景;④工作地点可接受。
- 应变能力:几轮面试下来,给我最大的一个感受就是一定要培养自己的应变能力。在面试过程中,面试官会根据和你交流的过程中,找一些细节进行提问,一旦应变能力不强,就容易慌了张影响面试发挥,导致失败。
四、总结
虽然 Android 没有前几年火热了,已经过去了会四大组件就能找到高薪职位的时代了。这只能说明 Android 中级以下的岗位饱和了,现在高级工程师还是比较缺少的,很多高级职位给的薪资真的特别高(钱多也不一定能找到合适的),所以努力让自己成为高级工程师才是最重要的。
所谓高级工程师就是在技术上逐步沉淀,逐步体系掌握核心技术得来的。
架构师这个词,在我大学期间也觉得遥不可及。从来没有想到过自己有一天也会戴上这个头衔。其实,只要按照我上述的思路,按部就班,脚踏实地的不断的学习、进阶,并不难的。只看你有没有这个心罢了。
并不要觉得自己离架构师的路有多少,千里之行始于足下。不要觉得自己的年纪已经成长不到架构师就要到35岁退休了,学习最好的时候,就是现在!
最后,赠与大家一句诗,共勉!
其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。
如果本文对你有一定帮助,还请多多点赞哟~,下方有《2022最新Android中高级面试真题》,可以免费领取哦!