一名十年Java程序员回忆阿里面试经历——揭开阿里面试的“遮羞布”
阿里面试经历
去阿里面试可以说非常非常的偶然和戏剧性,因为本人根本没投简历,以至于阿里hr给我电话的时候我一度认为是诈骗电话。因为深圳这家公司不错我还想在这里干个两年左右再考虑考虑。
这个时候的本人已经发生了很大的转变,从刚进腾讯的浮躁、自大、惧怕面试,已经转变为淡泊、谦虚,并且喜欢上了面试,感觉每次面试就像杨过跟大雕过招一样,武功都能精进不少。本着去看看技术面内容的心态去了福田东海大厦。
一面
一面没有技术面直接就是组长面,首先是自我介绍,之后问了下项目内容。我就说了下即时通讯和视频加工两个模块。他让我画出模块的架构图,这个建议大家准备一下,阿里和百度都有要求应聘者画模块图考察应聘者的开发层次和思路。本人没什么准备,不过当时设计评审时的UML还记着,就把模块图和类图画了下。
面试官又问,有没有遇到困难;我说有,性能瓶颈、卡顿的问题、瞬时信息量过大导致的UI卡死;他就问如何解决的:我说由实时刷新改为定时刷新。他问还有没有更好的实现方式,我回答有用任务队列。
我们又争论了下任务队列的设计应该用先进先出还是后进先出。这个时候本人已经完全忘记是来面试的了,只想争赢。语速也越来越快、声音也越来越大。他质疑我这个机制在效率调优上没有意义,因为系统会进行cell缓存;我说在中间的时候系统缓存可以生效,在最底部的时候就失效了,就会卡顿。最后还是我争赢了,时间就这么不知不觉中过了一个小时。
问通讯消息腾讯是如何做的,我说不知道我猜测是这么做的巴拉巴拉。问了下我滤镜的使用和原理,如何美白,我说修改OpenGL的值就可以了,问如何进行视频合成,这个很简单就是把视频和音频轨道抽出来再用composition合成就可以了。问了下加水印、也是从文件中把视频轨道layer抽出再把图片layer加在这个layer上就可以了。
把开始时间和持续时间、帧率设置好就ok了。又问了下为什么来面试,本人说没想过换档,是你们叫我来面试的。一面官最后问了下,考不考虑杭州,本人非常坚决的说不考虑。他又说其他城市考虑吗,本人说吉林就考虑。
二面
一面结束让我去休息之后是二面,二面的面试官很nice。让我做自我介绍之前竟然先做了自我介绍。他负责的部门是个很核心的部门。
面试的内容跟一面差不多。让我在白板上画我设计的系统架构图之后就是讲解。问了下我的职业规划,我说现阶段还是想写代码。他问多久,我说2年吧。他有问你对管理岗位怎么看,我说一个好的管理首先要能帮助组员解决问题,我现在水平还达不到这个境界,想多写点代码,代码量上去后设计能更合理一些,像这个设计当时有几个优化点没考虑到,有点遗憾。面试官问我有什么问题之后我就询问了下他们部门的情况和企业文化。面试官好像比较满意,就让我去hr面,还特别强调就是跟hr聊聊不算面试。
hr面过程不表,就是问了下杭州房价问题。问我能不能来杭州发展,我说我考虑下,还不知道你们会不会录用。闲扯了半个小时,就打道回府了。3天后收到阿里的offer通知介绍。给的薪水又一次超过了本人的心理预期,还有本人一直梦寐以求的期权。实在是没法拒绝。
阿里的面试跟腾讯百度都不同,感觉更注重项目实践一些。总结来说BAT的技术面都差不多。只要把内功和外功都修炼好了再配合点实战经验基本上都可以应付三大的面试了。
面试的核心流程都是:
技术一面、技术二面(组长面)、总监面、hr面。腾讯会多一个经理面。但是一般总监认为可行的人,9成的应聘者都会通过经理面的,除非发现严重的撒谎行为。hr面就是走过场,刷人的机率基本上为零。以前招聘过一个同学,hr想刷掉,理由是没有大公司经验,被我们组长一顿叼,说这个人各方面都很适合又踏实,如果你们觉得这个不行你们就要负责招一个你们认为行的,否则我们工作做不下去了,hr就软了。后来事实证明,这个同事工作完成的相当好,人的能力跟公司大小没关系。最难的就是二三面,人也基本上是这两面中刷下去的,大家一定要小心。我个人的经验来看,总监越严肃通过的机率越大,越客气就越危险。
面试准确讲不应该叫面试应该叫面谈,就是interview。劳资双方坐下来谈谈聊聊,互相了解。我们程序员作为技术工作者不是去求职的,只是去看看你的机会,你可以保留你的职位,我保留我的做事方法。java学习群669823128
关于Java行业前景
据不完全统计,截至目前(2017.07)为止,中国Java程序员的数量已经超过了100万。而且,随着IT培训业的持续发展和大量的应届毕业生进入社会,Java程序员面临的竞争压力越来越大。那么,作为一名Java程序员,怎样努力才能快速成长为一名高级的程序员或者架构师,或者说一名优秀的高级工程师或架构师应该有怎样的技术知识体系,这不仅是一个刚刚踏入职场的初级程序员,也是工作三五年之后开始迷茫的老程序员,都必须要面对和想明白的问题。为了帮助大家少走弯路,我总结出一个Java程序员的工作2-5年成长路线图。





很多问题其实答案很简单,但是背后的思考和逻辑不简单,要做到知其然还要知其所以然。如果想学习Java工程化、高性能及分布式、深入浅出。
java学习群669823128
一名十年Java程序员回忆阿里面试经历——揭开阿里面试的“遮羞布”的更多相关文章
- 成为一名优秀的Java程序员9+难以置信的公式
成为一名优秀的Java程序员 成为一名优秀的Java程序员并不重要,但是首先您应该了解基本的编程语言. 好吧,你知道那太好了.我们应该一步一步地精通Java编程,并应遵循所有说明,改进Java的编程逻 ...
- 想要成为一名优秀的Java程序员,你需要这8个锦囊
私底下,隔三差五就有读者问我:"二哥,怎么样才能像你一样,成为一名优秀的 Java 开发者呢?"假如把"怎么才能像你一样"去掉的话,这个问题就是一个好问题,否则 ...
- 一个十年java程序员的心得
展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告 走过的路,回忆起来是那么曲折,把自己的一些心得体会分享给程序员兄弟姐妹们,虽然时代在变化,但是很可能你也会走我已经做过的1 ...
- 十年Java程序员-带你走进Java虚拟机-类加载机制
类的生命周期 1.加载 将.class文件从磁盘读到内存 2.连接 2.1 验证 验证字节码文件的正确性 2.2 准备 给类的静态变量分配内存,并赋予默认值 2.3 解析 类装载器装入类所引用的其它所 ...
- 一名合格的JAVA程序员需要点亮那些技能树?
这是从450家企业的招聘信息中统计而来,相对来说还是比较真实的,虽然有些公司的招聘要求万年不变,但还是可以大致反应企业的招聘要求的. 尽管Struts2漏洞频出,但是由于政府.银行以及传统企业遗留项目 ...
- Kafka对Java程序员有多重要?连阿里都再用它处理亿万级数据统计
一.了解淘宝Kafka架构 在ActiveMQ.RabbitMQ.RocketMQ.Kafka消息中间件之间,我们为什么要选择Kafka?下面详细介绍一下,2012年9月份我在支付宝做余额宝研发,20 ...
- 作为一名合格的JAVA程序员需要点亮那些技能树?
以下是出现次数超过100的一些技能,大家可以做一个参考. Spring 299 MySQL 290 JavaScript 216Linux 165J2EE 151设计模式 148Struts2 138 ...
- 优秀Java程序员的四大忌,你避免了吗?
做为一名优秀的程序员需要具备永不放弃的精神,如果一个程序员不具备这种永不放弃的精神,那么这个程序员只能算是一名假程序员.而通往成功的道路上往往是不平坦的,想要成为一个合格的高级Java程序员,需要规避 ...
- 你想成为优秀的Java程序员吗?
Java是全世界最受欢迎的3大编程语言之一,它可以开发出许多实用的WEB应用程序和桌面应用程序,更重要的一点,Java是跨平台的语言——编写一次,可以再任何地方运行.另外,Java也很容易入门,如果你 ...
随机推荐
- 如何打开linux内核中dev_dbg的开关
比如要打开某个驱动中的dev_dbg,那么需要在驱动文件.c中这些行"<linux/device.h>"或者"<linux /platfom_devic ...
- myEclipse项目转成Eclipse项目
这里说一种把myEclipse项目转成Eclipse项目继续开发 1. 请首先确保你的eclipse是javaee版本的,或者已经安装看wtp插件 2. 然后修改eclipse工程下的.proje ...
- JAVA基础补漏--链表
查询慢:链表中数据不是连续的,每次查询元素,都得从头开始 增删快:链表结构,增加或删除一个数据,对链表的整体结构没有影响,所以快.
- mybatis中使用mysql的模糊查询字符串拼接(like)
方法一: <!-- 根据hid,hanme,grade,模糊查询医院信息--> 方法一: List<Hospital> getHospitalLike(@Param(" ...
- mybatis中的映射类型
- elasticsearch系列(三)库表理解
首先ES没有库和表的概念,只有index,type,document(详细术语可以看ES的系列一 http://www.cnblogs.com/ulysses-you/p/6736926.html), ...
- 数据结构实习 problem L 由二叉树的中序层序重建二叉树
由二叉树的中序层序重建二叉树 writer:pprp 用层序中序来重建二叉树 代码点这里 其实本质上与前序中序建立二叉树没有什么太大区别 大概思路: 递归解法,对当前层进行处理,通过层序遍历可以得到当 ...
- 自学Jav测试代码三 Math类 & Date & GregorianCalendar类
2017-08-23 20:30:08 writer: pprp package test; import java.util.Date; import java.util.*; public cla ...
- hibernate:inverse、cascade,一对多、多对多详解
1.到底在哪用cascade="..."? cascade属性并不是多对多关系一定要用的,有了它只是让我们在插入或删除对像时更方便一些,只要在cascade的源头上插入或是删除,所 ...
- angular $q的学习笔记转帖
http://blog.segmentfault.com/bornkiller/1190000000402555 angular $q的一个不错的学习笔记