您没有来错地!为了更好的发展,黑基网已于9月19日正式更名为【安基网】,域名更换为www.safebase.cn,请卸载旧的APP并安装新的APP,给您带来不便,敬请理解!谢谢

黑基Web安全攻防班
安基网 首页 资讯 职场族 查看内容

一次拿到BAT技术专家Offer的面试经历

2018-5-25 23:01| 投稿: xiaotiger |来自: 互联网

摘要: 本人最近刚刚换完一次工作,而且恰巧其中用了1个多月的时间面完了BAT中的一家(因为网络传播太快,所以这里就不具体说哪一家了,做点保密工作,不过看完这篇文章,相信大家自己都能猜到)。同时也拿到了技术专家的of ...

本人最近刚刚换完一次工作,而且恰巧其中用了1个多月的时间面完了BAT中的一家(因为网络传播太快,所以这里就不具体说哪一家了,做点保密工作,不过看完这篇文章,相信大家自己都能猜到)。同时也拿到了技术专家的offer,虽然最后因为种种原因,没去那家BAT公司,而是去了一个目前估值几百亿美金的独角兽公司。提笔写一下这次面试的种种经过,毕竟BAT的面试难度和强度在业内应该是最高水平的,相信对大家都有裨益,算是抛砖引玉了。

先简单自我介绍一下,本人2009年本科毕业,迄今为止工作了8年多,将近9年。先后在国企、百度、京东都工作过,一直从事的是Java开发的工作,从一开始在国企干CRUD,到后来下苦功夫自学很多东西借着一次内推的机会转型到互联网公司,到现在也负责过好几个互联网公司的核心高并发系统,一路走来,着实不易。换工作之前,本人薪资为32k/月。这次跳槽,是因为每家公司都待过2~3年,一般到3年,其实程序员都得考虑一下换岗,看看自己当前职业发展是否达到瓶颈了。

而当前本人就是带一个8人左右的技术团队,但是在当前公司里,因为业务发展较为平缓,职业上升机会较少,而且对负责的系统架构和技术已经非常熟悉了,薪资上也较难有大幅度的增长,而晋升更高的级别,应该短期内也不容易。因此仔细思考一番之后,决定出来看看机会,能否在带团队、技术以及薪资上实现一个突破。

刚好有猎头朋友给推了一个职位,是BAT某公司的一个团队,具体就不说是哪个部门了。因为猎头跟那边很熟,所以有人推,那边没有约电话面试,直接一面就是过去当面聊了一次,大概从下午2点聊到了下午4点多,时间很长,炮火相当猛烈。一面面试官是P7,上来就是先聊项目,针对项目中的各种细节仔细问,就项目展开,而且极其注重细节。

举个例子

记得面试过程中聊到缓存,面试官就具体问了项目每秒钟有多大的并发量,我回答说平时大概普通高峰期QPS是每秒钟几万,低峰期也有每秒钟几百~几千,但是如果遇到高峰期的时候会翻几倍,达到每秒钟几十万。毕竟在大厂里工作,用户量大,确实技术挑战高,搞一搞活动,流量马上翻10倍都正常。然后面试官问的很具体,包括具体的业务,让现场画出来系统架构图,我这边大概画了一下,包括我们的机器部署(这边整套系统分成很多服务,大概部署了几百台机器),缓存集群部署,MQ集群部署,数据库集群部署,多机房部署,还有配置中心,日志中心,网关中心,流控中心,等等吧。这里给大家说一下,如果要面P7级别的职位,必须要能整体把控一个大型系统,同时给出线上完整的架构图和部署情况,是必须的。

这些请求具体是落在哪些接口上,哪些数据是数据库和缓存双写一份的?双写一致性如何保证?保证一致性的同时如何保证高并发和性能?缓存线上是如何部署的?给了多大的总内存?命中率有多高?缓存抗了多少QPS?数据流回源会有多少QPS?是否某个key出现了热点缓存导致缓存集群中某个机器的负载过高?如何解决的?是否出现超大value打满网卡的问题?如何规避这个问题?线上是否出过缓存集群事故?如果出现了你们怎么解决有什么高可用保障预案?平时如何监控缓存集群的QPS和容量?如果要扩容该怎么扩?能否平滑扩容?扩容会导致系统需要停机吗?聊聊Redis的集群原理?扩容的时候会不会导致数据丢失?key寻址算法都了解哪些?一致性hash算法啥的聊聊?Redis线程模型现场画个图说说?Redis内存模型现场画个图说说?类似一堆这种问题。

如上所述,还追问了很多细节,包括当时怎么处理的,线上是否遇到了什么坑,什么问题,全部结合项目,问各种生产问题。同时注重聊技术的很多细节,包括技术的一些原理。

类似缓存这块的聊法,面试官还如法炮制跟我聊了MQ、MySQL分库分表、高可用、JVM、多线程并发,等等各种问题,用网上流行的说法,每一大块都是N多个连环炮,结合具体业务和细节,问的很细。简单来说,一面其实关注了技术广度,同时结合项目死扣了各种细节,另外也兼顾了一定的技术深度,会就一个技术往深了问一下。

具体不可能把每个细节都回忆出来,因为内容实在太多了,就是用这个来举个例子,其他问题其实都是如此一环接一环不断问下去,大家参考一下就好。跟一面面试官就这么聊了2个多小时,非常扎实的一次面试,印象深刻。

不得不承认,BAT的面试官是非常有水准的,出去面试,看一个面试官提问如何,是怎么从浅入深,同时结合细节来问,几乎要把你扒一个体无完肤的感觉,这样才是高水准的面试。因为站在面试官的角度,他只有一个目的,就是要看看你的技术水准到底有多高。试出你的水深水浅,接着才能给你定级别。一面还算是很顺利的,毕竟都是结合项目来问的,各种细节平时我们进行架构设计的时候,都会仔细考虑过,而且做过线上的高并发系统,踩过很多坑,所以这些问题基本都回答的不错。

但是这里给大家提醒一句,实际上很多人平时问面试经验,都是问你,一般都有啥面试题?怎么问的?说实话,大家看了上面那些问题,可能会觉得说,哦,其实我也可以答出来,没什么特别的。但是并不是这样。如果只是拿P6级别的Offer,你的技术会占很大比重。但是如果要拿P7级别的Offer,你到底有没有线上真实的高负载的系统架构经验,非常重要。同样的问题,普通的人会回答的很普通,但是经历过真实几十亿流量请求的人一定会说出大量我们的经验总结、教训以及采坑,而且对整套复杂的大型系统到底是如何抗住高并发的,会了然于胸,熟悉所有的细节。

所以针对一面,一般就是结合项目,深挖细扣,看你到底有多少水平,做过多复杂的系统。这块说实话,做过就是做过,没做过就是没做过,是不可能作假的。很多同学可能自己平时也看过很多书和博客,但是看书和博客只是基础,如果真到了这一步来面试,是肯定不够的,离真实生产环境差太远了。而且BAT公司面试官都是技术专家,或者高级技术专家,大家问一问就能看出来你的水平,这点大家务必要注意。因为一面没有请假,就是下午趁着不忙跑出来的,所以面完了就回去了。毕竟跳槽要面试很多公司,没法请太多假,假期也不够。

紧接着那边就安排了第二轮面试,同样是一个下午跑了过去。二面面试官,应该是这个团队的leader,P8级别的,如果进去,应该就是未来的顶头上司。二面面试官对本人态度非常好,很和蔼,看起来一面面试官反馈之后,这个team对本人还是比较重视的

二面聊的就从广度变成了深度了,二面面试官技术实力非常深厚,应该是有十几年经验,看着头发确实会稀疏一些。这回二面面试官深挖了很多东西,重点考察了本人的技术深度,比如还是以缓存举例,直接会问一下了解过哪些缓存技术,redis、memcached,还有阿里开源的tair,那么哪个了解过内核原理?本人之前看过一些redis的内核,就聊了聊redis内核的一些数据结构和实现原理,包括集群、持久化在内核层面的一些东西。包括MQ这块,本人正好对kafka做过深入的研究,那么就聊聊Kafka的源码,比如KafkaController在故障转移这块的源码,日志存储细节,网路通信的一些细节,如何保证磁盘读写的高性能,零拷贝那块的底层实现,leader和follower之间的数据是如何同步的,很多源码层面的东西,等等。类似的,还聊了dubbo的源码以及mysql内核层面的东西。

同时二面非常重视考察,系统设计能力、工程素养、带团队的能力。不过这些东西,基本上都是驾轻就熟,其实如果你有非常扎实和过硬的技术功底,同时确实做过一些比较复杂的大型系统的架构设计,另外带过团队,一般都没问题。比如这块,面试官出了一个这个部门负责的一块业务,相关的一个系统设计题目,就是说,多少用户量,什么业务场景,多大的并发,多少数据量,有什么挑战,让你整体负责这个系统的架构设计,从哪些点来考虑,现场画出来具体的架构设计图。工程素养这块,会聊了聊我们平时如何做技术设计、技术评审、编码规范、测试、上线、回滚、灰度、压测、监控等等。带团队,会让说一下,如何招人、面试标准、如何搭建团队的人才梯度,等等。此外,还会问一下,整个系统架构是如何一步一步进行演进的,从0到1的时候是什么架构?从1到10的时候是什么架构?从10到100的时候是什么架构?这块就是看看你的整体架构能力,以及技术规划能力。这块其实聊的基本也是比较顺利的。

说到这里,提一句,如果出去面试,尤其是去BAT等大型互联网公司面试,必须精心准备一下,包括你项目的每个细节,包括你解决的各种线上问题和坑,包括你简历里的技术是否达到一定的深度,包括你平时其他的工程、设计能力。绝对不要裸面!绝对不要裸面!绝对不要裸面!重要的事情说三遍!裸面必败,而且如果一问三不知,那么给人的印象就是很差的。如果要冲着心仪的大公司去,最起码精心准备1个月以上,大家务必记住这一点,这也是本人这次的一个重要心得,准备充分了,才能有备无患。

这次面完又回去了,后来就过了一段时间,大概记不得了,可能是一两个礼拜,因为越往上面,那边领导级别越高,平时越忙,有时人家可能出差开会去了。不过那边总算约上了三面,三面是总监级别的,不太确定是走的M线还是P线,如果是P线,那么一定是P9,但是观察面试风格应该是M线的总监。

这一面,聊技术其实并不多,更多的是聊过往的各种公司的经历和项目经验,看你具体负责过哪些比较有挑战的大型的系统。会考察你的背景,同时会仔细考察你的各种软素质,比如说责任心、抗压能力、自我驱动,会让你举例说明自己过去的一些事情,来证明你的软素质,或者给你说个场景,看你来如何回答。同时还会聊聊职业价值观,是否愿意加班,等等吧。最后也聊了聊我的职场期望,包括这个团队是干什么的,未来的发展方向之类的。我觉得最重要的还是前面两面,其实是这一面,只要你人品端正,平时干活儿认真负责,一般的都没什么太大的问题。

接着又过了一两个礼拜,具体时间记不得了,因为当时二面面试官,也就是那个未来可能成为leader的人物,对本人还是比较看重的,所以私下还短信联系了一段时间,就怕我跑去别的公司了。他说是HR那边太忙了,所以他帮忙去催了一下。

关于HR面,印象真是相当之深刻,为什么呢?因为HR是直接电话聊的,没过去了,过去实在太折腾,而且二面面试官也是去打了招呼。当时居然HR是晚上11点打来的电话,人家刚刚加班开会结束,就打来了电话,真是不得不佩服其敬业精神!而且这位HR是相当专业的,如果是普通的HR其实就随便聊聊就行了,但是这边的HR问了很多问题,大概聊了1个小时左右。主要是聊一些价值观的东西,比如之前觉得做过最难的事情是啥,怎么克服的,当时啥心态;还有就是为啥要离职?没有发展空间?那你没考虑过公司内部transfer(转岗)吗?为啥不好transfer?你的绩效平时怎么样?你觉得你跟同事相处的怎么样?类似很多这样的问题,其实还是一句话,你人品正就好了,一般都问题不大,老老实实的踏实回答。

后来HR面了过后,是当时推的猎头跟我联系的,因为猎头牵线的话,一般猎头会负责一个开头和一个结尾,所以猎头负责跟那边聊了聊薪资。其实本人这次的期望是能到40k薪资,带一个10~15人的团队,负责一个业务方向的技术,而且重要的是希望能够拿到一定的股票或者期权。

那边的薪资确实给到位了,差不多达到了我的期望薪资,但是肯定会压一点儿,低了一点儿,不过也能接受。但是那边给的规划是未来可以带的团队的人数也就是8人左右,而且不是配发集团股票,是配发的正在快速发展的这个团队的期权。所以当时纠结了一下,但是还是先答应了,于是那边offer就发了过来。

本来想的是,如果没有别的更好的机会,那么这个机会也可以考虑,毕竟薪资上还是可以的,但是确实当时包括头条、快手、滴滴、小米这边,也都有朋友内推过去试试,所以当时也面了其他的几个公司,其实如果能经历过BAT的几轮技术面试的洗礼,那么个人认为,去国内任何一个公司都没什么问题了,所以当时面试确实也都很顺利,过去基本都是聊聊。

但是最终还是没有选择去这家BAT公司,而是去了上面说的那几个超级独角兽公司中的其中一个。那边的薪资给的超出期望之外,因为那边领导对本人可能同样非常重视,而且配发了大量的期权,承诺可以独立带20人+的团队。

本人更看重的是这类超级独角兽公司未来的潜力,第一,公司发展速度快,人员扩张迅猛,所以给到的带团队的机会非常好,能带更大的团队,比我当前带的团队规模大了一倍,最高可以带到20人的team;第二,本人更加看好那边的增长潜力,同样是拿期权,但是期权未来潜力可能更大。所以综合考虑了之后,最终还是根据自己的职业发展选择了独角兽公司,而没有再回到BAT行列中。

福利�7�3

同时这里给大家播报一个福利,这里有一套完全免费的面试课程!虽然看过之后不能立马保证你能答出来本人这次分享的那些问题,但是还是讲了很多互联网面试时,分布式、高并发、高可用的常见面试题,相信对大家出去面试都是有所裨益的。目录截图如下,如果大家有兴趣,可以加QQ(小棠,2564484767),加了之后就可以获取这套免费的视频。


小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册黑基账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!



免责声明:本文由投稿者转载自互联网,版权归原作者所有,文中所述不代表本站观点,若有侵权或转载等不当之处请联系我们处理,让我们一起为维护良好的互联网秩序而努力!联系方式见网站首页右下角。


鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论

最新

返回顶部