记一次菜鸟网络的面试经历

我是一个不太爱折腾的人,所以在一个公司待久了,就不太会轻易跳槽。正由于如此,我在上家公司待了整整三年,在这里,认识了一群可爱的人,便更不舍得离去。java

但由于公司属于传统企业,技术上并无太大挑战,我的也逐渐遇到了职业瓶颈,我也渐渐体会到了温水煮青蛙的感受,看似本身已经成为团队的主程,其实与同龄人的差距越拉越大,因而依然决定换个环境。程序员

阿里巴巴做为国内最大的互联网公司,是无数程序员的梦想,因而在七月份便投了阿里旗下菜鸟网络的简历,一个菜鸟便开始了菜鸟网络的面试之旅。面试

一面

接到菜鸟的面试电话时,仍是很激动的,由于以前历来没有面试大厂的经验,便在忐忑不安中开始了面试。redis

面试官先让我聊了聊最近的项目,我便把项目讲了下,面试官便以此为切入点,问了一下相关的知识算法

http 协议 转 dubbo 协议 怎么作的
dubbo 的架构设计说一下
mq 通知时,消费者没消费到怎么办
redis 是单线程了吗?有什么好处
通常设置过时时间吗,业务场景有哪些,过时策略有哪些
redis 持久化了解不,大家线上怎么用的
大家线上为何这么用?只用AOF行不行
你有什么想问的?数据库

一面大概用了半个小时,总体没有太大难度,更可能是聊了一些项目上的东西,作了一个初步了解。浏览器

二面

没想到二面来的如此之快,一面结束的次日,电话就打来了,当时我还在公交车上,便在车停站时赶忙下车,当时还下着蒙蒙细雨,我也顾不上那么多了,找个了稍微安静的角落就开始了面试。网络

二面问的技术面比较广,先让我聊了最近作的项目,以及让我讲了下项目中用到的单点登陆的流程,接着就是java基础了架构

抽象类和接口你倾向用哪一个?什么场景下用抽象类
如何更好的实现一个单例
synchronized 和 lock 区别
公平锁和非公平锁
怎么实现自定注解
类加载机制
如何实现本身的classloader
如何动态加载类
如何触发full gc
用jvm命令如何触发jvm

最后聊了一些开放性的问题

了解过netty吗
微服务了解过吗,Service Mesh呢
五亿数据,找出数量top100
10G数据,在内存小于10G如何分片
分片处理完如何汇总
分布在多个节点上如何汇总
哈希取模如何哈希?哈希冲突怎么办?能彻底解决哈希冲突吗
数据库乐观锁和悲观锁
秒杀系统如何设计?
redis分布式锁如何玩?超时时间如何设置
zk的监听原理,你来实现你怎么作
主动推送怎么实现

整个面试聊下来,感受还算不错,基本都回答出来了。

三面

大概又过来一周,hr通知要到现场面,约的是上午十点,为了能准时赶到,我提早一天去了杭州。

次日早早的就起来了来到了面试地点,由于来的比较早,就坐在菜鸟大楼的外面等。七月的杭州彷佛格外的热,看着菜鸟大厦的人进进出出,每一个人彷佛都很忙,我不禁的想,本身从此是否有幸也能成为他们中的一员。

三面的形式彻底出乎我意料,来了两个面试官,先作了自我介绍,便开始了面试。

整个面试过程都让我在黑板上画图讲解,他们会不间断的提问并作记录。

先是让我画了项目的架构图,面试官指出了我项目中存在的一些问题问我如何解决,而后穿插着对项目中用到的一些技术进行提问

消息如何保证必定被消费,如何没有消费到怎么办
Redis 怎么保证不丢数据,能不能保证严格意义的必定不会丢
Redis 集群,生产环境Redis 如何作数据迁移
一致性hash算法
数据库是怎么保证必定不会丢失数据的
浏览器敲入一个域名,尽量详情的说下接下来网络协议层面发生了什么
了解过哪些锁,volatile 说下

三面持续了大概一个小时,面的不太好,主要是网络协议那一块,我回答的太烂了

四面

四面是一个看起来很是平易近人的大叔,全程微笑和我聊天,没有一点架子,应该是 Team Leader

整个过程没有聊技术细节,主要聊了一些技术的方向,业务的理解,过往的经历。整个过程仍是聊的很愉快的。

复盘

整个面试过程问的知识点并不算难,也没有很偏的题,不少都是开放性的问题。

例如redis在生产环境作数据迁移,一个只看过几篇博客的人和一个确实亲身经历过这种场景的人,回答的绝对有差异,而正是这种问题,才能看出来差距。

遗憾的是最后仍是没经过面试,我以为缘由主要以下

  1. 面试阿里过于匆忙,没有作好准备,也没有先拿小公司练手
  2. 基础知识仍有欠缺,例如网络协议和算法一直都是个人弱项
  3. 由于一直在传统企业,缺少互联网项目实战经验,虽然本身看过许多这方面的知识,知识广度还算能够,但更可能是纸上谈兵,缺少实践
  4. 四面时本身犯了一个严重的错误,由于面试官属于比较和睦且聊得来的类型,致使我在聊天的过程当中过于随意,说话没有作到有的放矢,该说的不应说的都说了,给人一种过于浮躁的感受。

面试要注意什么

在我看来,面试不只仅是实力加运气,我的发挥也很重要,有的人面试常常能发挥百分之一百二的实力,我总结了几点

  1. 不卑不亢,面试是一个互相认同的过程,既不能狂妄自大,也不要妄自菲薄。
  2. 讲话要有逻辑,作到条理清晰,井井有条。我身边有同事技术明明不差,但讲问题时却抓不到重点,听他说话总让人有种一头雾水的感受。
  3. 我的外在情绪展示能够随着面试官情绪稍做调整,这样易于拉近和面试官的关系。但你的内在情绪不该该受影响,自信,沉稳应该一直保持。
  4. 遇到不是特别清楚的,能够讲一下本身的思路,或者在征求面试官赞成的状况下,讲一下相似问题的解决方案。
  5. 若是问题实在不会,不要强答,直接说不会,要及时止损,避免越陷越深。
  6. 面试有必定的运气成分,但能够引导面试官到本身擅长的方向上去,但不要强行带节奏。

写在最后

虽然没能进阿里,但我并不沮丧,只是有些遗憾。毕竟在这条路上,我一直在努力,过程已经足够丰富多彩,结果已然没那么重要,顺其天然就好。

生活本就是一个不可预知的过程,只要朝着更好的方向前进就好。何况,因祸得福焉知非福,如今我入职了一家很不错的互联网公司,作的是本身喜欢的中间件研发,并且又遇到了一群可爱又有趣的人。这样的结果,我已然知足。

相关文章
相关标签/搜索