本文素材来源于一位粉丝分享经验,希望能对大家有所帮助。
可能每个程序员都有个大厂梦,我也不例外。最近准备跳槽,前段时间在准备各种面试,也面了几个大厂,包括阿里、拼多多和京东等。但最后,我还是挂在了阿里第四轮。这篇文章来总结一下我在阿里四轮的面试经历,希望能对大家有所启发帮助。
阿里社招一般有四到五轮,我这次的流程是第一轮技术面、第二轮写代码、第三轮boss面、第四轮boss面、第五轮HR面。然而我没能和HR聊上一句。
面试官很好,指出了有些基础不足,这块确实自己答得不太好,非常感谢一面面试官老师,引导着我回答问题,面试体验很好!
二面基本就是问一些偏框架和中间件的知识,以及深挖项目。面试官全程非常耐心和蔼地对话,感觉就是想挖掘出我的亮点,总之体验非常好!非常感谢二面面试官老师!
三面明显强度提升,主要涉及多线程、JVM和分布式架构,貌似很多程序员的短板都是分布式,我虽然也是,但还是在面试官的指引下答出来了,阿里面试官态度是真的好,非常感谢!!!
四面就比较吃力了,部门经理面试,就是围绕两大块,第一是根据我的项目来提出漏洞,让我解决;第二是他自己设定场景,让我给出解决方案。
第一个还相对简单,主要是倒在了第二方面,因为对电商项目不是很了解,没有足够的经验,当时就感觉可能要凉,果不其然,过来几天在邮件里看到回复信息:您的职业经历与该职位的要求略有差异······
面对这些问题,你又是否能答出来?
笔者就这位粉丝的阿里面试过程,给大家简单分析一下:
1. 社招面试,技术问的相对来说更加深入,所以对有些源码还是要了解点,比如多线程、高并发相关的原理,是经常被问到的。JVM就更不用说了,几乎是必问到的。
2. 所有的问题都是围绕具体场景,一般大厂都会结合具体场景来问你问题,所以你只会纯理论肯定不行的,你还要知道为什么要用这个技术,以及如何做到高可用等等。
3. 以后面试,基本上都会让你写代码的,招软件开发工程师,光会嘴说是不行的,这就要平时抽空多练习了,我指的是练练算法题,而不是那种业务代码。
有了阿里面试失败的经历,终于意识到系统学习,不留短板的重要性,又开始恶补清华扫地僧级别大佬的6+2学习路线,夯实自己基础,向京东进军,终获offer!!!
6个知识点:
多线程高并发+JVM调优+设计模式+ Redis + Zookeeper + MySql调优
两大项目:
网约车+亿级流量
在单核CPU时代,单任务在一个时间点只能执行单-程序,随着多核CPU的发展,并行程序开发变得尤为重要。
本篇主要介绍基于Java的并行程序设计基础、思路、方法和实战。第一,立足于并发程序基础,详细介绍Java进行并行程序设计的基本方法。第二,进一步详细介绍了JDK对并行程序的强大支持,帮助读者快速、稳健地进行并行程序开发。第三,详细讨论了“锁”的优化和提高并行程序性能级别的方法和思路。第四,介绍了并行的基本设计模式,以及Java 8/9/10对并行程序的支持和改进。第五,介绍了高并发框架Akka的使用方法。第六,详细介绍了并行程序的调试方法。第七,分析Jetty代码并给出一些其在高并发优化方面的例子。
目前商用的高性能Java虚拟机都提供了相当多的优化参数和调节手段,用于满足应用程序在实际生产环境中对性能和稳定性的要求。如果只是为了入门学习,让程序在自己的机器上正常工作,那么这些特性可以说是可有可无的;但是,如果用于生产开发,尤其是大规模的、企业级的生产开发,就迫切需要开发人员中至少有一部分人对虚拟机的特性及调节方法具有很清晰的认识。所以在Java开发体系中,对架构师、系统调优师、高级程序员等角色的需求一直都非常大。 学习虚拟机中各种自动运作特性的原理也成为Java程序员成长路上最终必然会接触到的一课。
构建分布式系统并不容易。然而,人们日常所使用的应用大多基于分布式系统,在短时间内依赖于分布式系统的现状并不会改变。Apache ZooKeeper旨在减轻构建健壮的分布式系统的任务。ZooKeeper基于分布式计算的核心概念而设计,主要目的是给开发人员提供一套容易理解和开发的接口,从而简化分布式系统构建的任务。
项目架构图
有多线程、高并发,到分布式架构、JVM调优,这些高频面试文档和网约车、亿级流量项目实战等学习资料,助你更加系统的提升进阶,不要留下明显短板,因为那就将是你的致命缺陷。
当面试时突然卡住而答不上来后,有什么好的解决方法,再和朋友们分享一下,只是笔者个人的见解,有哪里觉得不合适的地方,请多多留言交流,笔者一定虚心接受,咱们共同交流学习进步~~~
保持冷静使我们不自乱阵脚,再仔细分析面试官的题意,看是否是理解错误,即可实在不会,也不要冷场,适当表达出自己的缺陷,继而通过介绍类似问题展示自己,留给面试官好的印象。
最后,还是要提升自己的内功修为,追求极致的内核原理,理论结合实战,方能成就自己的一番梦想!!!