2020Android最新大厂面试真题总结:Flutter+NDK+性能优化+源码解析+开源框架+高级UI等

1、写在前面

本人目前就读于华南理工软件工程专业大四,2019年春季招聘拿了腾讯、CVTE、华为、YY等公司的实习offer,从2019年7月起在腾讯深圳实习,已拿到转正offer,2019秋季应届生招聘只投了阿里和华为两家公司,运气较好,有幸都拿到了offer,秋招也暂时告一段落。除了面经,想写一写学习和招聘的个人经验总结。学习和招聘都是和个人思维强相关的东西,我的经验也不一定对,我只是综合我个人以及周围相关同学的经验、踩过的坑,给后面的学弟学妹们一些启发。

2、正文

首先,我的相关经验仅限于技术/开发类招聘,产品、策划等方向我并不了解,不过我在腾讯和招聘过程中也认识了不少相关方向的小伙伴,如果有相关需求的同学也可以找我咨询他们的联系方式。

回到正题,招聘相关的经验,我准备从时间点、准备、方向和面试经验四个方面来说。

2.1、时间点

技术/开发类的招聘,对于本科生而言,需要重点关注两个时间点:实习生春季招聘和应届生秋季招聘,也就是大三下学期的那一年的3月开始(如我是2016届入学,也就是2019年3月左右开始的)的春季招聘,主要面向实习生招聘,实习时间一般为7—11月;和那一年9月开始的秋季招聘,主要面向应届生招聘,入职时间也就是毕业之后。这个3月、9月都不是精确地概念,只是集中在那个时间段。

这两个时间点对于招聘是相当重要的,因为这两个时间点,不论大、小公司都会集中进行招聘相关的工作,如果错过了这两个时间点,后面都会很困难,也就是说如果你想在招聘过程中顺利的找到心仪的工作,提前准备是必不可少的,特别是4月和9月都是招聘的高峰期,如果你在这两个高峰期没有准备充分,可能在面试中就不能发挥出自己的实力,错过很多进入大公司的机会。

对于春季招聘,我的建议是2月份左右开始规划和准备(我这里讲的准备是对以往的知识进行梳理和复习,并不是指2月份才开始学习);对于秋季招聘,这个要看你个人的规划,一般在实习期间也可以进行适当的准备和复习,特别是对于实习不满意或者没有转正的同学,在实习期间复习也是必不可少的。

除了这两个时间点,也会有一些公司有补招、散招,不过还是抓住正式招聘比较有优势,特别是大家一起准备的话,效果会更好。另外,实习和秋招的机会都要好好把握,特别是实习的机会比较重要,找到一个好的实习可以为秋招的简历增色不少(特别是bat实习的转正率都会很高,可以避免秋招更激烈的竞争),如果对自己的基础知识不自信的同学,一定要提前准备,努力了都会有一个让自己满意的结果。

2.2、准备

对于一名本科生来说,如何准备笔试和面试是最棘手的,因为笔试、面试不像是某一门学科的考试,面试往往考察的是你的一个综合能力,但对于技术类面试来说,其实面试的考察还是比较有针对性的,按照以往的经验来说,准备可以从两个方面来准备:基础知识和岗位方向准备。

2.2.1、面试刷题

基础知识不是别的,就是课本知识:操作系统、数据结构、数据库、计算机网络、常见算法等,这是基本上每个面试官或多或少都会提及的,并且一定要记住,你项目做得再多,基础知识不掌握好肯定不行

对于基础知识的掌握最好可以去看一看相关面经,因为和考试不同,考试往往是一套比较成熟的试题,而面试对于基础知识的掌握往往在原理上,比如操作系统期末考试的考察往往是通过题目,而面试官往往会问你:和我说一说虚拟内存是如何在操作系统中实现的,这时你就要通过画图、口语表述的方式把这个原理说清楚,和做题的区别还是较大的。这里我给大家整理了一些大厂面试真题(含解析)免去了大家在网络上找面经的时间, 这些大厂面试题其实大部分都是重合的,所以说对于你复习有很大的好处,并且往往也能给你复习找一个方向。
我从基础-中级-高级开始一步一步逐步深入,这些面试问题一样都有分类整理,点击【学习】 给你分享喔(附答案解析)。

比如基础部分:生命周期,Context,动画…

2020Android最新大厂面试真题总结:Flutter+NDK+性能优化+源码解析+开源框架+高级UI等_第1张图片

中级部分:HashMap,Kotlin,HTTP,Flutter…

2020Android最新大厂面试真题总结:Flutter+NDK+性能优化+源码解析+开源框架+高级UI等_第2张图片

高级部分:性能优化,Android Framework,Android优秀三方库源码,热修复、插件化、模块化、组件化、Gradle…

2020Android最新大厂面试真题总结:Flutter+NDK+性能优化+源码解析+开源框架+高级UI等_第3张图片
其他大厂BATJ面试真题解析
2020Android最新大厂面试真题总结:Flutter+NDK+性能优化+源码解析+开源框架+高级UI等_第4张图片
阿里P6-P7进阶学习视频
2020Android最新大厂面试真题总结:Flutter+NDK+性能优化+源码解析+开源框架+高级UI等_第5张图片

对于基础知识的复习,不同岗位方向的重点也不一样,这也是我们需要注意的,举个例子,Java后台方向的基础知识可能更加侧重于Java、JVM、数据库等内容,Android方向的基础知识可能侧重于Java、操作系统等等,大家在复习的时候也需要进行相应的针对性的复习。

2.2.2、岗位方向知识

岗位方向知识就是与你所投递的岗位相关的知识,并且它和简历内容是紧密结合在一起的,因为面试官不会孤立地去问你问题,而是通过简历上的内容进行提问,这也要说到我们常见的一个误区,就是大学生项目一定要做精、做深入而不是做多,特别是对于你岗位方向的知识进行一个深入的了解而不是只停留在表面。因为对于面试官来说,大学生项目只不过是小孩子过家家(针对绝大多数普通本科生来说),他肯定不会对项目有特别大的兴趣,而是希望看到你在这个项目或者说实践中的学习能力、解决问题的能力的体现。

举个例子,针对安卓方向,也就是我面试的时候选择的方向来说,很多同学学习安卓有很多或大或小的Demo和App,可能使用了很多市面上很流行的框架,比如Retrofit、RxJava,但面试官往往会问,你有没有深入了解过Retrofit?有没有了解过它的实现?又比如对于安卓这个方向来说,面试官往往会问你Android触摸机制的实现你有没有了解过?这些都是常见的Android端面试问题,往往就考察了我们学习的深入程度,所以我才说同学们在做项目的过程中,可能你的项目不是很大,只是个个人作品,但你一定要在学习和做项目的过程中进行深入的学习和探索,比如可以对项目中使用到的框架啊的源码进行学习和总结,往往了解的越深入,越能让你在众多求职者中脱颖而出。

对于不同方向的准备,这里我也建议大家上网搜集一些相关岗位的面经(前面提到的牛客上资料很丰富,也有很多网站上也有相关资料),对于其他方向我也没有什么经验,Android方向的同学可以参考我自己在牛客上发的贴,其实多搜索搜索,基本上都有很多相关资料。

最后强调一下,一定不要陷入我一定要做项目的误区,哪怕你项目很少,只要你在某个领域了解的很深入,比如C++、数据库、JVM这些大家耳熟能详的东西,不怕找不到好的工作,所以自己在平时的学习中一定要多钻研多了解一些深入的东西。

2.3、方向

这也是很多同学会疑惑的问题,感觉自己什么都好像挺喜欢,而岗位方向却很多(常见方向可以参见bat招聘方向),这里对于方向的选择我不发表看法(和个人兴趣强相关),但一定要尽早定下自己的方向,因为不论什么方向,你只要掌握的够深入、够好,找工作不成问题,就拿我身边的同学,进腾讯有做前端的、C++后台的、C++客户端的、Android的、IOS的等等,甚至有个牛人拿到了阿里的机器学习offer(这在本科生中之前都认为非常难),所以不论什么方向,一定要尽早确定下来。当然大一和大二的同学可能还没有必要,什么方向感兴趣就去学一学,充分试错,找到最适合自己的方向。大三的同学建议就认准自己的方向进行学习和准备,避免没有一个深入的方向,到时候招聘会比较麻烦,因为毕竟招聘对于广度的要求没有那么高。

2.4、面试经验

自从实习招聘以来,大大小小的面试可能有40+,对于面试也算积累了一定的经验,不一定适用于 每一个同学,大家可以当作一个参考。

  • 好的准备是第一步:对于任何一场面试,一定要认真对待和准备,比如当时我们面试前都会把常见排序手写一遍(虽然我没被问到,只是举个例子),千万不要凭运气去面试,提前准备是成功的必要条件。

  • 面试过程中的表达能力很重要:往往面试官一个问题你可能知道,但如何清晰的表述这个问题自己的看法是关键,尽量在大脑中简单构思一下(如果觉得尴尬就说自己太紧张了,思考一下),然后按点来说;另外对于原理性的问题,借助纸笔来表达也是一个好方法,这点在准备的时候也可以进行,对于一个知识点使用画图的方式来理解。我自己在面试中成功率较高的很大原因我觉得并不是实力,而是表达能力较强。

  • 保持自信和谦虚,不懂的问题实话实说:面试不光是对你知识的考察,很多时候还会考察一些别的因素,比如思维能力、团队合作意识等等,所以尽量放开了说,保持自信,尽量多和面试官交流。比如面试官问一个问题你觉得比较模糊或者不太理解,就直接和面试官说明,多和面试官交流是没错的。另外如果问到一个确实不了解的问题,实话实说,切记不要在专业知识上撒谎,如果被面试官发现了会很不利,因为抛开专业知识不谈,诚信永远是企业选人的第一标准。

  • 保持良好的心态,学会接受失败:最后这点是最重要的,在学习、招聘面试的过程中,一定要保持一个良好的心态。因为在面试的过程中,特别是一开始面试经验较少,紧张、焦虑、发挥失常等等情况是难免的,所以说面试不过是一个非常非常正常的现象,一定要能接受自己的失败,当你能够接受失败之后,慢慢的积累面试的技巧和经验,你会发现面试实际上并不难。我认识的人中,有面试了7次才进腾讯的(真人真事),有实习去美图没留下来反而秋招进了腾讯的,特别是大三下开始的那一年,你会经历准备、春招面试、实习、秋招面试等等一系列的事,你还要做很多选择,所以一定要能够保持一个良好的心态!当你坚持下来,你才会发现其实并不难。

3、最后

生活中我们都要经历太多失败、太多挫折,面试的过程中我也经历过迷茫和不安,希望大家能够相互帮助,相互支持,在招聘路上取得自己满意的结果!PS:具体面经和知识点请参见我其他的帖子。

本人也在一个大佬开一个学交流群里,群里大佬会重点介绍学习准备过程和一些面试技巧,很多小伙伴也在里面交流交流一下,大佬有时间也会解答大家的困惑,需要的同学可以参加一下。
地址如下: 【2020金九银十(预热期)备战面试】 当然群里也有大家一起更新搜集的资料 ,欢迎大家一起加入。

我的【GitHub】

2020Android最新大厂面试真题总结:Flutter+NDK+性能优化+源码解析+开源框架+高级UI等_第6张图片

你可能感兴趣的:(Android开发,高级面试题,互联网,程序员,移动开发)