前言
人人都有大厂梦,对于程序员来说,BAT 为首的一线互联网公司肯定是自己的心仪对象,毕竟能到这些大厂工作,不仅薪资高待遇好,而且能力技术都能够得到提升,最关键的是还能够给自己镀上一层金,让人瞻仰。
同样的,小编的好朋友的个人目标也是阿里,但之前一直在一家小公司,一呆就是好几年,现在通过不断学习和实践,提升了自己很多,也有了信心来阿里挑战。下面,就是朋友分享的这次面试阿里 P6 的一些经历和心得。
阿里 P6 岗面试经历
这次阿里的面试经历实朋友说实在是在太紧张+刺激+尴尬了,面试前还自信满满,面试后被吊打得怀疑人生。整个流程是四面,前两面还顺风顺水,比较嚣张,最后一轮技术面和 HR 面才让我领略到,什么是阿里?
不过好在面试最终还是顺利的,目前 offer 已经到手,给的薪资也比较满意,比上一份工作好多了,至于个人的具体背景,我就不一一交代了。
阿里一面:
- 自我介绍、说一下最近在做什么事?
- 可以跟我介绍下卷积神经网络吗?(简历里有写到一个项目用到了 CNN)
- 可以说一下逻辑回归是什么吗?
- 你觉得反向传播和动态规划之间有什么样的联系吗?
- 那你能说一下为什么计算机会使用二进制,而我们人类会使用 10 进制呢?
- 计算机是怎么做加法的?那如何用加法代替减法?
- 使用过 Linux 吗?可以说下常用的 Linux 命令吗?
- 用什么命令可以查询文本中的文字?用什么命令可以查询磁盘存储的容量?
- Vim 使用过吗?可以说下有哪些快捷键吗?
- 我看你的博客里有一篇写到了区块链,你可以说下去中心化对我们的生活有什么影响吗?你觉得区块链有价值吗?
- 在区块链的世界中,那些数据怎么样会变得有效?(广播机制、共识机制)
- 类比打电话,两个系统的通信我们可以采用哪些方式?(我说了 http)
- 说一下 HTTP 和 HTTPS 的区别
- HTTPS 中用了什么加密方式,在什么阶段体现的?
- 分布式的 CAP 理论了解过吗?
- 你了解的一些集群有哪些选举方式?
- 公众号里写了很多和 python 有关的文章,那你觉得这两个语言使用起来有什么差异?
- 最近有看什么书吗?
- HashMap 为什么线程不安全?是否模拟过不安全的场景?
- 说一下 Java 的值传递和引用传递
- SpringBoot 和 SpringMVC 的区别
- 说一下 Spring 中 bean 的加载过程
- JVM 的垃圾回收器了解吗?垃圾回收算法有哪些?JDK8 默认的垃圾回收器是什么?
- 有什么想跟我沟通的吗?
阿里二面:
- 自我介绍
- 自己做的 app 上线了吗?是自己做的吗?简单说一下
- 学校的课程中你觉得哪一门学的最好?(都差不多)
- 你学习了挺久的 Java,对于这门语言有什么认识?或者和其他编程语言比起来有什么不一样的地方?
- 那你在学习的过程中有什么事情会让你坚持做下去?
- 开发这个 app 的动力是什么?
- 有参加过什么学科竞赛吗?
- 数据结构你觉得你学的怎么样?做一道编程题(用数组模拟一个栈)
- 智力题:你雇佣一个工人,他每天工作应该获得一份金条,你有一根金条可以分成 7 份,但你只能对你的金条切 2 刀,请问怎么保证你的工人每天都得到一份金条?
- 你有什么想问我的?
阿里三面:
这一轮的面试官是个架构师,目测应该是 P8,整个过程瑟瑟发抖
- 你在项目中遇到哪些有挑战性的点?
- 流量在某一时刻暴涨,然后又猛跌如何应对?
- redis 消息队列如何对过期信息/无效信息进行删除?
- 讲一讲 redis 的持久化机制?
- 为什么 JAVA 类加载要用双亲委派?
- 怎么实现同步?
- JAVA 锁有哪几种?
- 两种锁的区别?
- 了解过 AQS 吗?
- 场景题:给一个方法加上超时异常
- 生产者消费者模型的作用是什么?
- short s1=1;s1=s1+1;有什么错?short s1=1;s1+=1;有什么错?
- 怎么检测一个线程是否持有对象监视器?
- Java 编程写一个会导致死锁的程序
- 如果你提交任务时,线程池队列已满,这时会发生什么?
- Hashtable 的 size()方法中明明只有一条语句”return count”,为什么还要做同步?
- swtich 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 string 上?
- 高并发、任务执行时间短的业务怎样使用线程池?并发不高、任务执行时间长的业务怎样使用线程池?并发高、业务执行时间长的业务怎样使用线程池?
阿里 HR 面:
- 说说看,假如你是部门技术经理,线上商户数据丢失怎么办?
- 怎么将一个产品推荐给其他的团队,怎么界定边界?
- 每天有那么多人使用支付宝,这些数据如果给你存储,你会怎么设计呢?
- 怎么样协调关系?
- 你和同事相处的情况怎么样,说说你帮助同事的一次经历?
- 薪资
这份手册我看到的时候就感觉很良心,有JVM、多线程、Spring全家桶、微服务、网络、消息中间件、数据结构、算法、分布式等等都包含了:
目录一览
JVM
Java集合+多线程并发
Java基础+Spring原理+微服务
Netty与RPC+网络
日志+Zookeeper+Kafka
Rabbit+Hbase+MongoDB
设计模式+负载均衡
数据库+一致性算法
Java算法+数据结构+加密算法+分布式缓存
Hadoop+Spark+Storm
YARN+机器学习+云计算
免费领取资料只需要点赞关注收藏一键三连后,戳此处:这些java资料很大,你要忍一忍
点赞+关注+收藏一键三连资料会100%发放,不发我秃头!!!
内容一览
线程
Java&实现
Java线程池工作过程
Spring
Netty与RPC
网络架构
Rabbit
数据库
加密算法
云计算
面试心得
关于这次面试阿里 P6,只能说阿里是一个卧虎藏龙的地方,员工素质也非常高,待人也很友好,相信在阿里工作,会给自己带了很多收获。
最后,关于面试阿里,给出以下几点建议,希望能帮助到大家:
- 提前了解好阿里的企业文化。
- 阿里面试周期比较长,调整好心态,做好充分的准备。
- 在岗位上要体现出一定的企图心。
- 除了梳理技术积累和项目经验以外,还有对未来的业务开展有自己的思考和规划。
- HR 面很专业,要体现自己有能力融入阿里的文化体系。
说在最后
现在很多程序员,都会陷入到一个怪圈:看到别人升职加薪,又觉得为啥别人运气总是那么好,我和他差不多时间进公司的啊!然后去跳槽,发现,现在的面试这么难的嘛,动不动就底层原理,动不动就源码分析,Java 不好做了,做 Java 的人太多了,我还是转行吧。
归总到一点,就是没从自己思考,从身上找原因。无论对于程序员来说,还是对于其他岗位,想要涨薪升职,自己的能力肯定要跟得上,而唯一的办法就是通过学习来提升自己。