面试前

蚂蚁的面试挺独特,每轮面试都没有 HR 约时间,一般是晚上 8 点左右面试官来一个电话,问是否能面试,能的话开始面,不能就约一个其它时间。

全程 6 面,前五面技术面,电话面试,最后一面是 HR 面,现场面。

一面

  • 介绍一下自己问项目经历, 聊"数据同步"接着聊上了 K8S 的项目有没有什么钻研得比较深得技术?(我:kubernetes, golang, prometheus, java)kubernetes 的架构是怎么样的?这个问题很大,拆成 apiserver、controller、kubelet、scheduler 讲了一下

  • golang 与 java 的比较

这个问题又很大,当时主要对比了 vm、协程支持、面向对象和泛型的区别、以及自己对各自使用场景的一些理解

  • golang 的 gc 算法

知道是三色标记,不过细节说不上来

  • 从无限的字符流中, 随机选出 10 个字符

没见过也没想出来,查了一下是蓄水池采样算法,经典面试题,没刷题吃亏了

  • 怎么扩展 kubernetes scheduler, 让它能 handle 大规模的节点调度

单节点提速:优选阶段随机取部分节点进行优选;水平扩展 scheduler 节点,pod 做一致性 hash 来决定由哪个 scheduler 调度

  • 你有什么想问我的?

一面其实有点僵,我自己完全没放开,面试官对我的回答没有什么反馈和深入,都是"哦好的"然后就过了。所以我当时面完觉得自己其实已经挂了(我自己要是对***不感兴趣,有时候也就问完问题走个过场溜了),后来收到二面电话着实吃惊了一下。

二面

  • 先聊了聊项目给 Prometheus 做了哪些改动?自研配置中心, 具体做了哪些内容?有用过 MySQL 的什么高级特性吗?这里不太理解,我问什么算高级特性,面试官就切换到了下一个问题

  • 配置中心的核心数据表是怎么设计的?

  • 为什么在业务里用 Redis, Redis 有什么优点?单线程:并发安全;高性能;原语与数据结构丰富;采用广泛,踩坑成本低

  • 对 Redis 里数据结构的实现熟悉吗?

  • 说了一个 zset 跳表

  • 用过 Redis 的哪些数据结构, 分别用在什么场景? Java 初始化一个线程池有哪些参数可以配置, 分别是什么作用?

  • 自己写的 Java 应用调优过哪些 JVM 参数, 为什么这么调优?

    这个问住了,我只知道最大堆最小堆,开 G1,开 GC 日志以及 OOM dumper 这些基本的

  • 用 Jetty 的时候有没有配什么参数, 为什么这么配? Jetty QTP 等待队列配置成无限的话, 你觉得好吗? 会有什么问题吗? 用过 Linux Bash 里的哪些命令, 分别用它们干嘛? 一道笔试题: 需要在给的链接中作答, 不能 google, 不能跳出, 不能用 IDE:

题目是这样的:启动两个线程, 一个输出 1,3,5,7…99, 另一个输出 2,4,6,8…100 最后 STDOUT 中按序输出 1,2,3,4,5…100

我: 我用 Go 实现吧

面试官: 不可以,用 Java 的 notify 机制实现

我: (还没意识到问题的严峻) 那我用 Java BlockingQueue

面试官:说不可以, 要求用 Java 的 wait + notify 机制来实现

我完全没写过 wait + notify,只能表示不会(菜鸡本鸡了), 面试官说那行吧你可以用 go 写

最后用 go channel 实现了一版, 不过给的网页上不能运行代码,也不知道写得对不对,然后面试结束。

这一轮面试官延续了一面的风格,问完一题就赶忙下一题了,似乎没有表现出对我的回答有兴趣或认可。因此这轮面完,我又觉得自己挂了...

三面

依然先聊项目对监控警报的项目很感兴趣, 问了挺多细节, 最后问了一个问题: 现在要你实现一个语义不弱于 PromQL 的查询语言, 你能实现吗?这里虽然看过一些 Prometheus 的代码,但其实对 PromQL 的 lexer 和 parser 部分没有细看,还好之前因为数据同步项目里想写声明式 Stream SQL 研究过一点 ANTLR,用 ANTLR 写语法 + AST 遍历塞查询逻辑给糊弄过去了。

  • 问我觉得做得最深入的项目是什么

当然是数据同步(狗头)

  • 聊数据同步项目(这个很符合我的预期,哈哈哈哈)

  • 问 Linux 掌握得怎么样?没有系统学习过,基本上是自己运维踩坑积累的

  • 问 Golang 掌握得怎么样?

用了半年, 看过 effective go

  • 问算法掌握得怎么样?

到图为止都可以

  • 问最短路算法

只记得 dijkstra 了,描述了代码流程

  • k8s 掌握得怎么样?

不怎么样,没有自己写过 controller 和 scheduler,但是对概念都很熟悉,看过 xxx 这几部分的源码

  • k8s 的 exec 是怎么实现的?

这个问题正中下怀,之前写了 PingCAP 的小作业正好对这块特别熟悉

这轮聊得顺畅多了。同时发现蚂蚁的面试官似乎挺喜欢让你自己评价自己的:"你觉得自己 xxx 掌握得怎么样?"(只有五位面试官,样本不够大,不能作数哦),这类问题其实我慌得要死,怕自己吹过头了答不上来,面试挂了事小,丢了面子事大。早知道就预习一下怎么吹嘘自己了。

四面

介绍一下自己觉得自己基础知识掌握怎么样平时一般会用到哪些数据结构?链表和数组相比, 有什么优劣?如何判断两个无环单链表有没有交叉点如何判断两个有环单链表有没有交叉点如何判断一个单链表有没有环, 并找出入环点TCP 和 UDP 有什么区别?描述一下 TCP 四次挥手的过程中TCP 有哪些状态TCP 的 LISTEN 状态是什么TCP 的 CLOSE_WAIT 状态是什么建立一个 socket 连接要经过哪些步骤常见的 HTTP 状态码有哪些301和302有什么区别504和500有什么区别HTTPS 和 HTTP 有什么区别写一个算法题: 手写快排

这一轮全程问的基础知识,基础扎实的话就没问题了,不过个人感觉有一点像校招的问法。

五面

介绍一下自己在 k8s 上做过哪些二次开发?自己用 Helm 构建过 chart 吗?有哪些?有没有考虑过自己封装一个面向研发的 PaaS 平台?配置中心做了什么?为什么不用 zookeeper?配置中心如何保证一致性?Spring 里用了单例 Bean, 怎么保证访问 Bean 字段时的并发安全?用并发安全的数据结构,比如 ConcurrentHashMap;或者加互斥锁

  • 假如我还想隔离两个线程的数据, 怎么办?

ThreadLocal,然后举了个例子

  • Golang 里的逃逸分析是什么?怎么避免内存逃逸?

这个不知道,认怂了

  • 对比一下 Golang 和 Java 的 GC

答了一下 CMS、G1和三色标记,我对比的点是 JVM 有分代回收,Go 的 Runtime 没有,没能深入地讲

  • Golang 的 GC 触发时机是什么

阈值触发;主动触发;两分钟定时触发;

  • 有没有写过 k8s 的 Operator 或 Controller?(我:没有写过)

  • 谈一谈你对微服务架构的理解大体思路"微服务本质是人员组织架构演进与关注点分离"

  • 谈一谈你对 Serveless 的理解

大体思路"Serveless 是继 docker 与容器编排之后的又一次应用开发与基础设施提供方之间的边界划分"

  • 你认为 Serveless 是未来吗? 为什么?

大体思路"是云服务的未来,把蛋糕从企业的IT、运维与中间件部门切走,形成规模效应,做得越多赚得越多;公司内的话 servless 能够帮助加速前台业务迭代,但对中后台的收益还看不到,未来可能会有比 servless 更适合中后台的架构"

面试官:最后你有什么要问我的?我:为什么足足安排了五轮技术面,而且其中有两轮似乎和 k8s 没有关系啊?面试官:我们觉得你做过的东西挺多的,各个方向都想让你尝试一下 (我的内心:......) 我:那这轮是最后一轮技术面吗?面试官:不一定(我的内心:......)

五面最后的三个吹水问题我还挺感兴趣,可惜面试官只是听我讲,没有跟我讨论。还有就是问了面试官才知道,二面四面的面试官是 PaaS 平台那边的,因此主要问 Java 没有涉及到 k8s 和 go。

六面

HR 面,之前就听说过阿里系的 HR 是来"闻味道的"(看你是否适合阿里的风格),而且有一票否决权。所以还是挺有压力的。

问经历为什么要考虑出来看看呢?金句:"现在自己的技术成长有点碰到瓶颈,加上一直对您公司钦慕有加""

现在公司的主营业务是什么?(这块往技术上问了很多,感觉是想考察我解释复杂问题的能力) 现在带人吗?report 层级是怎样的?对自己这几年的经历满意吗?觉得自己有什么缺点?碰到过什么很挫败的事情吗?未来的职业规划是怎样的?看机会的时候,主要考虑的是待遇、平台、人员还是什么其他因素?现在的待遇如何 有什么想问我的

整体聊了 40 多分钟,话题挺广的,面试官也说了系统部这边压力挺大的,优秀的人才才能留下来。个人觉得 HR 面里除了谈薪酬的部分没有什么可准备的,想说什么直说就行。因为到了 HR 面至少证明你的技术没什么问题,直说出来方便 HR 判断两边的价值观是否合拍,假如真的不合拍,那其实在 HR 这一面挂了比起进去之后再后悔又跳槽要好很多,毕竟大家都不喜欢频繁跳槽的简历。

本文由 GOLANG ROADMAP 发布!

【第四十三期】社招面经-后端开发 蚂蚁相关推荐

  1. 秋招面经(后端开发)——语言篇(C++)

    其他后端所需技术栈个人总结链接汇总: 秋招面经(后端开发)--语言篇(C++) C++ STL容器底层学习(个人总结) 秋招面经(后端开发)--数据库篇(MySQL) 秋招面经(后端开发)--操作系统 ...

  2. 【生活工作经验 四】互联网社招求职攻略

    想写这篇文章很久了,一直没有时间,想着要写就写全面,所以拖了很久.找工作的确切准备时间是从2020年的7月初开始一直到2021年的5月底结束,时间跨度很长将近一年时间,但是其实也在我计划之中,因为太多 ...

  3. 22天试水Java社招,历经“华为、蚂蚁、字节跳动、PDD”等六家

    年中的时候因为换工作的缘故,陆续参加了华为.蚂蚁.字节跳动.PDD.百度.Paypal的社招面试,除了字节跳动流程较长,我主动结束面试以外,其他的都顺利拿到了Offer. 最近时间稍微宽裕点了,写个面 ...

  4. IBM推出用于量子计算的CLOPS性能标准;量子基本定理突破绝对零度的适用温度 | 全球量子科技与工业快讯第四十三期

    Qrypt通过云为企业提供量子安全解决方案 Qrypt是一家基于量子熵的加密安全解决方案的生产商,近日宣布推出两个新的解决方案:云企业门户和数字量子密钥分发(Digital QKD).这扩展了Qryp ...

  5. 2022火爆了金三银四的前端社招面经

    目前工作快四年,年后投了一波简历,这里整理了一下新鲜出炉的前端面经,需要的可以自取. 小伙伴们有兴趣想了解更多相关学习资料请点赞收藏+评论转发+关注我之后 私信我,注意回复回复[000]点击此处链接即 ...

  6. 第四十三期:Wireshark网络分析就这么简单,你一定会喜欢的技巧

    拿到一个网络包时,我们总是希望它是尽可能小的.操作一个大包相当费时,有时甚至会死机.如果让初学者分析1GB以上的包,估计会被打击得信心全无.所以抓包时应该尽量只抓必要的部分. 作者:科技yuan   ...

  7. 第四十三期:2020年企业面临的20大数据安全风险

    为了帮助企业为日益增长的确定性风险做好准备,以下我们总结了企业2020年可能面临的20种数据安全风险. 如今,数据安全已成为公司.消费者和监管机构的头等大事. 近年来数据泄露和隐私事故越来越普遍,而且 ...

  8. 青莲晚报(第四十三期)| 物联网安全多知道

    当今社会物联网设备已经逐步渗透到人们生产生活的方方面面,为人们及时了解自己周围环境以及辅助日常工作带来便利.但随着互联紧密度的增高,物联网设备的安全性问题也逐渐影响到人们的正常生活,甚至生命安全,物联 ...

  9. 四十六、微信小程序快速开发入门

    @Author:Runsen 很久没有写博客,前端学习到这里真的不容易,那接下来Runsen继续学习微信小程序开发. 首先微信小程序官方开发文档(免费的).微信开发者工具(免费的).微信云开发(还是免 ...

最新文章

  1. 从零开始MDT2010学习手记(二) 创建共享工作目录
  2. DeepMind论文:深度压缩感知,新框架提升GAN性能
  3. mysql模糊查询不会区分大小写_MySQL模糊查询(like)时区分大小写
  4. Android异步编程
  5. 一步一步做一个linux文件传输软件(一)
  6. asp.net core 使用Mysql和Dapper
  7. String.format() 方法用法解说
  8. Hadoop发行版本选择
  9. 【干货】神策数据朱德康:用户中台建设实践解析(附PPT下载链接)
  10. 华为郑叶来:致敬开发者,共创“ AI ”的世界
  11. Oracle SQL FAQ
  12. 什么是线性同余法c语言,C语言线性同余法产生随机数
  13. 手机怎么打开f12_如何使用浏览器的F12调试页面?
  14. Android阿拉伯适配rtl
  15. 如何解析(读取)LZ4压缩格式的Spark EventLog日志
  16. HTML期末学生大作业-电影网站html+css+javascript
  17. STM32单片机基于HAL库开发HC-SR04 超声波测距模块(终极版)
  18. “独享宽带”是什么意思?
  19. 《Cinema 4D + After Effects动态图形设计案例解析》——1.5 软件的历史
  20. python自带的shell、其性能优于ipython吗_尔雅通识课《社会体育学》答案

热门文章

  1. 【软件下载_1】关于Panoply的下载
  2. 不要凡事在天,守株待兔
  3. 《上海交通大学学生生存手册》读书笔记
  4. 那个给三千人算命的大师,正在给自己水滴筹
  5. Python水滴筹模拟筹款工具
  6. UI设计——网站收藏
  7. windows下frp socket内网穿透体验
  8. Python 生成个性二维码
  9. 【Retrofit】Retrofit的源码解析
  10. 引用或者打开JS文件乱码问题