你面试时是否经历过这种场景?

明明胸有成竹的问题,被面试官反复追问之后没了信心?

那么Android面试互联网技术人员,应该怎么准备呢?

面试前准备

不同的公司乃至部门,面试的流程和着重点都有颇大的差别。

国内以腾讯为例,微信部门与深圳总部的面试流程和着重点就不一样。微信一面的时候需要五十分钟内手写 4 道偏简单的算法题,但是在深圳总部面试的时候一面却是没有算法题,两小时的考卷。更多的是与面试官聊技术与项目经验。

国外的话,甲骨文五轮的面试可能四轮是系统设计,一轮是算法。亚马逊虽然注重算法,但是非技术问题在面试中占比非常高。

你首先需要知道面试中考察什么内容之后才去开始准备,国内可以通过我们整理的高频题库着手复习。

技术准备

这里主要包括基础、进阶、功能实现、工具使用这几大方面。

  1. 基础知识:Java基础知识、Android基础知识
  2. 进阶知识:Android框架、设计模式、性能优化
  3. 功能实现:网络编程、数据库、多线程
  4. 工具使用:第三方库、编程工具

这里列举一些面试常见的问题

  • Java基础知识:包括面向对象编程、数据类型、控制语句、异常处理、集合框架等
  • Android基础知识:包括Activity、Service、BroadcastReceiver、ContentProvider、Intent、布局、资源文件等
  • Android框架:包括MVC、MVP、MVVM、MVI、Android Architecture Components、RxJava等。
  • 设计模式:包括单例模式、工厂模式、观察者模式等。
  • 性能优化:包括内存优化、布局优化、网络优化等。
  • 网络编程:包括HTTP协议、Socket编程、RESTful API等。
  • 数据库:包括SQLite数据库、ORM框架等。
  • 多线程:包括线程池、Handler、异步任务等。
  • 第三方库:包括OkHttp、Retrofit、Glide等常用的第三方库。
  • 编程工具:包括Android Studio、Gradle等

这里说一点题外话,可能有的同学有疑问,Android这么多技术点怎么记得住,有没有系列文档。我这里收纳了一份来自阿里大佬整理收纳的面试题合集,有需要的可以在文末查看

个人经验

一定要花更多的时间回忆你过去的经历,包括你参与过的项目,遇到的困难,以及如何解决它们。你的回答会影响面试官对你技术能力的印象,所以一定要回顾和整理你过去的项目经验,项目宜精不宜多,做得再多得项目, 也不及一个好的项目说服力高。

有很多程序员,特别是刚进入这一行的新手,往往缺乏相关的项目经验,也不知道如何增加工作经验。

有很多方法都可以获得工作经验,你可以做一个移动app,放到App Store里,也可以写一个小型的Web应用程序,但这需要一定的自学能力和创造性

如果你感觉有点困难,参加职业培训会是一个不错的选择,在这里,你可以学到更多的专业知识,参加一些工程项目以积累更多的经验。

熟能生巧

在面试中,你需要结合自己的经历立刻给出回答。想让答案脱口而出,我的建议是:把答案的原始资料烂熟于心。这要求你必须对简历的内容细节了若指掌,包括简历里提及的技术,证明你能力的事迹,一些解决过的问题,曾经战胜过的挑战,等等。这样,当有表现机会的时候,你才可以信手拈来。

如果你无法自然流畅地表达,那就需要在面试前多加练习。找个朋友陪你一起练,一定要认真。让你的朋友拿着你的简历随意提问,这相当于模拟面试过程,你可以思考如何把自己的经历同问题联系起来。如果你在练习中遇到了无法回答的问题,这非常棒,因为你发现了一个准备工作的疏漏,这样就能在面试前补救这个问题。

练习,练习,再练习。

最后这里也准备了一些面试题和优秀简历模板

啃完这份2023年Android面试指南,拿到offer几率提升50%【附Android面试题集锦】_项目经验

啃完这份2023年Android面试指南,拿到offer几率提升50%【附Android面试题集锦】_第三方库_02

啃完这份2023年Android面试指南,拿到offer几率提升50%【附Android面试题集锦】_面试_03