5年Android咸鱼拿到阿里技术offer:谈谈大厂面试那些事

前言

晚上睡不着,想起了这些年发生的事情,一些经验和建议想和大家分享,塞翁失马,焉知非福。

先介绍一下我的个人情况吧,从事开发大概有近5年的时间,不是名牌大学毕业, 刚毕业时从事的是Java,后转Android,在公司也会充当面试官,薪资也不像行外人说的那种高的吓人,一直平平无奇,好像也没啥梦想和志气,勉强能还贷款和生活。

突然之间家里出了意外,急需用钱,那件事成了压死骆驼的最后一根稻草,一夜之间我好像醒悟了,想起多年前的自己还励志要进阿里大厂,再看看现在的自己,还真是有点可笑。

我告诉自己,我现在改变现状还不晚,我还年轻,从那以后我拼命学习提升,最后真的入职阿里,而事情发生到现在,也就一年的时间。

我自己也通过这一段时间对于阿里面试的经验的相关文章的总结和学习,更加了解阿里,了解阿里的人才观。在这些学长的经历中懂得了很多东西,明确了技术的努力方向。

其实我觉得收获最大的一点就是:功夫用在平时,纵观在大厂的面试中脱颖而出,咱不单单说阿里,拿到offer的童鞋们,他们大多有一个特点,就是技术和知识功底非常坚实,从他们的经历也可以看出,他们看得专业著作多对代码研究的多做项目实践的多对问题思考的多。正是他们平时的努力和勤奋,才使得他们能够真正理解面试的问题,可谓胸中“有料”

记得我的一个朋友跟我提及面试通过后,面试官主动和他说谢谢,我想面试官是因为和这位学长聊问题很痛快,所谓“棋逢对手,将遇良才”,当我们的技术研究境界足够和面试官对一个技术问题进行探讨时(不是回答),无论是面试官还是我们自己都如同炎热的夏天里喝一瓶冰镇的肥宅快乐水那样舒服。

基础坚实所以自信,底气足,所谓的“运气”当然也不会差。基础坚实,自信,再加上一些面试的准备,拿到offer应该不是难事。

那接下来就说说面试那些事儿!

面试题

  1. handle机制,异步通信机制
  2. message队列是有序的么,按照什么顺序排列
  3. 怎么创建message对象
  4. message有哪些方法
  5. 安全带手拉松撞击紧
  6. 安卓安全攻击
  7. Static关键字
  8. 内部类,静态内部类区别
  9. final修饰一个类,能否再调用这个类的set和get方法
  10. Java同步机制,两种锁的区别
  11. synchroized修饰静态类会发生什么

只记得部分

如何写简历

1:简历的内容

简历至少应该包含以下7个部分:

(1)基本信息:必填项有姓名,年龄,是否已婚,手机号,常用邮箱,目前所在地,工作经验。目前所在地关系到是进行电话,视频面试还是现场面试。选填项有博客,个人完整,github,英语读写听能力。

(2)应聘信息:应聘职位,求职地,职位和求职地都可以写多个。

(3)自我介绍:用事实介绍自己的亮点和擅长技能。

(4)教育背景:毕业院校,毕业时间。

(5)工作经验(由近至远):在哪些公司任职过,任职时间。好的公司会让面试官有好感。大学生的实习经验也算工作经验。

(6)项目经验(由近至远):写亮点项目,或最能体现自己技术能力的项目,不要把所有项目经验都写上,项目经验是可以引导面试官问问题的方向。

(7)获奖信息和证书:写最能体现自己能力的获奖信息,写多了也没用。证书比如CCNA,CCIE等。

2:自我介绍

自我介绍是简历中最重要的。自我介绍要用事实描述,不要用观点描述。

比如我有10年Android开发经验,这个是事实,我崇尚团队合作,学习能力强,这个是观点。事实可以证明,而观点很难,所以事实描述比观点描述更有说服力。

自我介绍主要是对自己经历的一个亮点总结,比如张三有十年的Android开发经验,其中有两年的Linux操作经验,两年的项目管理经验。张三有自己的个人技术博客XXX.com,经常翻译国内网文章并在XX网站发表,主导或参与XX开源项目。曾经在XX比赛中拿过三等奖。当然类似于学习能力很强的观点描述也可以写,但是要举例子,比如曾经在2周内学习完IOS,并开发了XX应用。

3: 简历的大小

简历至少要写两页。举个有趣的事例,我之前公司的同事在面试前筛选简历的办法是,10K以下的简历直接不看,10K的简历一般是一页左右,原因是他认为应聘这么重要的事情,连简历都不愿意好好写的人,估计能力也不行。

4:简历的格式

简历一定要美观和简洁,不要让面试官一眼看过去全是密密麻麻的字。

提供PDF或WORD版本的简历,不要提供txt,HTML,ppt格式的简历。

简历的标题。如果你是社招生,写姓名简历_XX经验_应聘XX岗位。如果你是应届生,写姓名+XX大学+应聘XX岗位。

我曾经见过最让我震撼的简历是用PPT写的,然后导出成PDF,看得出这个应聘者很用心在写简历。

5:建议

期望薪水不要写。因为薪水的计算很复杂,期望薪水是税前还是税后呢,是否包含年终奖呢,是否包含其他个人所得奖金呢。我的建议是根据面试状况最后再谈期望薪水。写上期望薪水万一薪水比面试官还高,面试官可能拿自己的能力来要求你。

不要频繁跳槽。每年换一次工作的求职者简历会不好看,面试官会认为他的职业规划想不清楚,招进来后可能很快又会跳槽。

如何准备面试

如果你收到某公司的面试邀请,那就应该开始准备面试,打一场有把握的仗。

需要准备几件事:

  • 自我介绍
  • 亮点技术或产品
  • 职业规划

这几件事情并不是临时抱佛脚就能完成的,而是要靠平时在工作中的积累,面试进更好的公司只是一个水到渠成的过程,能力到了自然就能进。

准备多久?当时带着强烈想进入阿里的动力,电面准备了几周,复面准备了一个多月。

1:自我介绍

大部分面试官一般都会让应聘者首先做个自我介绍,自我介绍回合是应聘者最主动的一个回合,因为在这个回合主要是应聘者说,面试官听,所以我认为这个回合非常重要,如果介绍的非常好,不仅可以为后面面试官提问做伏笔,还可以让面试官对你有好感。所以建议准备一个十分钟时长的介绍,我听过很多应聘者的自我介绍一分钟都不到。

自我介绍首先描述自己的基本情况,其次是描述自己的技术亮点,做过的亮点项目或产品。

如果没有做过有技术亮点的事,每天都在做增删改查功能或重复性的工作,需要好好反思下,这样下去技术上没有多少增长。

如果工作中就是做这个怎么办?可以考虑利用业余时间参与开源项目或自己做一些工具或框架。

2:介绍做过的产品

介绍产品时面试官会考察应聘者的沟通能力和思考能力

我们大部分情况都是做产品的一个功能或一个模块,但是即使是这样,自己有没有把整个系统架构或产品搞清楚,并能介绍清楚,为什么做这个系统?这个系统的价值是什么?这个系统有哪些功能?优缺点有哪些?如果让你重新设计这个系统你会如何设计?

3:技术面试

技术面试主要考察一个人的技术能力,沟通能力和学习能力。

不同的面试官的问题不一样,没有规律可循,所以首先在网上搜下该公司主要的面试题,必考的肯定是基础,好的面试官会考察你擅长的技术,看看你是否有很强的学习能力和技术能力。

有的面试官会问自己擅长的技术,这样对面试者的要求就更高,所以你要准备的更加充分,在技术的宽度上学习下。深度优先,广度次之。

4:HR面试

HR面试主要考察一个人的价值观,潜力和职业规划。所以进入这一关之前请想清楚几个问题。

为什么想加入这家公司?你需要了解下这家公司的文化和氛围。

为什么离开上一家公司?钱少,不能实现梦想,还是有哪些不爽的地方。如果是换工作为了实现梦想,那么你的梦想是什么。不爽的地方如果在新公司再遇到怎么处理。

你的职业规划是什么?

当你遇到瓶颈的时候你怎么办?

这些年你每年的成长是什么?怎么能体现你的进步?

如何才能进入大厂?

进入大厂有两种途径,校招和社招。下面我会分别介绍下校招和社招的流程和基本要求,最后分享几个面试小窍门。

1:校招的流程

一般提前一年就开始了,需要应届生留意下招聘官网和官方微博。校招是由集团统一管理的,所以各个事业部不能随时招聘应届生和实习生。选择内推。最好找靠谱的师兄和内部同事进行内部推荐,内推的好处是可以选择应聘部门,面试节奏也快点。

(1)校招的要求

一般大厂倾向于招聘TOP院校的TOP学生,并且专业对口,当然如果能力非常优秀也肯定能进来的。

能力上的要求有三点:

优秀的基础,很好的学习能力和有自己的作品

一般情况下,这三点满足两点就能通过面试。面试流程是简历筛选+电话初面+电话终面。

2:社招的流程

你几乎每时每刻都可以参加社招,只是有些部门可能有head count的限制,在那个时间点可能不能应聘该部门。

一般P6的社招面试流程是电话面试(异地两次)+现场初面+现场复面+HR面试,如果级别越高面试流程会越多,基本规律是每高一级多两个人面试。

(1)社招的要求

社招的要求也比较高,倾向于招年轻的最优秀的人才。最基本的要求是能够独挡一面,来了就干活,不需要太多培训成本。

为什么要年轻?年轻意味着有激情,不安于现状,会尝试影响周围的人,而且激情是企业的价值观。

为什么招聘最优秀的人?乔布斯说在软件行业优秀的人和普通的人能力上差距可能是两百倍,传统企业没有那么大差距。所以大厂的招聘原则是越优秀越好,可要可不要的不要。有激情的优秀人才会创造无限大的价值。

(2)社招技术面试要求

我是技术人员,所以我只能说阿里对技术人员的要求。技术人员要懂技术原理,有技术亮点和超强的学习能力。

懂技术原理,就是要对自己用过的技术做到知其然知其所以然,比如用过JVM,要知道他的优缺点,GC的实现原理。

技术亮点,不是招聘每天都在做添加,删除,修改功能的工程师,因为没有技术含量,要招聘能从工作中找到技术点并执行的人,比如做一个框架提高大家开发效率。超强的学习能力,在阿里工作接触到的技术点非常多,学习能力代表你未来的高度。

很多人因为不清楚大厂要招聘什么样的人,所以即使在自己公司优秀的人,也是经历了多次面试失败才最终应聘上大厂,我当初就面试失败过两次。

一般本科毕业最快三年工作经验能达到P6水平,也是阿里目前社招技术人员最低级别要求。

3:面试小窍门

(1)社招选择年底应聘。年底跳槽的人少,各部门的head count必须用完,所以要求可能会相对低些。所以年底相对于年初和年中比较容易入职。

(2)做好面试准备。面试前准备一个自己做的最能体现技术能力的事或项目。了解企业价值观和应聘部门的业务。

(3)利用初面通过复面。在初面快结束时,面试官出于礼貌会问你有什么想问我的吗?这个时候很多人都不问或者问不关键的问题。

我建议询问面试官自己的不足,针对这些不足如何提高,以及自己最得意的项目有哪些不足,如何改进,拿着这些建议和准备去参加复面会更容易通过。

(4)准备好了再投简历。不要乱投简历,我看有的人都有30次投递。因为面试不过你的面试记录会记录下来。如果有很差的评价,以后简历很容易评估不过,都不能进入电话面试。

(5)选择内部推荐。自己投简历可能进入公海,可能不会被人发现。

最后有话有说

我觉得对于我们这样的软件技术人员而言,面试其实就是一场考试。

你可以选择面试的方向(数据还是算法),从而决定面试的内容,你要努力学习,但是并不单单只是为了这场“考试”,技术学到了就是你的,你所学习的东西决定了你未来的高度。

当然这场“考试”也不是不重要,它决定了你能不能进入大厂的大门,它其实也是对你学习技术的一个客观评价。

当然,所谓“面经”就是“考试技巧”它会影响你“考试”的发挥。但是决定你通过与否的还是你的“真功夫”!

有一句话希望与大家共勉:

学习(无论是知识还是技术)都要做到“博观而约取,厚积而薄发”,互联网技术日新月异,没有人能都学会,但是我们可以做一个“窝头”,既有技术宽度也有研究深度,当我们默默积蓄了足够的力量,建立了足够坚实的技术基础,那么相比成功通过面试拿到像阿里这样的互联网公司的技术offer就是水到渠成的事情了。

为此,我分享一份大佬收录整理的Android学习PDF+架构视频+源码笔记高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料

这些都是我现在闲暇还会反复翻阅的精品资料。里面对近几年的大厂面试高频知识点都有详细的讲解。相信可以有效的帮助大家掌握知识、理解原理。

当然你也可以拿去查漏补缺,提升自身的竞争力。

相信它会给大家带来很多收获。如果你有需要的话,可以点击获取

如果你觉得自己学习效率低,缺乏正确的指导,可以加入资源丰富,学习氛围浓厚的技术圈一起学习交流吧!

喜欢本文的话,不妨顺手给我点个赞、评论区留言或者转发支持一下呗~

猜你喜欢

转载自blog.csdn.net/ajsliu1233/article/details/108580409