【日拱一卒进击大厂系列】三个月斩获阿里offer,我做对了哪些事情

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 阿里巴巴这四个字对于一个技术人来说,是一个朝圣对地方,是一个制造梦想的地方。看过无数次马老师对演讲视频以及纪录片,在惊叹于马老师的商业眼光的同时也萌生了去看看阿里巴巴到底是一家什么样的公司的愿望。本文主要阐述了作者如何在繁忙的工作中通过三个月的准备拿到阿里offer的过程,希望对想进入阿里巴巴的同学有所裨益。面试准备经历适用于将要走出校园寻找人生第一份Java开发工作的应届生,也适用于工作好几年的老司机。

引言

阿里巴巴这四个字对于一个技术人来说,是一个朝圣对地方,是一个制造梦想的地方。看过无数次马老师对演讲视频以及纪录片,在惊叹于马老师的商业眼光的同时也萌生了去看看阿里巴巴到底是一家什么样的公司的愿望。本文主要阐述了作者如何在繁忙的工作中通过三个月的准备拿到阿里offer的过程,希望对想进入阿里巴巴的同学有所裨益。面试准备经历适用于将要走出校园寻找人生第一份Java开发工作的应届生,也适用于工作好几年的老司机。

为什么换工作

作者的最主要的工作经历是在一家领域内排名全球第一的公司工作,但是这家公司是以硬件为主的,软件只是配套。虽然一直谋求在软件道路上的突破,形成新的利润增长点,但是转型是痛苦的,作者经历了整个转型的过程,但是越越发现自己遇到的技术上以及发展上的瓶颈,逐渐进入了舒适区以及温水煮青蛙的状态,因此萌生了离职换工作谋求发展的想法。由于对于阿里巴巴的盲目向往,给自己定了去阿里的目标,于是开启了自己三个月的面试准备之旅。

面试准备

面大厂的技术岗,还是需要好好准备,最好不要打无准备之仗。因为每次面试都是有面试记录的,如果没有准备好就面试,很有可能留下不好的面试记录,后面再面试其他部门的时候,面试官会参考之前的面试记录对你进行初步的评判,影响后面的面试。因此如果想要面试大厂必须好好进行面试准备。

另外大家在准备面试的时候不能光看,要学会自己总结,用输出倒逼输入,无论写文章还是思维导图,都是需要自己总结沉淀的。

我把面试内容主要分成了三大部分,分别为技术知识,项目经验以及HR面试。下面我就针对这三大部分分别进行详细说明。

image.png

技术知识

1、 Java功底

扎实基础知识是一切的基础,因此无论是应届生还是老司机都需要具备。在准备面试的时候这部分还是不可以偷懒的,因为一般第一面都是会从基础知识入手考察面试者的技术底子如何。

Java的基本数据结构,像List、HashMap、ConcurrentHashMap,这些源码都要烂熟于胸,常见的问题就是HashMap为什么线程不安全?Volatile关键字原理,可不可以从硬件层面进行分析描述。

2、JVM

JVM是java程序运行的基础,因此是非常重要的基础知识。建议大家在准备的时候,可以通过画图来进行理解。如果有实际的JVM调优经验那就更好了。像下面的这种流程图我们可以凭借自己的记忆可以画出来。对于常见的OOM如何分析?fullGC如何分析我们都要非常熟练。

image.png

3、并发

我们都知道大厂由于业务规模非常大,经常会有高并发的场景。面试官对于候选者的在高并发方面的沉淀也是非常看重的。首先我们要明白并发安全的原因是什么?我们的解决方案是什么?在分布式场景下如何解决并发安全问题?

https://blog.csdn.net/Diamond_Tao/article/details/117617457?spm=1001.2014.3001.5502

4、Spring框架

Spring框架是我们每天都会用到的开发框架,因此我们需要对它的原理、设计思想以及如何扩展都要非常熟悉。AOP、IOC的原理?Bean创建流程、循环依赖如何解决的?有哪些设计模式?有哪些扩展点?

https://blog.csdn.net/Diamond_Tao/article/details/82736787?spm=1001.2014.3001.5502

中间件

中间件是分布式系统中必备的基础组件,作为一名优秀的工程师,我们不仅需要熟悉各个中间件的原理,还要明确知道他们的使用场景以及如何进行选型对比。比如同样是MQ中间件,为什么你的项目中使用的是RabbitMQ而不是Kafka?其中的选型思考是怎样的?这些都是面试中经常碰到的,面试官其实更想听到的是你的思考是什么。

另外建议大家在面试前好好准备一些生产上面的遇到的问题以及解决问题的小案例,这样面试的时候可以信手拈来而不是当场去想,避免面试过程中可能由于紧张一下子想不起来的尴尬场面。当然必须是质量较高的案例。

image.png

数据库

虽然各种数据库层出不穷,但是实际工作中,我们大部分的业务数据还是存储在关系型数据库中。因此对于数据库的掌握是面试关非常重视的。就拿Mysql来说,我们可以先按照如下的结构进行梳理,Mysql的存储结构我们得清楚,一条SQL的执行过程我们能用自己的语言描述出来,在实际项目中的数据量有多大?如何进行分库分表?索引怎么设计的?有哪些设计规则?有没有进行SQL优化?怎么优化的?

5.png

https://blog.csdn.net/Diamond_Tao/article/details/117340176?spm=1001.2014.3001.5502

Redis

Redis作为当前分布式系统中最常用的缓存基础组件,也是面试中的重点考察对象。我们在准备过程中,需要梳理下我们平常在使用Redis的过程中遇到过哪些问题,比如数据缓存后,Redis数据与数据库的数据一致性如何保证?项目中如何保证Redis的高可用的?使用的是主从模式还是哨兵模式?为什么?

6.png

MQ

MQ是微服务架构的必备基础中间件,因此非常重要,大家务必好好准备。主要包括MQ在微服务架构中的作用是什么?Kafka、RabbitMQ、RocketMQ等消息中间件的选型对比是怎样的?消息如何存储的?怎么保证消息中间件的高可用?MQ的网络通信模块如何实现的?

通过以上的描述,大家知道如何准备中间件的面试了吗?如果再学习到一款新的中间件,大家也可以按照如下方法进行准备。

中间件是在什么场景下使用的?有没有做过选型对比?为什么项目中使用RabbitMQ而不使用Kafka?中间件的高可用怎么保证的?中间件的高性能怎么实现的?

项目经历

在面试前一定要把自己做过的项目重新梳理一遍,重点是你负责的部分,一定要非常熟悉,同时串联下自己的上下游服务,形成完整的业务闭环。把项目中最具有技术挑战的问题提炼出来,在面试前准备好,这是面试必问的问题。准备好项目中最大的技术挑战是什么(问题描述清楚),自己是怎么分析问题的(自己的分析过程),如何解决的(实际解决过程),解决的结果是怎样的(拿到什么样的结果),这就是我总结的问题回答公式,即W(What)A(Analysis)H(How)R(Result)回答法。面试准备中按照这样的方法论去套你的回答,肯定会惊艳全场。

算法

这个没什么好说的就是要多练多写,甚至可以用白纸写出来基本的快排算法、LRU等。这里推荐Leetcode。一定要把常见的题目弄的很熟。如果现场写不出来,但至少自己要有对应的思路。

HR面试

经历了前面多轮技术面试之后,恭喜你终于来到最后HR面试这一关。虽然不是技术面试,但是也是非常重要的一轮面试,像阿里这样的大厂,HR拥有一票否决权。

HR面试一般会让你先介绍下自己的经历,如果是学生的话就是自己的求学经历,做过哪些项目。如果是社会招聘,则重点说下自己的工作经历以及为什么换工作。HR面试问题主要有以下几类,大家可以根据自身的情况进行准备。

1、自我介绍,尽量简要而不简单,整段介绍要有记忆点,让HR对你有个基本的印象。

2、自己目前在团队中的角色以及现状。

3、为什么想要换工作,现在发展不顺利还是有什么其他原因?

4、展现自己能吃苦、愿意接收挑战的倾向,最好辅以具体的小故事加以说明。

5、为什么想来XX,手上有其他offer吗?

总结

面试准备是一场修行,是对自己知识体系、技术体系以及自身价值对全面总结和梳理。无论最后的结果如何,我觉得都会让自己得到一些提升。就拿我自己来说,在准备面试的过程中,总结了自己梳理知识的方法论,改掉了睡懒觉的习惯,已经可以每天六点半起床了,这些小而美的改变都是在这个过程中修炼获得的。同时希望大家明确一件事情,面试准备不是背Java八股文,而是需要进行技术思考,技术思考力是大厂非常看中的重要品质,多问自己几个为什么?我想你会收获到更多。


最后和大家分享一句话,真正的大师永远怀着一颗学徒的心,人外有人,山外有山,时刻保持一颗谦卑的心,保持一种空杯状态,你才会收获更多。努力不一定就有回报,但是不努力肯定不会有回报。预祝大家都可以找到自己心仪的工作。


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
6月前
|
设计模式 Dubbo Java
渣本全力以赴33天,四面阿里妈妈(淘宝联盟),拿下实习岗offer
渣本一枚,杭州某大学读大四,学校背景还可以,因为在杭州读书,所以对阿里还是比较崇拜的,大二的时候就已经立志要去阿里实习,所以很早就开始准备了。这次面试了阿里妈妈,共耗费了33天的精力,最终拿下了实习岗offer,现分享一波我自己的面经和感受,希望能够帮助同龄人。
|
6月前
|
消息中间件 缓存 NoSQL
记一次蚂蚁金服四面遭虐,面试水太深,过河的渡船你造好了吗?
有道无术,术可成;有术无道,止于道;以术识道,以道御术
|
6月前
|
NoSQL 算法 关系型数据库
入职字节跳动那一天,我哭了(蘑菇街被裁,奋战7个月拿下offer)
先说一下自己的个人情况,18届应届生,通过校招进入到了蘑菇街,然后一待就待了差不多2年多的时间,可惜的是今年4月份受疫情影响遇到了大裁员,而我也是其中一员。好在早有预感,提前做了准备,之前一直想去字节跳动,年前就已经在做准备了,这场持久战拉得很长,也最终以7个月的时间取得胜利。在踏入字节跳动,办理入职手续的那一天,作为一个男子汉,确实是落泪了。特分享一波我的真实经历,共勉。
|
6月前
|
算法 NoSQL Java
“北头条,南BIGO”,BIGO社招Java三面面经分享 怒斩心动offer
我了解到的是:BIGO给予员工机会去发展和创造。在大厂里较大概率会一直接需求做需求,重复性的更新和迭代,在这里有更多机会可以经历从0到1,能发挥自己的能力进行创造。并且在同批次的offer中,BIGO的薪资最有竞争力。
|
6月前
|
消息中间件 NoSQL Java
为了阿里巴巴的P7offer,我筹备了半年,四面之后终于成功拿下
大厂是每一个程序员的梦想,在这些互联网的大厂里面又属阿里巴巴最吃香,今天小编就来分享一个小伙进阿里巴巴的面经!
|
存储 算法 NoSQL
膜拜!砍下13个大厂Offer神仙案例! | 彭文华
膜拜!砍下13个大厂Offer神仙案例! | 彭文华
|
算法
史上最牛二分查找,不服来战
史上最牛二分查找,不服来战
89 0
|
传感器
两个月吸金4亿美元,《原神》大奖拿到手软
众所周知,《原神》是一款颇具争议的游戏,但无论如何,从现有的成绩来看,《原神》无疑是非常成功的。近日,Sensor Tower发布了11月份中国手游发行商全球营收排行榜,此前连前十名都进不去的米哈游,如今凭借《原神》已经荣升至第三名,仅次于行业巨头的腾讯和网易。
877 0
两个月吸金4亿美元,《原神》大奖拿到手软