android编程基础,20道Android工程师面试必问题

2、正文

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

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

2.1、时间点

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

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

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

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

2.2、准备

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

2.2.1、面试刷题

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

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

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

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

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

对于基础知识的复习,不同岗位方向的重点也不一样,这也是我们需要注意的,举个例子,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次才进腾讯的(真人真事),有实习去美图没留下来反而秋招进了腾讯的,特别是大三下开始的那一年,你会经历准备、春招面试、实习、秋招面试等等一系列的事,你还要做很多选择,所以一定要能够保持一个良好的心态!当你坚持下来,你才会发现其实并不难。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

面试复习路线,梳理知识,提升储备

自己的知识准备得怎么样,这直接决定了你能否顺利通过一面和二面,所以在面试前来一个知识梳理,看需不需要提升自己的知识储备是很有必要的。

关于知识梳理,这里再分享一下我面试这段时间的复习路线:(以下体系的复习资料是我从各路大佬收集整理好的)

  • 架构师筑基必备技能
  • Android高级UI与FrameWork源码
  • 360°全方面性能调优
  • 解读开源框架设计思想
  • NDK模块开发
  • 微信小程序
  • Hybrid 开发与Flutter

知识梳理完之后,就需要进行查漏补缺,所以针对这些知识点,我手头上也准备了不少的电子书和笔记,这些笔记将各个知识点进行了完美的总结:

Android开发七大模块核心知识笔记

《960全网最全Android开发笔记》

《379页Android开发面试宝典》

历时半年,我们整理了这份市面上最全面的安卓面试题解析大全
包含了腾讯、百度、小米、阿里、乐视、美团、58、猎豹、360、新浪、搜狐等一线互联网公司面试被问到的题目。熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率。

如何使用它?

1.可以通过目录索引直接翻看需要的知识点,查漏补缺。
2.五角星数表示面试问到的频率,代表重要推荐指数

《507页Android开发相关源码解析》

只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。

真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

统源码,还包括各种优秀的开源库。

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 13
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值