阅读 228
阿里字节面试经验-1.5年经验

阿里字节面试经验-1.5年经验

[toc]

1.简单介绍

​ 双非重点本科,毕业后一直在一个中型厂工作(杭州准独角兽,研发200人,阿里系风格),技术算不上拔尖,做的基建也比较粗糙,但是该有的东西基本都有。自己在里面也确实学到了点东西,最多的就是流程规范以及一些业务实践。

​ 小公司虽然技术不是很好,但是有一点挺好,就是能够试错,自己有啥想法或者新东西,基本都可以在线上业务中进行实践,约束没有大厂那么严格。

​ 本次就分享下几个大厂的面试经验。面试了滴滴、阿里、头条、恒生,除了滴滴脸黑两次一面挂起他都过了。

2.面试内容

  • 阿里-淘特后端开发
  • 字节-电商
  • 恒生-金融软件
  • 滴滴-营销、供应链

滴滴【一面,视频】*2-60分钟

记不大清了,总之都是基础:缓存、GC、数据库索引、MQ、分布式等等。

问的问题很深入很刁钻(估计面试官自己都不会,猜测应该是不缺人)。找内部人帮忙看了结果面评比较差,说基础太差、没有分布式系统经验之类的。面试官水准不太行不会引导,一个问题回答错了就不提示直接过,然后说基础差,和阿里面试官比起来体验差了很多。

总结:不缺人的部门面试比较难,也可能自己比较菜,两次一面挂,面试官水准和一线大厂有些差距。

PS:第二次面试时接了两次阿里hr电话,约交叉面,然后对面试官不尊重给G了。自己想想也确实不应该,但是阿里最后一面了2333。

恒生【一二面,视频】-高级开发工程师

恒生这面试感觉比较随意,也挺基础挺简单。应该是挺缺人的,问的都比较接地气。

一面-项目小主管:主要问一些很基础的东西(30分钟)

  1. redis有啥存储结构、使用场景是啥?
  2. Springboot用过吗?怎么配置redis、mq等等(我说直接starter不就行了?)
  3. 几种数据结构,安全的不安全的,使用场景等等。
  4. 自己公司做过的业务,用到的技术栈,团队情况。

二面-项目总负责人:主要问些工程方面的(40分钟)

  1. 公司做啥业务的,自己负责哪块,团队有多少的业务是自己负责?
  2. 说说你们公司的开发流程,哪个环节是开发参与的,参与度如何?
  3. 系统分析、流程分析、单元测试都有做吗?说说他们之间的区别,举个实际的例子。
  4. 自己有没有带过项目,人员配比如何,有什么需要注意的?
  5. MQ怎么保证一定发送成功,怎么保证不会重复消费?
  6. 聊聊怎么看待恒生,有没有啥想问的?

三面-hr:主要是聊薪资(估计对我比较满意)(30分钟)

​ 比较常规,就是个人性格、优缺点、期望薪资等等

最终:offer下来了,最后婉拒了,因为那时阿里已经稳了

阿里【一面,电话,纯技术】(老p7-90分钟)

  1. 多线程相关。
    1. CAS是什么,有啥应用的地方。
    2. 悲观所和CAS有啥不同,性能如何,为什么?
    3. 对象锁与类锁有何区别?(没答好,其实没多大区别,如果类锁是外部声明的传进去,某种意义上说和类锁一样。不过再深入点如果写过工具就能理解它的不同之处,比如我做一个异步并发加载数据的操作,多个线程同时获取一个数据,每个线程都生成一个对象CAS操作放入队列准备加载,保证只有一个人能放进去其他人都获得这同一个对象,对象包含一个锁和加载函数,此时多个线程都持有当前对象,然后调用起get方法,如果数据没准备好就wait,等待起加载好就唤醒所有线程。类锁比较适合于全局性质的,比如单例加载)
    4. volatile使用场景,什么时候可以不加?
  2. 集合问题
    1. ArrayList为啥随机查找比LinkedList快?(没答好,面试官想问操作系统底层,为啥连续内存寻址更快,怎么寻址的让举例子)
    2. 并发安全包简单介绍下
  3. MySQL
    1. 常见索引,失效问题,怎么排查和优化
    2. 为啥要分库分表,分了之后为啥就快?怎么分库分表,举个例子
    3. 水平切分和垂直切分有啥区别,各自都有什么好处?
    4. 水平分表,分在多个实例和分在一个实例有啥区别?
  4. MQ
    1. 使用场景,为啥要用?举例子,然后根据你的回答再追问
    2. MQ是解决最终一致性的常见方案,但是无法保证最终一致性。
  5. 分布式
    1. 一致性hash是啥?与普通分片有啥区别?(没答好)
    2. 应用场景是什么?
  6. Redis
    1. 基础结构,使用场景
    2. 知道底层结构吗?--不知道
    3. 缓存穿透、击穿、热点、雪崩分别什么意思,都是怎么解决的?
    4. 布隆过滤器可以用在解决什么问题上?
  7. 反射
    1. 反射基本介绍,有啥功能?
    2. 自己用反射做过什么东西。这个我正好做过几个工具,把反射代理什么的都用全了,面试官比较满意。
  8. 后续
    1. 对你比较满意,有俩算法题,你能把简单的做出来基本就给过了,如果都能做出来我立马给约2面。
    2. 第一题:单生产者多消费者问题,保证顺序消费。其实就是考察ReentrantLock和Condition
    3. 第二题:多级地址列表解析、存储、查找、打印。考察B树的构建和查找。

阿里【一面-续,电话】(30分钟)

  1. 介绍下你做这两个算法题的思路和设计细节,然后随机问几个代码细节。
  2. 给我说了下二面注意事项。(说稳着点发挥基本能过。给了四个词和两句话:聪明、乐观、皮实、自省,介绍项目用数据和结果说话,所有回答要多想想怎么表现前面四个词)

阿里【二面,电话,偏技术】(p8-60分钟)

  1. 项目经验以及个人软实力
    1. 工作经历简单聊聊,以后有何打算?
    2. 是否关注开源项目,对那几个比较感兴趣觉得设计很不错,举几个例子?扯了下Spring和dubbo
    3. 除了工作怎么学习,说说你的实际情况。
    4. 讲下你这所有项目中最出色的一个,有何难度,有啥亮点。(答非所问,最后我想起来要用数据说话,就说性能提升几倍,之前怎么样,现在怎么样,立马就满意了)
  2. 技术
    1. 说说集合中的并发安全容器有哪些,都是怎么实现的,自己用过哪些?
    2. ThreadLoca是干嘛的,自己有用过吗,举个例子说说。ThreadLocal底层实现和数据结构是啥?为啥会内存溢出,怎么避免?
    3. ThreadLocal用了弱引用,那说说引用都有哪几种,分别有啥区别?
    4. 开源框架有啥看过的?--回答说JDK和Spring,然后就不问了
    5. Redis为啥快?--估计想问底层实现,我说io多路复用(epoll),然后不会了,过了
    6. Redis怎么解决热点缓存问题?hash分片、本地缓存、命中率和热点监控提前预热
    7. 你说熟悉dubbo,那你觉得哪块设计比较不错?--过滤器实现很不错,比如自带的限流模块、泛化调用等
  3. 问题排查
    1. 问题排查有啥手段?自己都遇到过哪些问题,怎么排查的?
      1. 日志告警、rt监控、pinpoint监控、arthas监控等
      2. cpu问题怎么排查。top、jstack、arthas
      3. GC问题怎么排查。看GC日志、频率。--具体分析没做过不会,就不问了
      4. 实际例子。多线程下使用线程池超时问题排查...
    2. GC相关懂多少?--回答只会原理,没机会也不会实操
  4. 觉得不错,直接当场约3面

阿里【三面,电话,偏综合素质】(p9-60分钟)

  1. 业务相关,主要是考察自己对公司整体业务的一个认知
    1. 自己负责什么业务,技术架构是啥,自己主要做了什么?自己做的东西有何价值,可量化 。
    2. 公司是做啥的,核心做哪块?
    3. 公司发展如何,竞争对手是谁,有什么优势?
    4. 在供应商那边是否有自己的后续规划?
  2. 技术
  3. 个人成长
  4. 其他
    1. 为啥离职,自己优缺点?
    2. 有其他offer,自己如何看待?
    3. 住哪,期望薪资多少?
  5. 有啥想问的?
    1. 自己的面试评价。缺少对复杂系统的思考和设计,分布式和高并发的经验缺乏,表达和总结能力待提高。优点基础扎实,业务大盘了解清晰。面评不错,一个小时后就给约了四面。

阿里【四面,视频,交叉面】(p9和hr-70分钟 40+30)

  1. p9
    1. 自我介绍
    2. 说说项目,怎么做的,有啥优缺点?数据说话
    3. 自己项目的延伸。--我说的是抽象设计,就一直追问我抽象,md都差点放弃面试了
    4. 缓存
    5. mysql如果有性能问题怎么优化?--考察全面思维,硬件升级、冷热分离、主从、分库分表、参数设置、缓存等。没答好,硬件和参数设置方面没想到。
  2. hr
    1. 自身优缺点
    2. 对c2m有啥了解?知道核心是啥吗?自己入职后要做啥清楚吗?
    3. 平时有主动推动产品优化取得了业务成果的案例吗,说一说。
    4. 有其他面试吗?offer有啥?都拿了怎么选?
    5. 单身吗?如果offer啥时候入职?

阿里面试总结

  1. 全面。技术、业务、设计、软实力等全面评估。
  2. 面试体验良好,面试官水平很高,面试流程一周结束。
  3. 更看重潜力而非现状,这个比较玄学,如果12面面试官对你评价很高基本就稳了。

字节【一面,大头兵】(60分钟)

  1. 介绍项目,自己怎么做的有啥结果。
  2. 技术
    1. HashMap介绍,怎么保证安全?
    2. Synchornized和ReentrantLock区别,什么时候用哪个?都是可重入锁吗?
    3. 什么是OOM?原理是啥?手写一个OOM的代码
    4. JVM都介绍,JVM各个模块介绍,都是干嘛的。给个场景,然后怎么排查GC问题,怎么调整GC参数。
  3. 算法。链表排序

字节【二面,虚线主管】(60分钟)

  1. 介绍项目,说一个你觉得不错的设计。
  2. 技术
    1. HashMap、CurrentHashMap
    2. Object有哪些方法,都是干嘛的
    3. 说说锁,公平与非公平是啥,实现细节有何区别?
    4. Spring IOC、DI、AOP讲一讲,BeanFactory和FactoryBean区别
    5. MySQL InnoDB介绍下,B+树和B树区别
  3. 问题场景
    1. 有俩文件,找到俩文件里相同的行
      1. 文件按hash分成小文件,然后小文件处理最后合并结果
      2. IO次数过多有啥优化?没答出来,给了提示布隆过滤器还是没答出来
  4. 算法。括号对比配,找到符合配对的最长长度。--需要动态规划,不会,只做出来一半

字节【三面,大主管】(60分钟)

  1. 自我介绍
  2. 写个算法,KMP。--不会
  3. 写个算法,列出所有子集。--开始想了个全排列,没写出来,经过提示用递归写出来了
  4. 写个SQL,求每个部门工资大于该省平均工资的人及部门信息
  5. 线程池有何好处,底层实现是啥?各个参数都有啥意思?
  6. 其他.....

字节【四面,HR】(80分钟)

  1. 面试评价,对面试官评价、对自己评价、面试感觉如何,题目、算法等
  2. 自己优缺点
  3. 有没有带过项目,人员配比如何?遇到过什么问题,怎么解决的?
  4. 有啥offer了,自己期望薪资多少?

字节面试总结:

  1. 面试官水平感觉和阿里还有一点差距,但是面试体验还不错,每面都有邮件提示,比较正式。
  2. 问的东西有点少,比较注重算法,占了一半面试时间。
  3. hr问的优点刁钻,问的问题不像一般公司那样走形式,还是比较难回答的。

PS:去了阿里两周,然后去字节了。主要感觉自己享受不了福报,坑位还是得给更优秀的人。

文章分类
后端
文章标签