文章目录

  • 一、背景
  • 二、决定性因素
    • 2.1 简历
    • 2.2 基础
    • 2.3 项目
    • 2.4 面经
    • 2.5 心态
  • 参考文献
  • 鸣谢

一、背景

  简单介绍下,渣985本硕软件工程,2次实习经历(半年互联网、半年外企),一个省级重点科研项目。
  附上自己的蚂蚁金服面经链接:)

二、决定性因素

  第二章就介绍下个人觉得是决定面试的几大因素,可能有点啰嗦,但是想着哪怕能帮到学弟学妹们一点点,也算是值了。

2.1 简历

虽是老生常谈,但是我讲的更好

  首先,先了解概念——“S.T.A.R法则”,指的是介绍任何项目或者实习的黄金法则,即按照“背景、任务、行动和结果”线性的介绍经历。
  我举个例子来介绍具体怎么做,以下是一个项目的介绍修改前/后的对比:

  你能够很明显的看出来,修改后的文段明显要清晰明了得多。修改前的项目介绍仅仅介绍了“背景与任务”,然而面试官恰恰看的是“你做了什么”和“你起什么作用”,分别对应修改后文段的“行动”和“结果”部分。
  接下来,我再举一个例子,很完美的诠释了如何用S.T.A.R法则编写简历[1]:
  一个好的简历,一定是突出了“自己做了什么”以及“有什么结果”,一定地弱化“背景”和“任务”。
  其次,就是简历的模板,答应我别用Word了好么?实习僧、MarkDown和五百丁这些都能做出排版很好看,编辑很方便的简历,作为一个技术人,还是讲究讲究(当然,你还是可以穿格子衫)。
  最后,简历是人生经历的文字版,请花费大量时间精雕细琢,功在一时,利在千秋!

2.2 基础

基础不是框架,不是架构,不是怎么用,而是为什么

  很多人都知道校招讲究的是“基础”,但是又不知道什么是基础,忙着看太过庞大的,太过宏观的知识体系,比如 Spring 的注解怎么用,怎么配置,怎么集成其他组件,再如各种高并发架构的搭建,打住!其实校招考查的是基础,会考的是:Spring 注解为什么起作用,Spring 是怎样完成 IOC 的;以及基于你简历的项目,如何完成更高并发量的优化这些等等。一定要注意的是“为什么”!
  首先,还是背书式的讲讲所谓的“基础”覆盖的范围吧。

序号 领域 内容
计算机基础 计算机网络,计算机组成原理,计算机操作系统,数据结构与算法
Java基础 Java关键字,Collection集合类,Executor线程池,Java并发编程,Java内存模型,JVM
框架基础 Spring AOP,Spring IOC,Spring 注解,Spring 事务
ORM基础 MyBatis,Hibernate
数据库基础 MySQL,Redis
其他 设计模式,Maven,Git

  接着还是分门别类的说下各领域的考察点吧,说的太多又繁琐,只说说我个人认为非常重要的点吧。
  ①计算机基础中,计网是肯定会考TCP握手/挥手,但是OSPF、BGP这些协议知识也要了解。计组在阿里面试中考察很少,只想到了进程与线程的区别。计操这块说白了就是考察Linux使用与底层原理,比如把修改过的文件刷到硬盘的过程。数据结构与算法是每个厂都会考察的重点,剑指Offer(Java版)、力扣Top 100多刷几遍自然就会了,目前这块没有任何捷径,入门后就是刷题,忘了由刷,刷了又忘,只能这样了 o(╥﹏╥)o
  ②Java基础,这一块覆盖太多太多了,我尽量说。Java语言本身就是博大精深,个人是拜读过《Thinking in Java》才入门的,这本书是入门Java的不二选择。Collection集合类是一定会考察的,很经典的考察思路就是:List⇒HashMap(index/put/resize)⇒ConcurrentHashMap ,所以一定要结合到博客解析去看源码。Executor线程池主要是运行原理,配置参数和默认实现。Java并发编程讲的是线程的分工、同步和互斥,按照这三大脉路来复习,看源码基本上看到AQS的深度就足够了,如下图:

Java内存模型中,仅仅线程共享/私有区布局大家都记得住,经典的考察思路就是:JMM布局⇒Java虚拟机栈⇒局部变量表;还有,JDK版本迭代导致的方法区消失和元空间出现具体有什么影响,字符串常量池到底去了哪;另外,Java内存模式就是为了解决并发编程才设计出来的,结合volatile、synchronized、final以及6项Happens-Before原则去理解。JVM考察的重点是垃圾回收器和调优操作,一定要深度理解CMS和G1回收器;JVM调优要记得回收器的主要参数(初始大小、E/S区比例),哪怕你没有遇见过OOM也要假装遇见过,而且一顿操作排查出来了。
  ③框架基础中,由于Spring的知识太多太广,最好是找以前的面经来引导自己的学习路线。Spring AOP几乎必考,熟悉基本概念(特别是Join Point和PointCut区分),使用场景,底层原理,考察思路如:AOP概念⇒AOP的实现方法⇒Spring AOP实现原理⇒CGLib和JDK区别。Spring IOC也是几乎必考,IOC的装配(源码级别),解决循环依赖(源码级别)。Spring 注解指的是常规使用注解作用,底层由哪些注解组成,基本不会问怎么用。Spring 事务考察@Transactional传播级别,实现原理(怎么动态代理),怎么失效的。
  ④ORM基础中,MyBatis的底层实现,特别是一、二级缓存以及如何动态代理DAO与XML配置。Hibernate的工作原理、一、二、三级缓存和事务机制。
  ⑤数据库基础中,MySQL只会考察Innodb和MyISAM引擎,其他的引擎不用了解太多,基本上要清楚各类CURD是在B+树叶节点什么范围加的什么样的锁。Redis的5种数据类型的底层实现,还有对应的大概应用场景,比如zset怎么做简单限流器和排行榜统计;另外涉及到分布式的一致性Hash算法和虚拟Hash slot。
  ⑥其他中,设计模式几乎必考,由于太多底层源码凸显了设计模式,所以尽量结合实际源码去理解设计模式,死记硬背是背不住的。Maven是绝大部分J2EE项目不可缺少的依赖管理工具,基本的POM配置是必须要了解的,不要只会复制粘贴Dependency,还有生命周期、坐标等概念理应有个全面的理解。Git是工作必会技能,不只是要会简单的commit,还要深度理解rebase、reset/revert等“救命”命令的使用场景。

2.3 项目

分别给无/有项目的人介绍下如何在项目上做准备。

  对于很多本科的同学,无法接触到实验室,或者学校给不了很好的练习平台,很可能大学几年没有任何项目经验,我很能理解。但是,虽然现实是残酷的,互联网是开放的啊,如今网上有很多开源项目,避开那种大过庞大的项目(如hsweb 3.0这种企业级基础框架),用一些小项目入手(如webporter 这种小爬虫框架),毕竟没有接触过成熟的项目。除了开源项目,很多J2EE入门开发网课也有小Project,网课是我个人觉得最具性价比的入门方式,拥有成熟经验的工程师拖着小白走过自己走过的路,岂不是事半功倍嘛!以网课小Project为基石,最后去逐渐接触成熟的开源Project,再转化为“自己的”项目,也挺好。
  另外,最好不要写某某某电商平台项目,这是个神坑,甚至可以把好几年工作经验的老前辈问懵逼,涉及到很多分布式的问题:流量削峰、熔断/降级、支付结算、超卖、库存扣减、SSO、幂等性等等等等问题,除非你真的经历过,并且有十足的把握让面试官喊666。
  对于有项目经验的同学来说,第一步就是要把项目实践经历按照“S.T.A.R原则”好好的写在简历上,逐字逐句精雕细琢。第二步就该考虑面试中项目考查点,以技术栈为脉络,思考考官会提出问题的可能点,比如你写了Redis(如上图):为什么用Redis,你怎样用Redis缓存图片的,是否做过做过Redis前后压测性能对比?第三步就是项目优化,如果并发量更多的情况下,你将如何优化项目,比如你写了MySQL(如上图):怎样利用MyCat分布式数据库中间件从单机模式过渡到主从分离?

2.4 面经

特别重要!!!既是面试题库,更是练习题库,平时就要用起来。

  很多人觉得面经就是要面试之前看看,临时抱的佛jio而已,或者“点击收藏”一气呵成,“等等”再看。其实不是这样的,我个人对面经的定义是:面经首先是题库,它让你知道面试会问些什么,问题覆盖的内容大体有哪些,覆盖的深度在什么层次,面经其次是练习题,它让你在规划准备初期就可以了解明确的复习方向,它测试你自己复习的知识会不会在面试中考到,它能够模拟面试中如何组织语言与引申额外知识点。所以,不要总是在最后才看面经。
  十分推荐大家去牛客网搜索自己需要的面经,这个网站还可以按照自己定义的标签收藏,特别方便标记和整理面经。

  最后,希望大家能够回馈自己的面经,帮助到更多的学弟学妹们,让圈子的开源与分享精神传承下去。

2.5 心态

  面试前,请提前4-6个月准备招聘,而且最好是把招聘和考研放在同一个战略层次,这是一场没有硝烟的持久战,你看到那些拿大厂Offer的都准备了很久很久,不可能随时都记得这么细的知识。
  面试中,①一定不要死背面经,尽量说出引申出自己的理解或者额外知识点,如:synchronized和Lock的区别?不难,但是我会给面试官说“还有一层理解是Lock破坏了死锁的‘不可抢占’条件,而synchronized不能,这才是最大的区别”;再如,说到ReentrantLock的时候,你把AQS及其底层实现引申出来,绝对加分项 。②不要患得患失,影响了发挥,你认真准备了,问心要无愧,本来面试也需要运气,决定权不在你手里;如果你只是碰运气去面试,没过也理所当然。
  面试后,一定要复盘面试过程,下次才会答得更好,不要觉得羞耻或者逃避痛苦,反正是自己偷偷摸摸的复盘(滑稽脸)。

参考文献

[1] 应届生如何写好技术简历-牛客网-Samray

鸣谢

  感谢远在杭州蚂蚁的潘师兄的指导,从最开始帮着改简历,到介绍情况,帮忙找他以前的老板内推,再到面试的时候各种安慰我脆弱的心灵哈哈。我一定会把我们实验室的这种优良传统传承下去,能在实验室里面遇到师兄和导师是我人生的大福气!
  感谢室友王二狗的审稿建议,读研这两年遇到你就多了很多人生乐趣啊,快哉快哉!

蚂蚁金服Java研发暑期实习的经验总结(已收到Offer)相关推荐

  1. 蚂蚁金服java研发内推电话面

    1.说一个最熟悉的排序算法,思想,复杂度. 2.计算机网络,tcp连接工作流程.三次握手. 3.服务器有很多连接,要查看当前连接我们服务器的连接的连接状态,怎样查.当前服务器有多少连接,这些连接是什么 ...

  2. 蚂蚁金服java研发岗二面:Redis内存满了该怎么办了

    原文作者来源于非科班的科班 ,作者黎杜 概述 「三大缓存问题」只是Redis的其中的一小部分的知识点,想要深入学习Redis还要学习比较多的知识点. 那么今天就带来了一个面试常问的一个问题:「假如你的 ...

  3. 拼多多、饿了么、蚂蚁金服Java面试题大集

    自己当初找工作时参加过众多一线互联网公司的Java研发面试,这段时间处于寒冬,然而前几天跳槽找工作,两天面了3家,已经拿了两个offer,觉得可以和大家分享下: 下面为拼多多.饿了么.蚂蚁金服.哈啰出 ...

  4. java内存shell_2019蚂蚁金服Java后端三面,详述程序员必须掌握的架构底层原理

    前面的话 告别了2018 ,也早已正式进入2019 面试一直都是大家关注的热门话题,俗话说"金三银四",如今已经是三月份了,如果你打算在年后跳槽,那么是时候该着手准备了 很多Jav ...

  5. 蚂蚁金服自主研发的三地五中心异地多活解决方案获金融科技创新大奖

    小蚂蚁说: 2018年9月20日,在杭州云栖蚂蚁金服 ATEC 科技大会主论坛上,蚂蚁金服副CTO胡喜正式宣布,蚂蚁金服的金融科技正式全面开放,为行业提供完整的数字金融解决方案.包括支付宝自主研发的容 ...

  6. 蚂蚁金服—JAVA实现全排列

    分享一道蚂蚁金服JAVA实现全排列的代码 在这里插入代码片 package com.lyz.dataStructure.LeetCode;import java.util.List; import j ...

  7. 大牛分享,献出这份年薪68W的蚂蚁金服Java高级开发封神宝典!

    超级大牛经验分享,献出这份年薪68W的蚂蚁金服Java高级开发封神宝典! 干货奉上,不喜勿喷: 一.源码阅读 1.常用设计模式 2.Spring 5 源码 3.MyBatis源码 二.分布式架构总纲 ...

  8. 阿里、腾讯、蚂蚁金服Java技术面试及经验总结(文末分享答案)

    在过去很长一段时间内,国内互联网一直处于三足鼎立状态,BAT即百度.阿里巴巴.腾讯.而在最新的互联网企业价值榜上,百度却被蚂蚁金服挤出前三的位置. 能够进一线互联网公司,是大部分程序员奋斗的目标,有很 ...

  9. 2019社招阿里、腾讯、蚂蚁金服Java面试真题

    在过去很长一段时间内,国内互联网一直处于三足鼎立状态,BAT即百度.阿里巴巴.腾讯.而在最新的互联网企业价值榜上,百度却被蚂蚁金服挤出前三的位置. 能够进一线互联网公司,是大部分程序员奋斗的目标,有很 ...

最新文章

  1. Rxjava Demo
  2. 《手把手教你学C语言》学习笔记(1)---C语言的特点
  3. Visual Studio 32位64位的问题和如何编译32位64位工程的问题
  4. 高效率去掉js数组中重复项
  5. 将ONNX对象检测模型转换为iOS Core ML(一)
  6. 使用glob()查找文件
  7. 北京住房仰视链,你在第几层?
  8. oracle数据库之间数据同步
  9. 如何持续突破性能表现? | DX研发模式
  10. 利用计算机的随机模拟结果帮助学生,数学《教学反思》 初中白小曼
  11. 计算机六级准考证,99宿舍如何查询英语六级准考证号
  12. 可信安全网络 —— 安全左移之DDoS对抗
  13. centos7搭建http代理ip TinyProxy 及验证是否有效(python)
  14. 存储篇- 存储基础知识概览
  15. 森林大火matlab模拟论文,基于MATLAB的森林防火决策支持系统 - 仿真分析部分
  16. Max-Product Loopy Belief Propagation
  17. python爬虫模块排名_Python爬虫使用lxml模块爬取豆瓣读书排行榜并分析
  18. ffmpeg mplayer x264 代码重点详解 详细分析
  19. CPI PPI M2
  20. 【密码专栏】动手计算双线性对(下)

热门文章

  1. Linux下搭建Cortex-M嵌入式开发环境
  2. 甲骨文服务器保活脚本(Oracle keep alive)
  3. 【电子产品】联想ku0989 启用Fn键或屏蔽Fn键
  4. [工作效率提升]焦虑性失眠的应对方法
  5. Jmeter:使用代理录制安卓手机APP性能测试脚本
  6. SOME/IP开源库Vsomeip E2E保护实现分析
  7. UE风格化Day6-SD瓦片材质
  8. python3 卡拉兹(Callatz)猜想
  9. Java中所有类的祖先——Object类
  10. matlab三维图与二维图画在一起,matlab 画二维图与三维图