Android开发的现状
目前,移动开发已经处于饱和的阶段,Android开发也不如当年盛况,已经不再像前几年前那么火爆。正如一种编程语言如果经历过盛极一时,那么必然有这样的一条曲线,像我们学的正弦曲线先急速上升,然后到达顶点,然后再下降,最后再趋近一个平稳的值。
可以看到,从2016年的下半年开始,移动互联网基本处于缓慢发展的阶段,很多大佬称之为互联网的下半场。如果移动互联网的前半场是粗放式的强地盘阶段,那么下半场就是守地盘的阶段,这一阶段,会出现众多的寡头。
在技术上,相比之前之前面试只问Android四大组件,数据库,网络和项目经验不同,现在面试Android岗位会设计各种原理(包括系统的一些原理以及第三方库的原理及流程)、Android优化以及与Android相关的跨平台技术。除此之外,稍微大点的公司还会对App的用户体验、流畅度等等提出要求,所以说,Android的面试已经不可同日而语。
那么,2021年的移动开发,要如何去摸索自己的前进方向呢?
谈到技术方向,很多作者会去大谈特谈一些完全空洞的未来十年的行业趋势;也有的会一味地鼓励大家转技术方向,转大前端、转后端、转AI;更有些人直接怂恿读者抛弃技术方向,转产品、运营,甚至离开互联网行业。在我看来,这些想法多少有些不负责任,并没有设身处地地考虑大家的实际情况。
下面阐述一下我的看法。
1. 不要轻易离开互联网行业
很简单,多数人来工作是为了挣钱的。而相比很多传统行业而言,互联网领域的薪资依然有着绝对的领先地位,而且,天花板也相对高很多,30岁左右,拿个阿里的P7、P8左右级别,或者去牛逼点的中型企业做技术管理,年薪一两百万问题不大,足够你应对个人及家庭的各种经济压力。相比之下,其他行业很难能保证这样的待遇。
另外,如果你觉得钱攒够了,还可以选择互联网创业,互联网技术的颠覆性决定了他有非常大的创新空间,而且这些年计算机技术不断发展,物联网、5G、AI、大数据等技术不断成熟并逐步落地,对于想创业的朋友有非常大的想象空间。
2. 不要轻易离开技术方向
有些读者技术做久了,遇到了瓶颈,就会考虑离开技术去做产品、运营。当然我并非否定这种选择,我本身是支持技术人去学习产品思维、用户思维。但是如果说直接抛弃技术去转产品,可能风险会很大。这意味着你要抛弃自己多年的技术积累,在一个新的方向从零做起,以后如果再想转回技术,可能已经要被淘汰了。
当然,也有成功的大佬转型成功,拼多多的黄铮就是技术出身,然后转产品,最后创业。如果你未来也打算创业,那确实可以考虑这样的一条路线。
3. 不要轻易更换技术方向
这一点就是最近几年移动开发领域一直在讨论的。有的想转大前端,觉得大前端要一统用户终端开发;有的想转后端,觉得后端有高并发高性能,感觉很有技术深度;有的想转算法、AI,觉得这是未来的趋势,一定要把握住。
这种思维就是我之前提的“散户思维”:看到哪个火就去买哪个,追涨杀跌。了解股票的朋友知道,这种往往不会有多好的结局。而我比较推崇的是“价值投资”:不要受短期波动影响,如果你看好某只股票,相信它内在的成长价值,就要长期持有,最终收益一定会高于大多数人。
不要觉得大前端、后端、算法这种就一定高大上,每个领域都是为业务服务的,他们也要写很多的业务代码,并不是天天都在忙着处理高并发、高可用之类看起来金光闪闪的问题。至于选大前端还是选原生,只不过是一种UI展示形式,最终做的都是业务开发,为你的简历带来不了多大的闪光点。
而移动端这支“股票”,我是看好的。换句话说,除非哪天用户都不用手机了,或者出现了比手机更牛逼的终端了,那时候才需要去担心自己的饭碗。
作者2013年从java开发,转做Android开发,在小厂待过,也去过华为,OPPO等大厂待过,18年四月份进了阿里一直到现在。
参与过不少面试,也当面试官 面试过很多人。深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长,而且极易碰到天花板技术停滞不前!
我整理了一份阿里P7级别的最系统的Android开发主流技术,特别适合有3-5年以上经验的小伙伴深入学习提升。
主要包括阿里,以及字节跳动,腾讯,华为,小米,等一线互联网公司主流架构技术。如果你想深入系统学习Android开发,成为一名合格的高级工程师,可以收藏一下这些Android进阶技术选型
我搜集整理过这几年阿里,以及腾讯,字节跳动,华为,小米等公司的面试题,把面试的要求和技术点梳理成一份大而全的“ Android架构师”面试 Xmind(实际上比预期多花了不少精力),包含知识脉络 + 分支细节。
Java语言与原理;
大厂,小厂。Android面试先看你熟不熟悉Java语言
高级UI与自定义view;
自定义view,Android开发的基本功。
性能调优;
数据结构算法,设计模式。都是这里面的关键基础和重点需要熟练的。
NDK开发;
未来的方向,高薪必会。
前沿技术;
组件化,热升级,热修复,框架设计
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
我在搭建这些技术框架的时候,还整理了系统的高级进阶教程,会比自己碎片化学习效果强太多,腾讯文档上可见;《Android架构视频+学习笔记》
当然,想要深入学习并掌握这些能力,并不简单。关于如何学习,做程序员这一行什么工作强度大家都懂,但是不管工作多忙,每周也要雷打不动的抽出 2 小时用来学习。
想要深入学习并掌握这些能力,并不简单。关于如何学习,做程序员这一行什么工作强度大家都懂,但是不管工作多忙,每周也要雷打不动的抽出 2 小时用来学习。
不出半年,你就能看出变化!