我的阿里、头条等公司面试经历及总结

|  阅读量 | 分类: 好文分享 | 作者: 转载大师 | 时间:2019年05月07日 08:43

为啥跳槽?

每次说因为生活成本的时候面试官都会很惊奇,难道有我们这里贵?好想直接给出下面这张图,厦门的房价真的好贵好贵好贵。。。

我的阿里、头条等公司面试经历及总结 奋斗 工作 IT职场 好文分享 第1张

面试过程

上半场

曹操专车

这是吉利集团下属子公司,已经是一家独角兽。一面中规中矩,没啥特别的。二面好像是个主管,隔了好几天,基本没问技术问题,反而是问职业规划,对加班有啥看法,有点措手不及,感觉回答的不好。但是过几天还是收到HR的现场面试通知。现场是技术面加HR面,技术面被问了几个问题有点懵逼:

a. zookeeper的watcher乐观锁怎么实现

b. 一个项目的整个流程

c. 说出一个空间换时间的场景

d. centos7的内存分配方式和6有啥不同

e. 你对公司有什么价值。

HR跟我说节后(那会再过两天就是清明)会给我消息,结果过了半个月突然接到他们的电话,说我通过了,给我讲了他们的薪资方案,没太大吸引力,再加上这种莫名其妙的时间等待,直接拒了。

美亚柏科

估计很多人没听说过这家公司,这是一家厦门本土公司,做政府安防项目的,在厦门也还是小有名气。但是面试完直接颠覆了我对这家公司的认知。进门最显眼的地方是党活动室,在等面试官的一小段时间里有好几拨人到里面参观。面试前做了一份笔试题,基本都是web/数据库方面的。第一面简单问了几个redis的问题之后面试官介绍了他们的项目,他们都是做C和C++的,想找一个人搭一套大数据集群,处理他们每天几百G的数据,然后服务器全部是windows!二面是另一个部门的,印象中就问了kafka为什么性能这么好,然后就开始问买房了没有,结婚了没有,他对我现在的公司比较了解,又扯了挺久。三面应该是个部门老大了,没有问技术问题,也是问买房了没,结婚没,问各种生活问题,有点像人口普查。我有点好奇,问他们为啥这么关心这些问题,他直接说他们更强调员工的稳定性,项目比较简单,能力不用要求太高,不要太差就行。汗,直接拒了。

有赞

绝对推荐的一家公司,效率超高。中午找了一个网友帮忙内推,晚上就开始一面,第二天早上二面,第三天HR就约现场面试时间,快的超乎想象。现场面也是先一个技术面,最后才HR面。面试的整体难度中等。现在就记得几个问题:G1和CMS的区别,G1有啥劣势;Kafka的整体架构;Netty的一次请求过程;自旋锁/偏向锁/轻量级锁(这个问题在头条的面试里也出现了一次)、hbase线上问题排查(刚好遇到过NUMA架构下的一个问题,借此把hbase的内核介绍了下)。 这里不得不说下有赞的人,真的很赞。终面的面试官是一个研发团队的负责人,全程一直微笑,中间电话响了一次,一直跟我道歉。面完之后还提供了团队的三个研发方向让我自己选择。后面看他的朋友圈状态,他那天高烧,面完我就去打点滴了,但是整个过程完全看不出来。帮我内推的网友是在微信群里找到的,知道我过了之后主动找我,让我过去杭州有啥问题随时找他。虽然最终没有去,但还是可以明显感受到他们的热情。

字节跳动(今日头条)

HR美眉打电话过来说是字节跳动公司,想约下视频面试时间。那会是有点懵的,我只知道今日头条和抖音。后面想到北京的号码才想起来。头条可以说是这次所有面试里流程最规范的,收到简历后有邮件通知,预约面试时间后邮件短信通知,面试完后不超过一天通知面试结果,每次面试有面试反馈。还有一个比较特别的,大部分公司的电话或者视频面试基本是下班后,头条都是上班时间,还不给约下班时间(难道他们不加班?)。

一面

面试官刚上来就说他们是做go的,问我有没有兴趣,他自己也是Java转的。我说没问题,他先问了一些Java基础问题,然后有一道编程题,求一棵树两个节点的最近的公共父节点。思路基本是对的,但是有些细节有问题,面试官人很好,边看边跟我讨论,我边改进,前前后后估计用来快半小时。然后又继续问问题,HTTP 301 302有啥区别?设计一个短链接算法;md5长度是多少?整个面试过程一个多小时,自我感觉不是很好,我以为这次应该挂了,结果晚上收到面试通过的通知。

二面

在一个上午进行的,我以为zoom视频系统会自动连上(一面就是自动连上),就在那边等,过了5分钟还是不行,我就联系HR,原来要改id,终于连上后面试官的表情不是很好看,有点不耐烦的样子,不懂是不是因为我耽误了几分钟,这种表情延续了整个面试过程,全程有点压抑。问的问题大部分忘了,只记得问了一个线程安全的问题,ThreadLocal如果引用一个static变量是不是线程安全的?问着问着突然说今天面试到此为止,一看时间才过去二十几分钟。第二天就收到面试没过的通知,感觉自己二面答的比一面好多了,实在想不通。

下半场

一直感觉自己太水了,代码量不大,三年半的IT经验还有一年去做了产品,都不敢投大厂。上半场的技术面基本过了之后自信心大大提升,开始挑战更高难度的。

美团

这个是厦门美团,他们在这边做了一个叫榛果民宿的APP,办公地点在JFC高档写字楼,休息区可以面朝大海,环境是很不错,面试就有点虐心了。 两点半进去。

一面

我的简历大部分是大数据相关的,他不是很了解,问了一些基础问题和netty的写流程,还问了一个redis数据结构的实现,结构他问了里面字符串是怎么实现的,有什么优势。一直感觉这个太简单,没好好看,只记得有标记长度,可以直接取。然后就来两道编程题。第一题是求一棵树所有左叶子节点的和,比较简单,一个深度优先就可以搞定。第二题是给定一个值K,一个数列,求数列中两个值a和b,使得a+b=k。我想到了一个使用数组下标的方法(感觉是在哪里有见过,不然估计是想不出来),这种可是达到O(n)的复杂度;他又加了个限制条件,不能使用更多内存,我想到了快排+遍历,他问有没有更优的,实在想不出来,他提了一个可以两端逼近,感觉很巧妙。

二面

面试官高高瘦瘦的,我对这种人的印象都是肯定很牛逼,可能是源于大学时代那些大牛都长这样。先让我讲下kafka的结构,然后怎么防止订单重复提交,然后开始围绕缓存同步问题展开了长达半小时的讨论:先写数据库,再写缓存有什么问题?先写缓存再写数据库有什么问题?写库成功缓存更新失败怎么办?缓存更新成功写库失败怎么办?他和我一起在一张纸上各种画,感觉不是面试,而是在设计方案。

三面

这是后端团队负责人了,很和蔼,一直笑呵呵。问了我一些微服务的问题,我提到了istio,介绍了设计理念,感觉他有点意外。然后他问java8的新特性,问我知不知道lambda表达式怎么来的,我从lambda演算说到lisp说到scala,感觉他更意外。此处有点吹牛了。我问了一些团队的问题,项目未来规划等,感觉榛果还是挺不错的。 四面。这个应该是榛果厦门的负责人了,技术问题问的不多,更多是一些职业规划,对业务的看法等。面试结束的时候他先出去,我收拾下东西,出去的时候发现他在电梯旁帮我开电梯,对待面试者的这种态度实在让人很有好感。 出来的时候已经是六点半。

网易

面的是网易云音乐,平时经常用,感觉如果可以参与研发应该是种挺美妙的感觉。 

一面

下午打过来的,问我有没有空,我说有,他说你不用上班吗?有态度真的可以为所欲为(苦笑)。然后问了为什么离职,聊了会房价,问了几个netty的问题,gc的问题,最后问下对业务的看法。 然后约了个二面的时间,结果时间到了没人联系我,第二天打电话跟我道歉重新约了时间,不得不说态度还是很好的。

二面问的反而很基础,没太多特别的。让我提问的时候我把美团二面里的缓存问题拿出来问他,很耐心的给我解答了好几分钟,人很好。

阿里

这个其实不是最后面试的,但是是最后结束的,不得不说阿里人真的好忙,周三跟我预约时间,然后已经排到下一周的周一。总体上感觉阿里的面试风格是喜欢在某个点上不断深入,直到你说不知道。

一面

自我介绍,然后介绍现在的项目架构,第一部分就是日志上传和接收,然后就如何保证日志上传的幂等性开始不断深入,先让我设计一个方案,然后问有没有什么改进的,然后如何在保证幂等的前提下提高性能,中间穿插分布式锁、redis、mq、数据库锁等各种问题。这个问题讨论了差不多半小时。然后就问我有没有什么要了解的,花了十几分钟介绍他们现在做的事情、技术栈、未来的一些计划,非常耐心。

二面

也是从介绍项目开始,然后抓住一个点,结合秒杀的场景深入,如何实现分布式锁、如何保证幂等性、分布式事务的解决方案。问我分布式锁的缺点,我说性能会出现瓶颈,他问怎么解决,我想了比较久,他提示说发散下思维,我最后想了个简单的方案,直接不使用分布式锁,他好像挺满意。感觉他们更看重思考的过程,而不是具体方案。还问了一致性hash如何保证负载均衡,kafka和rocketmq各自的优缺点,dubbo的一个请求过程、序列化方式,序列化框架、PB的缺点、如何从数据库大批量导入数据到hbase。

三面

是HR和主管的联合视频面试。这种面试还第一次遇到,有点紧张。主管先面,也是让我先介绍项目,问我有没有用过mq,如何保证消息幂等性。我就把kafka0.11版本的幂等性方案说了下,就没再问技术问题了。后面又问了为啥离职,对业务的看法之类的。然后就交给HR,只问了几个问题,然后就结束了,全程不到半小时。 不懂是不是跟面试的部门有关,阿里对幂等性这个问题很执着,三次都问到,而且还是从不同角度。

总结

从面试的难易程度看阿里 > 美团 > 头条 > 有赞 > 网易 > 曹操专车 > 美亚柏科。整个过程的体会是基础真的很重要,基础好了很多问题即使没遇到过也可以举一反三。另外对一样技术一定要懂原理,而不仅仅是怎么使用,尤其是缺点,对选型很关键,可以很好的用来回答为什么不选xxx。另外对一些比较新的技术有所了解也是一个加分项。

来源:Java高级互联网架构

顶: 3 踩: 0

来源: QQ/微信:13340454 ,转载请注明出处!

本文地址: