上篇文章对安卓开发岗位的岗位要求做了一些科普,本篇文章将介绍安卓开发岗位的学习路线。
目前,网络上有很多面经、算法题解、算法课等学习资料,如何合理利用这些资料成为技术求职者的一大困惑。笔者整理了一份安卓开发岗位学习路线供大家参考,包含面试中的常见知识点,主要分为以下几个部分:
学习路线主要适用于投递 安卓开发岗位 的校招生,其中项目、算法、计算机基础和语言基础同样适用于其他岗位的校招生和部分社招生。
项目
校招生在准备面试时要选择岗位要求最相关或者比较有价值的项目。
岗位相关项目:尽量选择 技术栈综合 的项目,要不然就算简历通过了筛选,面试官也不会怎么问项目;
有价值的项目:指该项目和岗位要求不算非常匹配,但是获得了 省级、国家级乃至国际级 的奖项,可以 侧面体现能力 的项目。
此外,如果有获奖的岗位相关项目,一定要写清楚年份,因为安卓技术发展太快了,可能多年前获奖项目的技术栈放到现在来看比较简单。
写在简历上的项目都需要熟悉并认真对待,以便在面试过程中回答项目相关问题,以下是针对不同项目经验的校招生的项目撰写规范:
  • 有相关项目经验:遵循 STAR 法则(情境(Situation)、任务(Task)、行动(Action)、结果(Result)) 梳理自己做过的项目。STAR 法则同时适用于 简历上的项目撰写 和 面试时回答项目 主要工作内容。
  • 此外,校招生还需要 复盘项目细节项目分工和项目意义 等方面的内容,以应对面试官的问题。如果简历上项目太简单或者跟面试的事业部相关程度不高的话,面试官针对项目深究的概率较小,此时面试官会重点问其他内容。如果面试官比较感兴趣简历上的项目,校招生可以引导面试官向自己会的内容上提问,而且因为面试时间有限,提问其他问题的时间将大概率缩减。
  • 无相关项目经验,但是有其他项目经验:选比较有价值的项目,针对该项目梳理和复盘跟进过程,以凸显自己 学习能力、沟通能力和解决问题能力 为主。
  • 无项目经验:首先要清楚不是所有公司都接收客户端零基础的校招生,也要清楚某些公司对客户端零基础的同学要求不在于项目,而在于其他基础,如果你的基础知识非常扎实,也是有上岸的几率的。

算法

算法和数据结构基本是每个想要求职互联网大厂的必考项,大厂面试考算法实际上是考验面试者对数据结构的理解和解决问题的思维方式。因为每个人的算法基础都有差异,所以算法准备同样 因人而异。以下是笔者整理的面试中常见的算法题类型:
对于校招生而言,互联网大厂的笔试大概率是统一笔试,难度不一,很可能会遇到较难的竞赛题改造,但是面试遇到的算法题通常是一些 中等甚至简单 的题目,即使是难题,也会是常考的难题。
每个人的刷题方法不同,这里推荐 算法零基础或者基础比较薄弱 的同学 按类刷,推荐 有一定算法基础 的同学参加力扣的每周竞赛、刷企业题库、精选题单、参加模拟面试等。
针对 算法零基础或者基础比较薄弱 的同学,以下列举几种常见方法:
1. 点击力扣-题库-通过 标签 进行筛选对应算法知识点。
2. 点击力扣-学习-点击 专项突破 可以看到常见的算法题类型,例如:
3. 点击力扣-讨论-在 求职面试 中寻找与面试有关的算法整理,例如:
针对 有一定算法基础 的同学,可以进行一些能力提升和突破:
  1. 参与 力扣周赛,锻炼自己对新题目的敏感度,提升限时做题能力。
  2. 刷 企业题库,保持面试手感。
  3. 针对性刷 精选题单,针对薄弱环节查漏补缺。
  4. 参与 在线面试,体验真实面试环境。

操作系统

操作系统是大厂面试必考知识点之一,以下列举操作系统中的常见知识点:
其中 进程和线程内存存储方式 和 页面置换算法(特别是 LRU 和 LFU) 等是面试高频考点。
建议同学们回答这块的问题按 总分 或者 总分总 的方式,相关题目可以参考力扣讨论区的 面经 或者在力扣-学习区中学习相关 LeetBook,例如:

计算机网络

计算机网络相关的基础知识也是大厂面试必考知识点之一,下图列举常见考点:
其中 http 和 httpsDNSTCP 和 UDP 是面试高频考点。因为面试者都知道这些东西要考,所以面试官可能会问的比较细致,建议大家事先搜集相关内容,然后整理成自己理解的版本进行准备,在回答时要言之有物。
书籍推荐:《计算机网络自顶向下方法》,作者(美)库罗斯,标准黑皮书,国内高校用的教科片之一。
面试准备:推荐学习 LeetBook《计算机网络面试突击》

数据库

大厂面试常考数据库相关的知识点,对于投递安卓开发的校招生而言,数据库可以不用像后端那么深入学习,但是基本内容要掌握,以下列举数据库中常见知识点:
其中 基本内容 和 MySQL 的是安卓开发的校招生必备的知识点。
书籍推荐:唐汉明的《深入浅出 MySQL:数据库开发、优化与管理维护(第2版)》。

Java

大多数事业部的安卓开发岗面试校招生主要考察 Java 语言基础,少数事业部会考察 C++语言基础,特别是某些做sdk 的事业部,其底层源码使用 C++语言或者其他语言。安卓岗面试时很可能深挖到 源码,建议大家提前做足准备。
以下是  Java 的常见知识点:
想要应聘安卓开发岗的同学可以多搜一些面经,自己归纳高频知识点和题目,尽可能从实用代码角度分析问题。零客户端基础的校招生更要认真准备这块的内容,可以多参考一些后端面经。
力扣上也有针对 Java 学习的 LeetBook,例如:Java 面试突击。

安卓

很多人刚接触安卓开发,不知道怎么学习。事实上,安卓入门并不难,但新手较难短时间内深入探究所有要点。这里建议大家将基础内容和基本的优化方法学完以后,直接实践一些含有较新技术栈和框架的项目,在项目中学习相关知识点,认真思考源码底层设计。
以下仅列举部分安卓面试中常考的知识点,具体题目可以自行搜相关面经:
适合初学者的书籍:
  • 郭霖的《Android 第一行代码(第 2 版)》,目前已有第 3 版,但是第 3 版是基于 kotlin 语言的,初学者建议先学第 2 版基于 Java 语言的第一行代码。
  • 任玉刚的《Android 开发艺术探索》,主要讲述一些优化方式方法。
如果已经有一定基础,可以直接找一些博客或者开源项目进行实战演练,推荐鸿洋和郭霖的博客, Android 社区。
其他需要准备的内容包括 设计模式、海量数据的处理问题、智力题 等。这类题目可能在部分公司中会被问及,建议面试前用几天时间搜索相关面经或者别人整理出来的同类题型,大概了解下即可。
设计模式:需要知道有哪些类型和基本含义,如果有使用过具体的设计模式,要复盘源码的设计和意义,常见的设计模式包括:
海量数据的处理问题:要了解常见的方法有哪些,面试官如果要考察该方面的知识点,会出一些场景设计题,建议大家提前搜索相关面经并思考自己该如何回答。
智力题:部分公司会考智力题,但是题目大同小异,可以自行搜索一些常见智力题,学习答题的思维方法,这样才能在面试中更快思索出答案。
时间规划
安卓开发岗需要掌握的知识点较多,每个公司的考察重点也不尽相同,可结合自身情况规划学习时间,以下时间安排仅供参考:
  • 项目
    有相关项目开发经验且想投递大厂的校招生:至少在面试前一个月到最后一次面试结束的过程 中持续不断梳理项目中的安卓和 Java 知识、不断学习前沿的安卓或者混合前端开发技术;
    没有相关项目开发经验且想投递大厂的校招生:按零基础投递岗位,并 至少在面试前半年 系统性学习安卓开发基础和优化 APP的方法,并在打好基础的同时学习前沿的 APP 开发技术。
  • 算法
    算法基础较好:至少在面试前 2 个月 多参加力扣周赛或者多刷企业题库,保持对新题目的敏感度;
    算法基础薄弱:至少在面试前 3-4 个月 或者 集中某 1-2 月的时间段 按类刷题,在对各个类别的题目有一定解题思路后可以多参加力扣周赛或者多刷企业题库,保持对新题目的敏感度。
  • 计算机基础(操作系统、计算机网络、数据库等):
    建议学习过相关课程的同学 至少在面试前一个月 多看别人的面经及知识点汇总,整理并学习高频面试题。
    建议没有相关基础的同学根据自身情况 至少在面试前 3-4 个月 系统性学习相关知识点,可以直接跟着视频教程和书籍走,一定要有从无到有的构建过程,在学完一遍乃至多遍的基础上再开始整理并学习高频面试题(先读厚,再读薄)。
  • Java 语言基础:建议在刷算法的过程中深入学习某些数据结构源码,在复习计算机基础的过程中同步整理并学习 Java 语言特有的高频面试题,时间规划与计算机基础类似。
  • 安卓开发:建议有相关项目开发经验且想投递大厂的校招生 至少在面试前两个月 将安卓开发基础题、优化 APP 的方法和前沿的混合开发技术等按知识点整理并巩固,其中涉及到项目的相关知识点要重点整理并深入挖掘可能被问的要点,在准备过程中可以参考别人的面经中被提问的方式。
  • 其他(设计模式、海量数据的处理问题和智力题):学有余力的情况下, 在面试前几天 看看整理出来的材料,锻炼自己的思维方式,做好不一定会碰到的心理准备。
想要想拿到各大厂给的 sp 以上 offer,建议大家 不要落下上述的每一块知识点,特别是算法不能落下,因为有一些公司特别喜欢考核算法,算法基础不牢对面试结果影响很大,其次是相关项目一定要好好复习,做好被深入提问的心理准备。建议准备时间不够充裕或者零客户端开发基础的校招生,重点复习算法、计算机基础和 Java 语言基础,扬长避短,可以和面试官申请跳过某些不会的内容(面试中尽量别超过 3 个),引导面试官向自己会的问题上提问。
本文主要总结了一些面试常见的知识点,具体题目和其他知识点还需要大家针对性准备。建议大家在准备到一半以上就开始投递简历和准备笔面试,并且在准备的过程中持续不断学习,在笔面试中锻炼自己的能力,方便查缺补漏。多投多面,注意面试顺序,相信大家都能收获满意的 offer。

本文作者:力扣
编辑&版式:霍霍
声明:本文归 “力扣” 版权所有,如需转载请联系。
点个在看,少个 bug👇
继续阅读
阅读原文