Android开发前几年火爆一时,市场饱和后Android程序员每一名程序员都想进阶,甚至成为架构师,但这期间,须要付出的辛苦和努力远超过咱们的想象。java
就我这几年对所接触的Android工程师调研:97% 的Android开发 技术人都会面临这些困境(可能也是你的困惑)程序员
主要困境;web
外包公司/小型团队技术闭塞:若是你长期在小型软件公司或外包公司工做,是很难有机会经历完整且大型项目的开发,整个技术视野会比较窄,致使薪资长期处于停滞不前;面试
重复一样的编码工做:长期重复一样的编码工做,项目对你的技术要求就是那些,不会让你按照本身的指望去发展,致使很长时间本身的能力都没法突破,企业更是难以接受新技术;编程
自控力差,没时间学习:白天工做,晚上加班,只能依靠碎片化的时间学习,若是自控力比较差,基本就三天打鱼两天晒网,没法系统性学习,没法沉淀成技术实力;设计模式
目前的简历,难进大厂:现有的技术能力、项目经验,没法经过大厂简历初筛,更别说拿到大厂的高薪 Offer。性能优化
这些问题,将会成为你职业发展的绊脚石,不想办法解决这些,焦虑可能会像一块巨石,压在你身上。不少求职者的能力体系和企业用人需求有很大出入。架构
相信大多数从事Android开发的小伙伴一开始确定不是抱着改变世界的宏伟目标,说白了就是赚钱的多,之后技术牛逼了,年薪百万,走上人生巅峰,迎娶白富美~app
但工做过一年后你会发现,本身的工做重点就是将找各类各样的组件、框架,拖拖拽拽,改改样式。在极端状况下出现了问题后(好比部分机型上崩溃,加载图片慢),也不知道该如何解决!框架
形成这种局面的缘由:本身的意识不够,格局受限,在向上提高方面也没有完整的规划。
从自身规划的角度讲,技术上的进阶分以下几个阶段:
1.作好业务需求的功能。这个是初级程序员就应该有的能力。
2.解决极端状况下的技术问题,好比性能优化,OOM等。稍有点规模的公司,确定都会遇到这种问题,好比上文中说的App在部分机型上崩溃、页面加载不出来等。只是大部分程序员会以为难以复现,或者是由于小几率事件而忽略了。在忽略这些问题的过程当中,也放弃了进一步提高的可能性。还有一部分程序员是看到了这些问题,但一直不知道怎么解决,由于这些问题的产生基本都是要往底层框架去找缘由,而平时只关注上层的业务逻辑代码,于是没有深刻研究底层的原理,致使爱莫能助。
3.在开发框架和效率上作文章。举个例子,不少程序员说本身的精力都在和产品的撕中浪费了,但有没有想过,可以经过技术手段将本身从繁杂的无技术含量的工做中解救出来?好比是否可以作到只编写一次代码,或者改个配置参数就可以作到在不一样平台上运行。更高的要求是,可否将这些方案作成通用框架或产品。
其实没转行的Android程序员,大多都是但愿能在这方面继续学习提高的。而上面列举的几个阶段,首先要从思考方式上去逼迫本身不断地逼迫本身,不要偷懒。其次,要想按照上述阶段发展,还须要落在实处,在具体的技术体系中不断的学习。
举个例子:
对于OOM,须要知道有哪些优化工具可使用(Lint、MAT等),如何检测OOM,以及垃圾回收机制等深层次的原理。对于性能优化来讲,如何减小apk体积、资源动态加载等都是必会的。如下是性能优化相关思惟导图。
(Android性能优化思惟导图)
在体系化的学习过程当中,博客、书籍、视频课程都是较好的学习手段。
鉴于Android也是基于java语言的,所以不少与java相关的基础也是必须掌握的,好比《深刻理解Java虚拟机》、《Effective Java》等相关书籍也是必读的。
Android相关的书籍包括《Android权威编程指南》、《Android开发艺术探索》等,进一步的还能够去阅读Android相关源码,配合《Android源码设计模式解析与实战》等书籍,对阅读源码大有裨益。
(Android学习推荐书籍)
若是你以为本身看书太慢并且难以所有理解,博客不够系统,能够找一套进阶视频学习。没有的话我能够免费分享一套给你
做者目前在深圳,13年java转Android开发,在小厂待过,也去过华为,OPPO等,去年四月份进了阿里一直到如今。等大厂待过也面试过不少人。深知大多数初中级Android工程师,想要提高技能,每每是本身摸索成长,不成体系的学习效果低效漫长且无助。
咱们今年整理了一份阿里P7级别的Android架构师全套学习资料,特别适合有3-5年以上经验的小伙伴深刻学习提高。
主要包括腾讯,以及字节跳动,华为,小米,等一线互联网公司主流架构技术。若是你有须要,尽管拿走好了。
如下为个人整理,粉丝免费分享;
全套部分展现;7大专题
1.高级UI
UI这块知识是现今使用者最多的。当年火爆一时的Android入门培训,学会这小块知识就能随便找到不错的工做了。
不过很显然如今远远不够了,因此不少人会以为大环境很差了安卓开发要凉了。
这些人若是能自身检讨;企业要大家这些CV工程师的意义在哪呢?
你要本身亲自去项目实战,读源码,研究原理的呀。
2.性能优化
若是我是老板,我招你来是写代码的,不是写bug的。若是你的代码太烂,各类bug。我把你开了后从新招我的进来接手维护,甚至推到从新作,后面那个接盘的是否是要骂街?
若是你会性能调优,能解决项目中各类性能问题。那么拿20K真的不过度。你得具有深厚的代码功底,深刻学习源码原理以及使用工具进行测试和检查调优。
3.NDK开发
音视频,人工智能,这些是将来没办法阻挡的发展大趋势。我在猎聘网上看那些招聘岗位,要求精通NDK的薪资都在30-60K。追求高薪岗位的小伙伴,NDK开发必定要掌握而且去深挖
4.Flutter
火了一年多了,你工做不必定要用到。可是你出去面试(初级不多要求会),确定会问到的。
关于Flutter是否是将来,我无法肯定告诉你,我能肯定的就是你要去面试高薪岗位,你得掌握这种主流的新技术(大厂最看重的除了基础,技术水平外,就是你的学习能力。)
5.移动架构实战项目
架构师不是天生的,是在项目中磨练起来的,因此,咱们学了技术就须要结合项目进行实战训练,那么在Android里面最经常使用的架构无外乎 MVC,MVP,MVVM,可是这些思想若是和模块化,层次化,组件化混和在一块儿,那就不是一件那么简单的事了。
架构师尤为是移动开发,数量太少了。可能不少Android开发的小伙伴都没见过移动架构师。架构师薪资是什么样的水平呢?
阿里P6处于高级工程师,年薪四五十万左右
阿里P7处于资深高级,年薪百万左右
阿里P8属于架构师了,年薪可达170万以上
阿里的标准和薪资都是很高的,其它公司会有差距,但不会太大。
点击石墨文档,免费领取以上视频教程;
你有没有敢去想过,本身之后能达到架构师水平,突破百万年薪,实现财富自由呢?若是你以为这对于你来讲不可能,甚至很好笑,那么你就真的高不可攀了。