在面试过程中往往会遇到面试官的夺命连环call。具体场景如下:
面试官: 你用过什么消息队列,当初为什么选择这个?
我: 我用过rocketmq.优势是分布式,高可用,可伸缩,快
面试官:为什么处理速度快
我: 用了netty
面试官: 用了netty为什么快?
我: 用了rector设计模式,用了多路复用java NIO
面试官: 那你就说说rectory设计模式和 NIO吧。
我: 。。。。。
面试官: 那今天就到这里吧。你回去等通知吧。
上面的面试对答相信很多人都会遇到过,但是很多人都会心理一万个草泥马奔腾,今天怎么这么倒霉,感觉面试还不错,但是面试官怎么步步紧逼啊,我好像什么都回答出来了,又好像上面都没有回答出来。什么网上说的吊打面试官都是什么玩意。我是不是被人吊打了?
经过很多次的吊打之后,我潜心学习,看了很多书,终于明白面试官为什么这么问,我应该怎么应对了。
面试官为什么这么问?
平时我们都是对消息中间件只要会用即可,但是一旦出现问题,其实轮不到我们去管的。并且中间件这么优秀,出事的概率也很小。所以我们从来没有去思考为什么。面试官想要的人是会思考的人,是会懂得出问题后怎么解决问题的人。 如果会用就可,那就太简单了,找个代码女工培训一下就OK 了。根本不需要花大价钱去找。所以如果我们想挣大钱,那就要让面试官知道,我们是可以解决问题的,是知道这个中间件出问题了no problem的。
我曾经有幸跟蚂蚁的人一起工作,蚂蚁的人大部分是不写代码的,但是出问题了,人家能第一时间知道哪出问题了,怎么解决。要想年薪百万,有脑子很重要。
那我们怎么样才能有脑子呢?
- 多看书
- 书中的内容多思考。
- 多练手,如果工作中能用不到,就试着手写中间件,很练知识
形成自己的知识系统,从下到上构建自己的知识金字塔。
形成自己的知识系统,从下到上构建自己的知识金字塔。
形成自己的知识系统,从下到上构建自己的知识金字塔。
回到上面的面试流程,其实面试官就是想问我们有没有总结的知识系统。从下到上依次是:linux: epoll ,java: 多线程,NIO. 设计模式reactor. 中间件:rabbit。如果你能手撸一个中间件,那回答上面的问题就OK 了