结尾
最后,针对上面谈的内容,给大家推荐一个Android资料,应该对大家有用。
首先是一个知识清单:(对于现在的Android及移动互联网来说,我们需要掌握的技术)
泛型原理丶反射原理丶Java虚拟机原理丶线程池原理丶
注解原理丶注解原理丶序列化
Activity知识体系(Activity的生命周期丶Activity的任务栈丶Activity的启动模式丶View源码丶Fragment内核相关丶service原理等)
代码框架结构优化(数据结构丶排序算法丶设计模式)
APP性能优化(用户体验优化丶适配丶代码调优)
热修复丶热升级丶Hook技术丶IOC架构设计
NDK(c编程丶C++丶JNI丶LINUX)
如何提高开发效率?
MVC丶MVP丶MVVM
微信小程序
Hybrid
Flutter
接下来是资料清单:(敲黑板!!!)
1.数据结构和算法
2.设计模式
3.全套体系化高级架构视频;七大主流技术模块,视频+源码+笔记
4.面试专题资料包(怎么能少了一份全面的面试题总结呢~)
不论遇到什么困难,都不应该成为我们放弃的理由!共勉~
如果你看到了这里,觉得文章写得不错就给个赞呗?如果你觉得那里值得改进的,请给我留言。一定会认真查询,修正不足。谢谢。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
一、个人背景
双非本科,先后在网易和字节跳动实习,都是做Android开发。
二、时间线
2020年3月初开始准备暑期实习,腾讯3捞3败,最终以 0 offer告终 2020年5月中旬开始投递日常实习,收到网易的两个offer及滴滴OC。2020年8月初开始投递秋招,面试了一些大厂,没有满意的offer。
2021年春招,收到CVTE、乐视offer,知乎一面挂。
三、毕业后进互联网大厂的三个机会
1.暑期实习/春招实习:面向次年毕业的学生,一般随应届春招同步开启(3月左右)竞争相对较小,有转正,转正几率视不同公司而定。
2.秋招:面向应届生,一般在7月中旬陆续开启网申,整个招聘过程持续到9月甚至十月(12月左右零星开始补录)竞争大,HC相对较多。
3.春招:面向应届生,一般在2月中旬陆续开启网申,整个招聘过程持续到4月甚至5月(但其实4月初基本就招完了)竞争巨大,HC极其之少。
2020年7月开始准备秋招,直到春招才找到满意的工作,有了暑期实习备战的经验,已经能够清楚所有的流程和准备要点,准备阶段所做的步骤基本如下:
其实每个人都有自己特有的学习方法,我们都需要寻找到最适合自己的,在这里我只是列举出我复习的技巧,大家只需要选择适合自己的就行。
书籍和网站
我觉得看书真的是十分的重要,每一本书都有自己的知识体系,但是好书确实不多,需要经历一番挑选;关于网站则是对一些体系较小的知识进行汇总,这里推荐的是设计模式。以下我列举一些个人觉得不错的一些书籍和网站:
- Android 相关
- 《Android开发艺术探索》
- 《深入理解Android虚拟机》
- 《Android源码设计模式解析与实战》
- Java相关
- 《Java编程思想》
- 《深入理解Java虚拟机》
- 《图解Java多线程设计模式》
- 网络相关
- 《计算机网络》(谢希仁 编著)
- 《网络是怎么连接的》
- 数据结构与算法相关
- 《算法导论》
- 《算法》(第4版)
- 设计模式相关
- 练习相关
知识总结
看了这么多书籍和网站之后需要对这些知识做一个比较系统的整理,这里推荐使用思维导图工具,下图则是我总结的Android复习体系图,完整的版本大家可以点击这里下载。
面试技巧
-
面试前需要对自己总结的知识重新回顾一遍,以便在被问及时能够快速并且全面的回答问题。
-
面试前对该公司稍做了解,可以从官网或者从产品等方面了解,如果有产品的话还可以使用,看看有没有存在一些bug,当面试官要你提问题的时候可以跟他一起讨论。
-
面试完之后做稍做记录,记下自己回答的不好的问题,方便查漏补缺。
下面是我收集整理的一套大厂Android面试真题含解析,完整的朋友可以点击【这里】免费阅读下载。
CVTE
一面 (电话面)
-
讲讲你看的Android源码
-
说说你在项目中用到的MVC
-
说说观察者设计模式
-
讲讲对线程安全的理解
-
JVM内存模型
-
HashMap的工作原理
-
知不知道可重入锁
-
GC回收算法(凉)
-
引用方式
-
内存溢出和内存泄露的区别,内存泄露一定会内存溢出吗?
-
四大组件有哪些
-
Activity的启动模式
-
Activity的生命周期
-
wait使用时要注意什么(答了死锁,面试官换了题目,应该是没有get到它的点) —和notify成对出现
-
ArrayMap和HashMap区别(没答出来,之前看过ArrayMap但忘完了…)
二面
二面应该是总监面,问题主要偏向项目,有一些问题已经忘记了,只能列出一些还记得的:
-
做了哪些项目?详细说一下项目。
-
讲一下RXJava原理;subscribeOn()与observeOn()哪一个方法多次切换线程只有第一次有效?为什么?
-
Volley原理?
-
Retrofit原理?
-
Volley与Retrofit缓存机制有哪些区别?
-
简单工厂,工厂方法,抽象工厂三种设计模式的优缺点?
-
什么是内存泄露,什么是内存溢出?
-
平常使用什么分析工具来优化APP的性能?
-
手写算法题————实现一个栈
-
Java的集合类包括哪些?各自有什么特点?
-
为什么写博客?
-
今后想要往哪些方面发展?
终面(视频面)
我并不认为我能走到最后[不是矫情和装],因为面过CVTE的人都知道,最可怕的是它的终面,终面是被人诟病的,说CVTE不好的基本都是吐槽它的终面,还是有点慌的。又过了好几天,约好了终面的时间==
-
给前两次面试打分,满分10分。为什么这么打?
-
有没有面试过哪些公司了,有收到多少offer了,为什么?
-
工作的薪资期望,地点和时长?
如何做好面试突击,规划学习方向?
面试题集可以帮助你查漏补缺,有方向有针对性的学习,为之后进大厂做准备。但是如果你仅仅是看一遍,而不去学习和深究。那么这份面试题对你的帮助会很有限。最终还是要靠资深技术水平说话。
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。建议先制定学习计划,根据学习计划把知识点关联起来,形成一个系统化的知识体系。
学习方向很容易规划,但是如果只通过碎片化的学习,对自己的提升是很慢的。
同时我还搜集整理2020年字节跳动,以及腾讯,阿里,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 Xmind(实际上比预期多花了不少精力),包含知识脉络 + 分支细节。
在搭建这些技术框架的时候,还整理了系统的高级进阶教程,会比自己碎片化学习效果强太多。
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
40581)]
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!