开篇

  • 一、梦想和被拒

  • 二、积累

  • 三、结语

首先介绍一下小编,16年华理计算机本科毕业。在年前拿到了蚂蚁金服Java开发的offer,P6。

工作经历:

  • 15-17年,壹钱包实习、工作,基础中间件组。

  • 17年8月-19年3月网联清算有限公司,基础组件组。

一、梦想和被拒

进入阿里一直都是我的梦想,我想这跟很多同学是相似的。我前后被拒了两次,分别是大三找实习和工作一年后。第二次尝试一面都没过,但那一次电话面试经历了一个半小时,被问了十几个问题,面试结束后感觉脑子被掏空了,没办法思考,我也看到了自己的不足,很多基础知识非常不扎实,随机应变能力差。后面针对基础知识做了很多积累。

工作第一年,投出去的简历很少有回应,恰好此时网联正在筹建,同时壹钱包也是网联的股东之一,需要从支付机构借调人力。当时也为面试阿里做了些准备,所以在网联的笔试和面试都很顺利,就这样离开了上海,来到北京。

这里要温馨提示一下各位想进阿里的朋友,要做好充分的准备,不要浪费机会,你的每个回答,都会被记录,虽然你可能因为种种原因失败,但都会为你下一次挑战打下基础。

二、积累

我想强调最好的准备是你认真投入到你当前的工作,把它做的漂亮、优雅,至于一些面试题目和技巧,我个人觉得重要程度没那么高。所以这一章命名为积累而不是准备。

窥源码,知真意。

我非常推荐大家去仔细、认真的去读一个优秀的开源工程的代码。来到网联主要负责消息队列。当时我们选择了RocketMQ,很大程度也是因为相信阿里的技术能力。开始我们并没有着急上线,而是阅读了各个组件的大部分源码,确认了它的同步刷盘、同步复制、消息重试、定时消息等等各种主要功能是如何实现的。

Spring源码深度解析

读书。

为了搞清楚RocketMQ网络层的实现原理,我尝试去读Netty的源码,并结合《Netty权威指南》和《Netty实战》理解Netty的工作原理和RMQ的使用方法。看过Netty的部分代码给我留下最深刻的印象是好的产品是无数个细节堆砌出来的。去年为了解决RMQ自旋锁和重入锁的使用问题,阅读了《Java并发编程实战》,这是一本非常经典的Java并发的书籍,非常推荐大家深入阅读。

Java并发编程实战

 

训练。

这里特指算法训练。推荐大家使用LeetCode,题目比较经典,分类全面。因为本身是计算机专业,对数据结构和算法有些偏爱。回想一下上学时就被动态规划、二叉树各种虐,说实话我也是在工作这几年才更深入的理解这些数据结构和算法。如果你问这些知识有什么用,我可以给你一些具体的回答。

例如当你熟悉树的结构会帮助你理解数据库索引和epoll的实现,亲身经历,面试官会问为什么数据库索引要用B+树;如果你熟悉字母树会给你提供一种快速前缀搜索的方法;如果你熟悉链表,当有人问题如何实现LRU也可以轻松回答。再回头看HashMap的实现,也会有更深刻的理解,更不容易忘。

而且LeetCode还是训练新语言的好帮手,我在学习python时,会用两种语言完成题目,尤其是python的答案有很多写的非常优雅,能快速掌握很多编码技巧,推荐大家尝试一下。

Leetcode刷题笔记

如果您需要获取到这份文档进行学习的话,可以关注我转发文章之后点击传送门即可免费获取到

简单难度题目合集

中等难度题目合集

困难难度题目合集

 

数据结构与算法的总结

 

三、结语

如果你想突破自己的天花板,那一定要别人付出更多,这个过程是很辛苦的。如果你做好了充足的准备,那就自信的表达你的观点,不要因为不自信让面试官觉得你掌握的不扎实。如果你不会或拿不准,如实告知即可,遇到不会的很正常,不要不懂装懂。如果你认准了一条路,坚持走下去,你一定会获得很多收获。