食用指南
和大部分人一样,我在复习完第一遍Android知识的情况下,看到相关的知识回答的仍然不能够令自己满意。
在第二遍系统复习的时候,我着重记住每个知识点的关键字,根据这些关键字拼凑出大概的知识点,最后看到每个知识点的时候,就知道大概会问哪些内容,达到这种境界以后,你就可以从容的面对每次面试了。
简单的做法就是为每个知识点建立脑图,尽可能把自己想到的关键点罗列出来,也就是下面每个章节前面的脑图。废话不多说,这张图是我花费3个月时间自己一点一点搜集素材,看了无数的资料才做出来的,现在在这里分享给大家,希望对大家有所帮助。在今年互联网寒冬下,靠着这份脑图和330页的PDF资料成功拿下了阿里的OFFer。
高级工程师之后可以有两种侧重方向或者说两种发展路线。
第一种是管理路线
首先要对移动端和前端有一个系统的认知,并非说要完全掌握移动端和前端 coding 的能力,更多可以侧重于扎实的技术基础,再加上对技术的理解和融会贯通,就算不能快速地写出 iOS 和前端的代码,也应该对实现流程有一个清晰的认识,并且能够快速定位问题。
同时要熟悉服务端开发流程,负责移动端项目管理,最终成为移动端研发经理,如果你不打算学习后端知识基本止步于此了。不满足于此的可以继续去学习后端开发,拓宽之后的职业发展可能性。
第二种是纯技术路线
往往是一个专业细分领域比如音视频、三维图形、逆向安全、性能优化等,根据不同的细分领域,市场上有需求的行业和公司数量也会不一样,但若是该公司的核心需求,一般也会是公司的核心技术岗位,成为该领域市场上少有的精通人才的话,不可替代性也会很高。如果想一直 coding 下去,那么打好基础、找准方向是没有错的。
明确了方向之后,具体怎么做呢?可以分成几个方面。
首先,**技术基础是必不可少的。**刚开始进入公司写业务功能的时候,可能会觉得数据结构、算法、操作系统、编译原理之类的基础对自己日常的工作内容没有什么影响,知道怎么用就好了。
实际随着工作内容的深入,以及对不同技术的涉猎,会发现技术看似一直在发展、创新、变化,而底层的逻辑和原理是不太会变化的,越是不断变化的东西,理解它底层的原理就越是重要,这时候再去看待和学习它的变化就会轻松许多。
其次,要深入学习自己的“一技之长”,对 Android 开发工程师来说就是 Android 的相关知识:UI、底层原理、NDK、架构、调试实战经验等等。
比如下面这些内容:
业务或者技术方案,站在不同的时期和视角上看,难免会有不同的意见,但是技术是不会模棱两可的,会就是会,不会就是不会。
如果考虑管理路线的话,有几年工作经验的 Android coder,此时应该更加主动参与项目、承担工作、积极沟通需求和实现,对业务培养起自己的理解。架构孵化于业务,并且服务于业务,技术和业务齐头并进才能更好地发展(对于公司和个人都是如此)。
同时,多观察你的 Leader,看他是怎么协调整个项目向前推进,怎么不让项目进度失控,怎么和产品讨论需求,什么时候该重构等,这些都是细节也都是宝贵的经验。
无论选择哪个方向,都要保持对新技术趋势的敏锐度。
纯技术路线对新技术的关注自是不必说,管理岗需要在做技术方案时考虑新技术,同时提升自己的移动端/前端全栈能力。
学习福利
【Android 详细知识点思维脑图(技能树)】
其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。
虽然 Android 没有前几年火热了,已经过去了会四大组件就能找到高薪职位的时代了。这只能说明 Android 中级以下的岗位饱和了,现在高级工程师还是比较缺少的,很多高级职位给的薪资真的特别高(钱多也不一定能找到合适的),所以努力让自己成为高级工程师才是最重要的。
这里附上上述的面试题相关的几十套字节跳动,京东,小米,腾讯、头条、阿里、美团等公司19年的面试题。把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。
由于篇幅有限,这里以图片的形式给大家展示一小部分。
详细整理在下方二维码中可以见;
Android架构视频+BAT面试专题PDF+学习笔记
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。