NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

蚂蚁中间件面试指南

  • 2019-08-27
  • 本文字数:3450 字

    阅读完需:约 11 分钟

蚂蚁中间件面试指南

写过代码的技术同学都知道,中间件在整个技术体系里的重要性。在过去的十多年里,蚂蚁金服自主研发出了金融级的分布式中间件 —— SOFAStack,并多次在极为复杂的场景下得到验证,比如每年的双 11。在蚂蚁金服,中间件团队是一个带着“光环”的队伍,CTO 程立、副 CTO 胡喜都出自这个组织……


配置千万条,集群第一条,环境不匹配,战友两行泪。——《流浪程序猿》

为什么选择蚂蚁中间件

2 年前的这个时候,作为南哪大学(南京大学)实习求职大潮的一名小白,一开学各种互联网大小厂学长学姐的内推邮件就塞满了邮箱,特别是阿里系的内推邮件各种部门玲琅满目。要说为什么在众多内推中对蚂蚁中间件情有独钟,说起来有表里两个原因:先说里原因,一直觉得程序员的核心是用抽象和自动化来低成本和快速地实现更多的价值,而中间件则可以抽象出通用的能力为业务同学赋能,让业务同学专心于业务,实现更大的业务价值;诶嘿,表原因是中间件部门的内推 JD 看起来要求还挺高的,笃定身边好多的小伙伴都不敢投,自己投的话录用概率比较大,对就是这么肤浅!(希望老大看到不要给我 3.25)

面试的“心机“往事

本科实习的时候也投过阿里,但当时本想着自己学校还可以,学习成绩也不错,找实习那不是嗖嗖的。以为面试只是聊聊人生、聊聊课程项目走个过场,满脑子想着找工作是不是也像考大学一样,只要学校好、成绩好,就可以去个好公司。年轻人,Naive!接到的阿里的电话面试,一连串的并发编程、虚拟机等教材上没怎么接触到的词汇面到快要“自闭”。幸好保研让我有了“翻身农奴把歌唱”的机会。从研究生生涯的第一天起,就开始为一年后的阿里实习生面试做准备。


对我来说准备面试是一个复习、应试和成长的过程。


复习 复习大学课程里面学到的计算机基础知识,包括数据结构、算法、操作系统和网络相关知识。复习不仅仅是为了面试,也是能让自己能够整理归纳以前学过的知识,达到连点成线、织线成网的效果。很喜欢左耳朵耗子的一句话"基础技术总是枯燥和有价值的。数学、算法、网络、存储等基础技术吃得越透,越容易服务上层的各种衍生技术或产品"。等实践多了,就会发现很多项目中用到的技术和基础技术里面的思路很相似。学好基础技术走遍天下都不怕。


应试 准备面试就是一个应试的过程,面试很艰苦,需要经历九九八十一难才能取得 offer,那就不得不说明年下半年中美合拍的西…面试考点。对于应届生来说,其实考点还挺清晰的,网上已经有很多总结,也有很多面经:


  • 数据结构:常见数据结构 List、Map 和 Set 的实现原理和应用场景,稍微上升一点,java.util.*里面数据结构的源码分析;

  • 算法:几种排序算法的实现、复杂度和应用场景,稍微上升一点,当处理内存放不下的海量数据的 TOP K 问题、排序问题等等;

  • 操作系统:内存分配寻址、线程调度和磁盘访问;

  • 网络:七层四层协议、TCP/IP 握手挥手和拥塞控制;

  • 数据库:基本的 SQL、数据库引擎的区别和索引的类型和原理。


"掌握"了上述的这些,个人觉得作为一个应届毕业生来说就已经合格了。前提是真正的掌握,要“由表及里,知其所以然”。最好是自己模拟问自己,能经受得住 3 轮以上的提问。


成长 成长主要来自于书籍的阅读和探索。研一时间里,陆陆续续把《Thinking In Java》、《Effective Java》、《Java Concurrency in Practice》、《深入理解 Java 虚拟机》和《Netty In Action》啃完,说实话能这么闲,也要感谢我们南哪放养学院。回想起来,《Thinking In Java》和《Java Concurrency InPractice》这两本书不愧为经典,内容由浅入深,很多知识点不仅仅告诉你怎么样,还讲解原理是什么、为什么这样。也是从读这两本书起,开始养成习惯采取三步法去了解一项技术:外在行为/表现是怎么样的;怎么实现/原理是什么;为什么要选择这样做,目的是什么,优劣是什么。看书不仅仅能让自己系统的掌握一项技术,技术书籍中往往还会留下一些进阶知识的引子,我也是因为这些引子开始去探索 AQS、读写锁、线程池和 ForkJoinPool 之类的源码,也是这些探索给我今后的开发和设计带来了很大的帮助。



应届生面试考察的是基础、思维和潜力。基础和思维是在平时的学习和面试的准备中培养的,没人有能一眼看出你是个"武学奇才",潜力是让面试官看到你相比其他人的优势和亮点。对于面试,谈谈自己的理解。面试的目的是向面试官“展现自己的优势”最终拿到 offer,而优势是在和面试官的对话中体现。如何最大程度的体现出自己的优势,充足的准备是一方面,另一方面引导面试官去问自己擅长的技能是很重要的一点。首先简历上要下功夫,简历上写出来的东西应该都是自己希望面试官去问的、有亮点的东西,而不是只是陈列自己做了什么项目,并且简历上的每个点最好经得住三、四问,最好能回答到面试官也不熟悉的领域。其次在自我介绍的时候,要引导话题,将焦点聚集在擅长的部分,这样才不会出现面试节奏被带跑的情况(恨不得就直接说快问我这些,我都准备好了)。

见闻及感受

想要变强,首先要站在强者中间。在蚂蚁实习和工作的一年半时间里,我对这句话有很深的体会。我参加过大大小小、各种技术主题的分享讲座,收获技术知识的同时,可以见识到他人的思维方式,拓宽自己的眼界,从各种角度获得对自己的提升。除此之外,在讲座中扮演分享者的角色,更是一个学习的机会。我曾经在实习期间做了一次 AQS 的分享,做分享对自己的提高是巨大的,想要把事情来龙去脉说的明白,既需要透彻的理解、广泛的涉猎、又要有触类旁通的总结和深入浅出的表述。蚂蚁为技术分享提供了自由的平台,“在这样的环境下,从不会缺少进步的机会”。


在巨人的肩膀上,站得更高,看得更远。除了平日众多的分享以外,蚂蚁还专门有一个技术大学为应届萌新特别准备了青年近卫军新人培养计划。在入职后的两个月内,从线上线下,从理论到实践,各个业务线和技术线的老司机将向新人同学全方位地介绍业务背景,讲解基础技术,帮助同学们快速落地。老师们知识渊博、风趣幽默,从便民服务到普惠金融,从分布式事务到单元化架构,他们独到的见解和讲授,都使我受益良多。另外在实战环节中专门配备了技术指导员和项目指导员辅导新同学从 0 到 1 完成一款“minialipay”的开发,在短短的 2 周内,收获颇丰。



欢乐的中间件团队在去 Outing 的路上


“小螺丝也能发挥大能量。”每个人都是公司的螺丝钉,双十一、新春红包千万 TPS 的考验,每一次突破的背后都是链路上所有部门的集体突破。蚂蚁天生的金融属性不仅对中间件的正确性和稳定性提出了极高的要求,加速发展的业务也要求中间件随时接受新的挑战,像火箭一般迅速迭代和拓展,这火箭的巨大能量来自于每一颗螺丝钉自我挑战和突破带来的推动力。从入职起一坐上通信中间件这艘火箭,我就开始感受到这比脱发还要快的功能开发速度。


刚入职不到一周,就被师兄丢过来一个多 Session 幂等的需求,上游数据同步催得很急要求 2 周内完成。才入职不能虚,接下需求,两周内设计方案、啃代码、一把梭,最终按时完成,还是挺有成就感的。"不丢、不错、不乱"数据同步的三不要求对消息队列的代码质量和功能的完备性提出了极高的要求。都知道并发编程容易出错,而蚂蚁消息队列是基于分布式存储盘古的,将并发编程从单进程扩展到多进程,在分布式存储的环境下没有锁的情况下,如何保证正确性就成了功能开发的首要障碍。凭借着这次研发经验,接着又在半年多里,陆续开发完成了 Topic 无损扩缩容、Topic 无损集群迁移和 Chaos 正确性验证等等功能。


继去 IOE 之后,技术上对去中心化,轻量虚拟化,无服务器等技术需求愈发强烈,而 Serverless 必将借势迅速发展,未来 Serverless 将在云计算的舞台上大放异彩。蚂蚁正处于 Serverless 转型的技术红利时代,“既有挑战,又充满机遇”。期待着学弟学妹加入蚂蚁中间件大家庭,一起共建蚂蚁 Serverless 未来。

关于蚂蚁“青年近卫军”

“青年近卫军”是蚂蚁技术校招新人金牌培养项目,由蚂蚁技术大学创建,该品牌诞生于 2008 年,总计精英化培养 1500+ 同学。


为了帮助新员工快速融入和掌握基础的专业技术技能,蚂蚁技术团队为应届毕业生制定了青年近卫军入职培训,包括通用内容和岗位内容,并匹配实战项目。1 年全链路培养,融合了业务知识、上手技能、职业素养,并利用网络精品课题、线下体验式学习、活动场、战略级项目养兵等多种方式让技术新人更自主融入学习,融入蚂蚁。


如今,“青年近卫军”已不仅是新人培养项目的名称,更成为了蚂蚁校招技术新人的代名词。


本文转载自公众号蚂蚁金服科技(ID:Ant-Techfin)。


原文链接:


https://mp.weixin.qq.com/s/wY8w6iRp4HDO4RlPS3eklw


2019-08-27 09:414551

评论

发布
暂无评论
发现更多内容

HTML的简介

智趣匠

HTML标准 10月月更 HTML元素

Android Coder浅谈队列同步器(AQS)

子不语Any

后端 java; 10月月更

跟着卷卷龙一起学Camera--压缩与存储

卷卷龙

ISP camera 10月月更

Zebec即将推出公链并开放节点申请,潜力几何?

EOSdreamer111

【算法作业】实验五:神奇宝贝大军 & 到迷宫出口的最短路径

清风莫追

算法 10月月更

Surpass Day——Java 抽象类和接口

胖虎不秃头

Java 10月月更 se

简述Docker改造传统应用的流程

穿过生命散发芬芳

Docker 10月月更

2022-10-09:我们给出了一个(轴对齐的)二维矩形列表 rectangles 。 对于 rectangle[i] = [x1, y1, x2, y2],其中(x1,y1)是矩形 i 左下角的坐

福大大架构师每日一题

算法 rust 福大大

强化学习发现矩阵乘法工赋开发者社区 | DeepMind再登Nature封面推出AlphaTensor

工赋开发者社区

Hacktoberfest 2022:Jenkins maven-snapshot-check Plugin 的改进实践

donghui

jenkins Hacktoberfest

【C语言内功修炼】柔性数组的奥秘

Albert Edison

数组 C语言 10月月更 柔性数组

爬虫的简介

智趣匠

Python语法 10月月更 爬虫简介

企业的数据资产怎么盘?统筹规划,摸清家底

雨果

数据资产管理

一起学习设计模式:备忘录模式——软件的“后悔药”

宇宙之一粟

设计模式 备忘录模式 10月月更

数字化转型,目的是为了转型还是数字化?

雨果

数字化转型

数据结构学习,栈篇(顺序栈)

IC00

数据结构 算法 学习笔记 10月月更

Surpass Day——Java 接口在开发中的作用、关于Object类、内部类

胖虎不秃头

Java 10月月更 se

面试突击89:事务隔离级别和传播机制有什么区别?

王磊

http协议简介

智趣匠

Cookie HTTP协议 Cookie反爬虫 10月月更

应用监控可视化工具Grafana&Kibana对比

阿泽🧸

10月月更 监控可视化

Zebec地平线节点运营计划,Web3流支付赛道或多一条全新公链

股市老人

Python基础(十三) | 机器学习sklearn库详解与应用

timerring

Python 机器学习 sklearn 10月月更

爬虫练习题(四)

张立梵

Python. 10月月更 爬虫案例

六类网线、七类网线、八类网线区别有哪些?

wljslmz

10月月更 弱电 以太网线 综合布线

跟着卷卷龙一起学Camera--BM3D

卷卷龙

ISP camera 10月月更

Surpass Day——IntelliJ IDEA和eclipse的使用、super关键字

胖虎不秃头

Java 10月月更 se

_fitoa_word的实现:一个整型数据是如何转成字符串的呢?

桑榆

源码刨析 10月月更 C++

Spring之IOC

楠羽

笔记 spring 源码 10月月更

跟着卷卷龙一起学Camera--透镜组

卷卷龙

ISP camera 10月月更

什么是DataOps?DataOps只是Data加上Ops吗

雨果

DevOps

【算法作业】实验一:轮流报数与鸡兔同笼

清风莫追

蚂蚁中间件面试指南_文化 & 方法_无暮_InfoQ精选文章