查看原文
其他

在蚂蚁实习的笔试面试经验全公开,也拿过鹅头多offer

mochen 技术琐话 2021-08-08

一、笔者情况


笔者是四川人,本硕均毕业于成都某末流985,非科班,目前在蚂蚁成都大财务团队智能结算组,主要从事蚂蚁财务结算系统平台开发和日常维护。


笔者20年毕业,在19年3-4月参加实习面试,由于想留成都,基本上仅投了成都的互联网大厂,最后在5月拿到了蚂蚁、头条、腾讯成都团队的实习offer,最后综合考虑选择了蚂蚁。从6月中旬实习入职,8月底转正答辩,9月初拿到意向书,10月正式签约。

由于非科班,周围进互联网的较少,在准备过程中走了很多弯路。求职过程中看了很多师兄师姐的面经,获得了很大帮助,拿到offer的时候就想着自己也写一篇总结,不过由于拖延症一直拖到了现在。


下面笔者将以自己为例,分析互联网求职的环节,包括如何准备笔试、面试,如何实习,如何转正。尽量帮助大家少走弯路,成功入职大厂。


二、准备


笔者从基础知识、数据结构和算法、项目、简历三个方面介绍面试互联网需要的准备工作。


2.1 基础知识


笔者主要使用的语言是java,下面以java为例介绍需要的基础知识。


  1. java语言:笔者由于在研一下半段决定从事java相关,为了较快入门,选择通过看书的方式。当时看了两本书:《Java核心技术卷I》和《effective java》这两本书写的比较浅显易懂,第一遍可以跟着书上的示例敲代码,第二遍可以自己合上书本重新敲一次,很快便可入门。另外笔者还购买了《java编程思想》,这一本比较厚,不建议以此入门,可以后续当作工具书随时翻阅。


  2. java高级特性:这一块包括虚拟机、多线程等,面试必问。对于虚拟机,强烈建议阅读《深入理解Java虚拟机》,重点掌握其中内存模型、垃圾回收算法和垃圾回收器、双亲委派机制以及内置调优工具。可以选择其中一块重点掌握,笔者当时对于每一种垃圾回收器都做了相关实验,并且了解了当时刚出来的ZGC,这一块在面试时候加了不少分。对于多线程,建议阅读《java并发编程的艺术》重点掌握相关并发类实现机制,比如锁、AQS框架、原子类、线程池等。这一块一定要在学习过程中往前一步,想到应用场景,并发问题容易在面试官询问某一问题解决方案时涉及。


  3. 数据库:数据库笔者主要学习的为mysql,对于刚入门,建议阅读《mysql必知必会》,这本书非常浅显易懂,学习之后基本能够掌握所有语法。对于秋招设计较多的索引、存储引擎、调优等问题,建议阅读《MySQL技术内幕:InnoDB 存储引擎》,有时间还可阅读《高性能mysql》,这两本书基本上能够应付大部分问题。


  4. 缓存:目前大厂使用的缓存主要为memcached和redis。入门建议阅读《Redis实战》,这本书对redis相关特性讲的比较清楚,可以跟着书上示例敲一遍。如果想深入了解建议阅读《深入分布式缓存》、《Redis设计与实现》等。


  5. 计算机基础:包括操作系统和计算机网络。操作系统主要学习linux系统,需要掌握常见命令和部分原理,建议阅读《鸟哥Linux私房菜》,笔者当时强迫自己每天学习一个命令,效果很不错。如果需要进一步学习建议阅读《现代操作系统》这本书对于操作系统内部实现机制有很详细介绍,笔者当时还阅读了《linux内核设计与实现》,这本书对于linux底层原理有非常细致的剖析,不过由于较难并且基本上不会被问道,对Linux实现有兴趣的可以阅读。计算机网络笔者从谢希仁的《计算机网络》开始学习,这本书非常适合入门,阅读之后能够对网络有基本的认识。研究生阶段笔者师兄毕业论文是网络服务器相关,跟着阅读了《深入理解Nginx》和《UNIX网络编程》,这两本书如果想要从事c++网络开发强烈建议阅读,面试java相关岗位基本上不会被问到。


  6. 设计模式:建议阅读《大话设计模式》,可以参照java源码进行阅读,比如工厂模式可以结合spring代码,装饰器模式可以结合java io相关代码。


2.2 数据结构和算法


目前大部分互联网公司内推不免笔试,并且很多公司需要面试时手写代码,这一部分是大部分同学短板,并且很难短时间提升,建议尽早准备。


  1. 数据结构:入门推荐阅读《大话数据结构》重点掌握八大数据结构及其适用范围。


  2. 算法:建议阅读《算法》,这本书使用java语言实现了大部分常见算法,非常适合入门,重点掌握分治、贪心、回溯、动态规划等场景问题,以及时间复杂计算方法。不建议一开始看《算法导论》,这本书比较难,容易劝退。当然算法只看书是远远不够的,一定要刷题。可以从《剑指offer》开始刷起,牛客上有相关专题。《剑指offer》刷完之后建议刷LeetCode ,可以先刷top200,刷完之后可以参加周赛,周赛得到的coin还可以兑换纪念品,笔者当时兑换了T恤衫等,还是挺有意思的。算法这一块完全没有捷径,只能刷题,并且部分大厂很看重手写代码,笔者面试字节时第一面在1个小时内让手写了5道编程题,包括一道easy两道medium两道hard,万幸都是leetcode上题目的变种,在面试腾讯时基本上也是每一面都需要手写代码,这种如果没有刷题基本上就挂了。


2.3 项目


作为应届生,大多数同学没有特别多能够拿出手的项目,建议可以从网上实战项目、工作室项目、实验室项目、实习项目几方面进行挖掘。


  1. 网上实战项目:跟着视频做的实战项目,比如网上商城、秒杀系统等,对于这些项目一定要多掌握其中原理,最好有自己的一些看法。比如秒杀项目,可以从限流、队列、缓存等方面考虑,多讲底层技术。笔者不建议大家照搬视频项目,容易撞车,笔者当时学习java基础之后自己设计做了一个类似于商城项目的博客系统,由于需求不太一致,不容易撞车。


  2. 工作室项目:建议非科班同学有条件可以参加编程相关工作室,这里比较容易遇到同样走互联网方向的同伴,相互帮助也能够有较大成长。工作室大多是帮学校或者外面公司做一些小项目,涉及技术一般不复杂,不过这里可以看到真实的需求。工作室的项目建议多展现协作、沟通等软实力。


  3. 实验室项目:实验室项目大多数偏向底层研究,可以通过实验室的项目展示自己对于特定问题的思考。


  4. 实习项目:实习项目是真正的生产项目,这种项目是简历中的一大亮点,如果有这些项目建议重点介绍,可以通过实习项目展现开发规范、系统架构、质量意识等。


  5. 比赛项目:建议如果导师不肯放实习,可以参加一些互联网公司的比赛,这些比赛中取得好成绩通常可以拿到举办公司的直通卡,就算没有很好的成绩,也可以作为简历中的亮点。建议重点介绍如何分析问题、解决问题的。


2.4 简历


简历很多时候能够决定面试官第一印象,建议认真对待,需要注意以下几点。


  1. 个人信息准确齐全:一定要注明自己的电话、邮箱,如果有博客也建议放上去,方便面试官提前了解。

  2. 不熟悉的不要写:有些同学写了很多自己仅仅参与并不了解的项目或者技术栈到简历中,很容易被看出来对面试官留下不好印象。

  3. 叙述有重点:建议按照star原则写项目经历,突出项目重点、难点,最好通过数据展现出来。

  4. 突出成果:部分同学有论文、专利、开源项目、比赛结果、奖学金等,这些加分项一定要重点写出来,建议加粗。就算和面试岗位不相关的论文专利等也一定要写上去,这些能够展现学习能力。


二、面试


2.1 投递简历


一般3月中旬各大互联网公司实习招聘启动,在这之前一定要找好内推人,虽然现在大部分互联网大厂内推不免笔试,但是一个好的内推人很大程度上能够避免你的简历石沉大海。一般可以通过以下方式找到内推人:


  1. 师兄师姐内推最靠谱,找到实验室师兄或者高年级同学直接内推,这种内推由于相互认识,成功概率非常高,建议有认识的师兄师姐一定要牢牢抓住。如果自己不认识,可以找辅导员或者导师询问前几届师兄师姐是否有在目标公司的,通过老师认识也非常靠谱。


  2. 论坛找人内推较靠谱,有些学校有内部论坛,校招季很多校友在上面发帖,这个靠谱程度直追师兄师姐内推,建议校招期间多多关注。牛客等校招论坛也有很多内推,这种也比较靠谱,建议选择意向部门,直接私信询问联系方式。


通过以上方式找到内推人后,一定要用好内推人,一般来说,靠谱的内推人能够提供以下帮助:


  1. 确认招聘真实性:投递以前一定要询问是否招聘名额已满,避免简历石沉大海。

  2. 介绍工作内容、环境:内推人能够真实感受到团队氛围和工作内容,一定要在投递简历前确认工作地点、工作内容以及团队氛围,避免投递到不适合的团队。

  3. 评估简历:简历一定要先让内推人看并给出意见,不同部门偏向不同,内推人一般能够很好的了解面试官的侧重点

  4. 推进面试进度:如果发现在一个阶段卡了很长时间,一定要和内推人沟通,确认是面试失败还是流程问题,如果是流程问题内推人需要推动整体进度。

  5. 确认面试结果:网站上一般只能显示面试是否通过,如果没有通过,建议向内推人询问面试评价,如果和内推人关系较好,一般能够给出面试官真实评价,在后续面试中能够重点加强。

  6. 安排入职事宜:面试成功后,一定要和内推人保持联系,约定实习或者正式入职时间,如果异地,还可以咨询租房等事宜。


2.2 笔试


目前大部分互联网大厂内推不免笔试,一定要重视笔试,注意以下:


  1. 笔试时间:大厂一般有多轮笔试,有的是任意选择一场,有的是可选多场,以成绩最高的为准。在笔试之前向内推人确认是哪一种,如果是第二种,建议每次都参加,多一次就多一个机会。如果是第一种,一定要有较高把握再参加。

  2. 笔试环境:大部分大厂是网上笔试,建议提前找到安静并且网络较好的环境,建议带上一只笔和多张纸,笔试过程中思路可以记下来。

  3. 笔试策略:大部分大厂有多道笔试题,一般从前往后难度依次增大,建议由易到难,如果有一道题没有思路,马上切换到下一道,最后如果有多余时间再切回。另外,如果较长时间没有想到最终解决方案,可以先通过暴力方式解决,一般也能通过20%-50%。


2.2 面试


大厂一般氛围多轮技术面和一轮HR面。


  1. 技术面:技术面主要评估候选人的技术能力,包括基础和项目,面试过程中注意自信展示自己,如果面试官询问的问题没有思路,可以引导到擅长的领域。比如面试官问道memcached问题,可以说我对memcache不是很了解,但是我知道另一个类似的缓存系统。切忌胡编乱造,如果实在回答不了并且也难以引导的,可以真诚回答这个问题不太清楚,面试结束之后会去做更深入了解。重点展示自己的基础和对技术的热情。

  2. HR面:HR面主要评估候选人意向和团队契合度,建议表现的积极向上,表达想要进来的强烈意愿。另外,HR面一般会做自我介绍,建议提前准备模板。


三、实习


3.1 入职


拿到实习意向书后,一定要评估自己最想去的公司,一定要将团队氛围纳入考虑,笔者团队氛围很好,实习的三个月非常开心,但笔者身边一些同学进入了某些公司团队氛围较差的组,每天都能听到吐槽。如果确认无法实习,尽早通知HR或者主管。入职前可以向内推人或者主管寻求帮助,提前找到住宿,并提前沟通入职时间以便安排体检和入职流程。笔者由于实习地点和学校相隔较远,提前了半个月租房。租房建议到校内论坛、牛客等找到同时入职的实习生,一起找房子。


3.2 培训


入职之后,部分大厂会有针对实习生的夏令营或者培训。笔者当时入职蚂蚁,到杭州参加了为期一周的2019年夏令营,在其中认识了很多小伙伴,也对公司情况、相关技术栈有了初步了解。


部分部门也会有针对新同学的培训,笔者部门在19年笔者入职后安排了P7的师兄手把手带,并且每周举办技术沙龙邀请高年级师兄分享自己熟悉的模块,并给新同学答疑。在这种高强度培训下,笔者很快就对整个系统以及上下游有了初步认识。强烈建议学弟学妹在入职之前询问有哪些培训一个完善的培训机制能够帮助新同学很快融入团队。


3.3 项目


培训之后一般主管或者师兄师姐会安排实战项目,部分部门会根据新人学习情况安排,笔者师兄当时根据笔者对系统的了解情况先是安排了一个较小的需求,完成之后询问笔者意见和离职时间,安排了一个有一定难度的技改项目。在做项目过程中,一定要随时和师兄保持沟通,遇到问题及时询问。尽量参与一个完整项目,从需求沟通到系分到开发到上线,完整的项目能够极大帮助了解公司技术栈和推动成长,这也是以后写在简历上的重要加分项。笔者师兄当时给了一个有一定难度的完整需求,笔者从头跟到尾,非常有成就感,最终在秋招面试的时候得到了几乎所有面试官的认可。


3.4 转正


大部分大厂的春招实习生有转正机会,在入职之前一定要确认是否有转正机会以及以往转正比例,如果确定不能转正尽早准备秋招。同一个公司不同组转正情况也不尽相同,笔者所在组近几年校招实习生均全部转正,但是同一栋楼部分组校招只能转正1/3,阿里系转正面试一般是同部门P9面试一轮、跨部门面试一轮。根据笔者经验能否转正一般受到以下因素影响:


  1. 部门HC是否充足,有的部门招实习生过多,校招HC不足,必然一部分实习生无法转正。

  2. 安排的项目是否适合,笔者实习时师兄安排了有一定难度但是又能够按时完成的项目,转正答辩时有一定的结果可以讲,部分部门安排新人打杂,到转正答辩时候很难有亮点。

  3. 辅导是否到位,笔者在转正之前主管安排全组高年级同学进行了三场预答辩,组内其他同事帮助我发掘了项目中的亮点,并且对叙述方式,回答问题方式也做了预演,因此在实际转正面试时笔者能够毫不怯场。


四、秋招


笔者由于很早就拿到了转正offer,秋招基本上没啥参与感。在实习结束转正offer未正式下的8月底9月初面试了腾讯、头条、拼多多,均拿到了offer,这很感谢在蚂蚁的实习经历,互联网大厂基本上都能够认可,并且由于春招实习时大部分公司拿到了offer,秋招能够直接进入终面,明显感觉秋招压力较小,所以笔者建议大家一定要春招面试实习,就算不能实习,大部分公司都能够给直通卡,极大降低秋招难度。


笔者秋招在9月初蚂蚁给了正式转正offer后就完全告一段落了,最终选择蚂蚁很大程度上还是这段实习经历让我感受到我们部门氛围较好,就像是当时一起实习的一个同学说的,实习至少能知道这个地方是不是坑,如果不是留下了就比较平稳,如果是就当是排除了一个错误答案。


五、入职


笔者去年7月正式入职,到现在也大半年了,现在也还是把自己定位为一个学习者。部门业务较多,盘子很大,感觉自己还要更多的学习。对于正式入职,笔者主要有以下建议:

1.利用培训资源:大厂一般有较长时间的培训,笔者入职的蚂蚁有一个月青年近卫军培训和半个月的百阿培训,在青年近卫军培训中,继续学习了蚂蚁的大部分中间件和相关原理,也认识了很多一起入职的小伙伴,笔者认为对于校招新人的技术培训是非常有必要的,能够帮助新同学快速进入项目。笔者所在部门也有针对新人的业务培训,笔者入职后每周有高年级同学分享部门的系统和业务,持续了两个月时间,通过这些培训很快能够了解部门的业务和系统。

2. 积极主动:大部分大厂都有传帮带,蚂蚁这本会给校招新同学配置师兄,我的师兄比较乐于回答新同学问题,基本上有问必答,建议多多向师兄或者其他同学请教。


六、笔者部门2022届实习招聘开始啦~~


蚂蚁集团-金融核心-资金运营技术部实习生招聘!资金运营技术部和我们的业务团队:财务融资部一起,致力于为数字业务持续高速发展保驾护航,做“公司商业利益的守护者、财务价值创造者”。我们身处于丰富多元化业务、国际化、业财海量数据之中,蚂蚁集团的财务运营面临着前所未有的挑战与机遇。为了实现”财务运营在线化、财务资产数字化、财务产品智能化“,资金运营技术部在“业财关联、财务计量、财务结算、财务核算、税务遵从、财资管理、财务内控、经营分析、报告披露”等领域与CFO业务小二一起并肩作战,使命必达。


在这里你可以接触蚂蚁核心业务及技术,这里有海量的数据和极具挑战的业务场景,需要你运用数据、技术、算法等能力,通过自己的力量为世界带来微小的改变,期待志同道合的同学加入!

【职位方向】

研发工程师Java

【工作地点】

成都、杭州

【投递方式】

请备注“姓名+学校+手机号+岗位”发送到mochen.ht@antgroup.com,简历合适会有对应面试官直接与您联系。

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存