文章中只是单纯的分析个人对 Android 工程师成长的看法和认知。
1、背景 - 迷茫
工作 2-3 年之后,你会发现自己会迷茫,这种状态就是好像现在的工作我好像都会做了,好像没有意思了。这种迷茫源自你对现有的阶段的认识不够全面,我自认为我也在这个一阶段,很多时候觉得 Android 就那么回事。总是会有觉得 Android 穷途末路的意思。如果你真的对这个行业没有了兴致了的话,那确实不是我这么一段话能够改变你的想法的。但是我个人相信一句话:
如果你能当前的行业做的不错,那么你去到其他的行业也不会差。
我总是相信成功的人的特性总是有那么一些相似。如果你能在这个行业能够做的好好的,我是有理由相信你去到其他领域肯定也是 OK 的。
在我看来,2-3 年经验的我们能够应付一般的工作需求。也能够比较快完成工作上的东西,此刻更是我们去搭建我们自己的个人知识体系的最好的年限了。
2、市场需求分析(个人分析)
从目前市场需求反馈来看:
- Android 的人才需求确实在减少,而且人才需求的减少的速度确实是小于人才供给速度的,现在不管是高校还是线下培训机构基本上不再输出 Android 初级工程师,有一些个人会提供中高级进阶培训。无疑是把进入这个行业的人入口减少了很多。
- Android 的发展越来越领域化和多元化。现在的 Android 的应用到很多不同领域,比如车联网、机器人、人工智能语音助手等。方向越来越细。就当前应用层都可以分为两个大方向:大前端和多媒体。
- 现在市场对 Android 的人才需求也越来越高,不再是以前会四大组件、五大布局就可以做事的那种状态。随便翻翻招聘简历,都是需要设计模式、数据结构、网络编程、framework等要求。
- 肯定有更多我个人没有了解的东西...
3.面对这样的情况我们如何们面对?
貌似所有的人都在说今年的大环境不好,很多大公司在裁员。面对各种市场信息和需求,做为大浪中的我们,如何面对当前的状况。哈哈哈....我只是想说学,往死里学,只要学不死就往死里学。所以这里我给大家分享一下我个人推荐的一些数据及学习资料(仅供参考)
1. 网络编程
网络编程其实对于我们应用端的工程师貌似用的不多,但是其实我觉得学习之后,你会对协议这个东西的概念以及相关协议的设计有一个新的认识。而且会给你思考 很多问题的方式提供一个新的角度。而且这种协议层次的东西,不会存在太快的技术更新的。
推荐书籍:
基础-《网络是怎样连接的》 进阶《TCP/IP详解》
2. 设计模式
设计模式的重要性我想大家应该都知道。目前应该是只要是面向对象语言,都会有设计模式,不分语言的。这是一种编程的思维的高度。但是我之前听了一个大牛说过,不要为了模式去编程,最好的状态应该是编程的时候,自然而然的就直接是在运用设计模式, 关于设计模式网上的资料蛮多的,所以直接去找,这里我推荐两本比较好懂的一点书.
《大话设计模式》 《Head First设计模式》 《Android 源码设计模式解析与实战》
3. 数据结构与算法
关于数据结构,其实倒也没有特别多推荐,了解的不是那么多,但是我觉得如果是基础入门的话可以考虑,本人都是在看这本书入门的。
《大话数据结构》 《算法导论》 - 听说这本书很厉害,但是没有拜读过。
4. Java 基础
Java 基础是我们做 Android 的命根子,哪怕你以后想做后端那也是必须要好好学的东西。这里我觉得不需要说什么了,有几本书必须推荐的。
《Head First Java》 很基础,比较详细 《Java 编程思想》(Thinking in Java)超级详细。IO、线程、网络编程等全部有而且很细,但是很厚 《Effective Java》 这是一本深入到 Java 细节讲解的东西
5. JVM虚拟机
虚拟机的部分主要是作为个人的技术看法和深度去研究吧。但是也是推荐一本
《深入理解 Java 虚拟机》
6. Android 进阶
Android 这边我就比较常规的推荐了。基础类的两本书本人都是有拜读过的,真的很好。也许你也读过,底层进阶的确实还没有来得及去看。
A. 基础补充
《Andorid 进阶之光》 《Andorid 开发艺术与探索》
B. 底层进阶
《Andoird 进阶解密》-针对高级 Android 程序员面试的知识点书,比较有深度了 《深入理解Android内核设计思想》 这是两本很牛逼的书,暂时没有时间和能力去拜读。
除了以上的书籍针对技术进阶之外,个人还推荐一些粗略读过的书。
接下来来看看有一些进阶学习的方向:
钻研技术
首先来看看 Android 有哪些方向,列举几个常见的:
- 应用层开发,日常业务开发,主要还是原生开发,就业方向基本饱和,大部分只招高级工程师;
- 游戏开发,相比应用开发更吃香,有 Unity-3D 等游戏引擎;
- 跨平台,比如 Flutter、RN,从成本上考虑,跨平台是个不错的选择,我们 Android 有必要密切关注下;
- 安全开发,一些对安全性很高,比如银行项目,熟悉 Https、支付密码安全、应用加固等;
- SDK 开发,将应用里的部分功能独立了出来,封装成 SDK 提供给合作伙伴使用;
- 音视频开发,比如音视频直播/点播功能,则需要了解音视频编解码的传输协议,编解码方式等;
- 图形开发,比如美图、天天P图,对图形处理要求十分高; Framework 开发,手机厂商定制手机为主,比如小米、魅族等;
- 驱动开发,同上,更多是在和 Linux 打交道;
- 如果你对技术感兴趣,想做到专家级别,可以在以上这些方面深究下去,总之,劳资有技术,不怕没饭吃。
如果你不知道怎么学习,我给大家提供一个方向,进行体系化的学习!
除了上面的学习路线,还给大家整理了一份Android进阶学习资料,主要为安卓相关知识点及面试资料为主,在这个PDF中,通过详解各大互联网公司的 Android 常见面试题为主线,从面试的角度带你介绍必备知识点,以及该知识点在项目中的实际应用。
帮你在现在的基础上,重新梳理和建立 Android 开发的知识体系。无论是你短期内想提升 Android 内功实力,突破自己工作中的能力瓶颈,还是准备参加 Android 面试,都会在这个PDF中有所收获。一些基础不好的,这里也有一份安卓基础资料包,帮助巩固基础。
以下是这份PDF主要内容:
- Android 核心技术:介绍 Android 开发中常用的核心技术,比如自定义 View、Handler,以及一些开源框架的原理实现,来夯实你的底层能力。只有底层能力足够出色,之后的进阶之路才会更加轻松。
- 常见问题剖析:介绍一些项目中常见的疑难问题,使你能够对现有项目做出合理的重构优化。
知识梳理完之后,就需要进行查漏补缺,所以针对这些知识点,我手头上也准备了不少的电子书和笔记,这些笔记将各个知识点进行了完美的总结:
通过源码来系统性地学习
只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。
真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。
阅读前辈的一些技术笔记
刷题备战,直通大厂
历时半年,我们整理了这份市面上最全面的安卓面试题解析大全。
1.可以通过目录索引直接翻看需要的知识点,查漏补缺。 2.五角星数表示面试问到的频率,代表重要推荐指数
以上内容均放在了开源项目:【github】 中已收录,里面包含不同方向的自学Android路线、面试题集合/面经、及系列技术文章等,资源持续更新中...
学习技术是一条慢长而艰苦的道路,不能靠一时激情,也不是熬几天几夜就能学好的,必须养成平时努力学习的习惯。所以:贵在坚持!
心里话
随着年龄的增长意味着我们的时间也越来越少了,所以我们自己心里要明白自己该做什么? 浑浑噩噩,最后自己只会被淘汰。 当然,我们程序员,最大的底气就是技术! 所以,如果你只想在技术这条路上越走越远,一定要进阶,迈上一个高的台阶! 希望我们在开发的路上越走越远,一起来进阶吧。 偏执的我们可能不一定能够总是被理解,但是我们总是能够创造我们的价值。