前言
人人都有大厂梦,对于程序员来说,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面:
- 说说看,假如你是部门技术经理,线上商户数据丢失怎么办?
- 怎么将一个产品推荐给其他的团队,怎么界定边界?
- 每天有那么多人使用支付宝,这些数据如果给你存储,你会怎么设计呢?
- 怎么样协调关系?
- 你和同事相处的情况怎么样,说说你帮助同事的一次经历?
- 薪资
阿里超全面试题答案解析版:
由于文章篇幅有限,面试题的答案比较多,尤其是一些比较“刁钻”的问题,都有非常详细的答案解析记录,所以都整理在了文档内,需要的可以公众号-【不脱发有志青年】
面试心得
关于这次面试阿里P6,只能说阿里是一个卧虎藏龙的地方,员工素质也非常高,待人也很友好,相信在阿里工作,会给自己带了很多收获。
最后,关于面试阿里,给出以下几点建议,希望能帮助到大家:
- 提前了解好阿里的企业文化。
- 阿里面试周期比较长,调整好心态,做好充分的准备。
- 在岗位上要体现出一定的企图心。
- 除了梳理技术积累和项目经验以外,还有对未来的业务开展有自己的思考和规划。
- HR面很专业,要体现自己有能力融入阿里的文化体系。
说在最后
现在很多程序员,都会陷入到一个怪圈:看到别人升职加薪,又觉得为啥别人运气总是那么好,我和他差不多时间进公司的啊!然后去跳槽,发现,现在的面试这么难的嘛,动不动就底层原理,动不动就源码分析,Java不好做了,做Java的人太多了,我还是转行吧。
归总到一点,就是没从自己思考,从身上找原因。无论对于程序员来说,还是对于其他岗位,想要涨薪升职,自己的能力肯定要跟得上,而唯一的办法就是通过学习来提升自己。
废话也不多说,我自己分享一下我自己的一套学习资料库,大伙看看有没有需要的:
- Java核心知识点:
- Java面试宝典:
Java基础部分、算法与编程、html&JavaScript&ajax 部分、Java web部分、数据库部分、XML部分、流行的框架与新技术、软件工程与设计模式、j2ee部分、EJB部分、webservice部分、其他。
- 架构学习资料:
- 学习视频: