HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

蚂蚁中间件面试指南

  • 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:414679

评论

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

Nginx源码编译安装与运行

马里奥

nginx 安装 笔记

Zabbix 产品周期

耳东@Erdong

zabbix 4月日更 lifecycle

如何横扫大厂Offer?这份“1000道Java后端面试速成笔记”程序员(银四)必备

比伯

Java 程序员 程序人生 软件架构 java编程

哭了!从腾讯辞职后找不到工作,投了20多家简历,却只面过一家

Java架构师迁哥

应用宝SDK接入记录

风翱

sdk 4月日更 应用宝

Java线程讲解,这次没有人学不会了吧!!!

霖~

Vue cli项目 修改运行命令和端口号

空城机

Vue 大前端 4月日更 vue cli

深度图解Redis Cluster原理

leonsh

redis Gossip redis cluster

为什么我们的生活越来越快?

石云升

读书笔记 28天写作 4月日更

产品 0 期 - 第八周作业

vipyinzhiwei

清理SpringBoot应用无用的metrics指标

远鹏

Java springboot metrics micrometer

模块 1 作业

流水亮

手机自带的多功能百宝箱,没人用真的太可惜了。

彭宏豪95

iphone 效率 工具 苹果 4月日更

变易世界,简易战略,不易华为

脑极体

年度盛会 | Atlassian Team 2021 全球大会重磅嘉宾介绍

Atlassian

Agile Zoom Atlassian Slack

Rust:关于闭包的一点研究

Microwood

rust 闭包 closure

逐行解读Spring- 没人比我更懂循环依赖

学Java关注我

Java 编程 架构 编程语言 技术宅

lombok编译报错:java: 找不到符号

李印

IntelliJ IDEA lombok

洛谷 || 混合牛奶 Mixing Milk(贪心算法)

Bob

算法 刷题 4月日更

《采访融云CTO杨攀:融云七年发展史》(采访提纲)

后台技术汇

调查采访能力考核

荣耀,单刷苹果大boss

脑极体

想靠接私活月入5W?建议根据这几个开源的SpringBoot项目(含小程序)模仿一下~

Java架构师迁哥

Java入门第一课

ベ布小禅

4月日更

Redis-Sentinel 深入浅出原理和实战

leonsh

redis redis sentinel

重读《重构2》- 提取函数

顿晓

4月日更 提取函数

【基金系列】10年理财规划师经验分享:不想当韭菜就看一下这些内容

小Q

学习 基金会 理财 基金

第二周作业

Geek_2e7dd7

架构实战营

二阶单位圆

山@支

绝了!阿里面试官跟我死磕MySQL,结果我却拿了个高薪offer

码农之家

Java 程序员 面试 MySQL 高可用 刷题笔记

计算机原理学习笔记 Day3

穿过生命散发芬芳

计算机原理 4月日更

方寸之间,书写天地

小天同学

个人总结 4月日更 1 周年盛典 我和写作平台的故事 InfoQ 写作平台 1 周年

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