做了两年多的安卓,突然想转Java后端,感觉Android职业前景不太好,转还是不转?

近几年相信很多Android开发者都有过这种想法,最终还是有些Android 开发选择了转行,但是还有些开发者选择了坚持。
因为现在Android开发确实竞争很大,很多公司抛出几个岗位,每天能收到成百上千的简历。说实话这些简历能让招聘者停留5秒以上的都很少,有些三到五年的开发者还可以走捷径,通过内推等形式进入公司。
所以剩余的这几百人成天都在说工作难找,Android开发进入寒冬了。这也是初级开发人员数量和企业需求极其不平衡。
转行还是坚守
我觉得吧,首先抛开其他因素,就拿人云亦云来说,在当下这个互联网时代,很多技术一下子就火起来了,这个时候匹配的岗位需求肯定也多了,难道每次都想着换方向,转岗?
显然这个是不对的,这些火热的技术发展都会趋于平缓。如果还是思路不变,那么就会永远的原地踏步。
转行,就是抛弃自己现有的基础,重新开始!身边也有不少Android开发的小伙伴转行Java,但是他们对于目前的市场还是过于乐观,Java市场竞争不大吗?从0开始的你,甚至连应届生都比不过……
所以,对于有Android开发经验的同学,更多应该想想怎么往深探索,而不是一味想着换方向,不管换到哪个方向,都会面对从初级到高级到资深再到专家的时间点。所以我认为正确的职业规划应该是金字塔形,核心竞争力一定要扎实!
Android程序员的发展空间有多大?
这个数据是不好估量的,而且也是无法具体形容的。我们只能通过程序员的职位和晋升空间,以及程序员的薪资水平来判断他们的发展空间有多大。当然这些也都是按照程序员的个人能力来看的。
据有关资料来看,Android程序员的发展主要是三个大的阶段:
第一阶段
由初级工程师发展为中级工程师,在这个阶段程序员的知识水平和专业技能将会有很大的提升,薪资待遇也会由原来的年薪5-10w上升为12-20w。
第二阶段
由中级工程师发展为高级工程师,这个阶段程序员积攒了大量的资本和大量的人脉,很多Android程序员可能会选择创业,但是大部分会选择继续深造。薪资待遇也由原来的15-20w上升到20-35w。
第三阶段
由高级工程师转为技术专家或者架构师,往CTO(首席技术官)的方向发展,薪资水平由原来的20-35w上升到50-200w。
Android 开发者该如何进阶?
作为Android 开发者,该怎样规划自己的学习路线,然后一步一个脚印的向中高级进阶呢?下面给大家梳理一下:
一、Java基础
1 . 面向对象的三大特性
2 . 程序设计的6大原则
3 . 设计模式
4 . Java 字符串相关
5 . Java 线程池
6 . Java 集合
7 . Java 内存模型
二、Android 基础
1 . Android 四大组件
2 . Android 常用的几种布局
3 . Android Studio
4 . Fragment
5 . 数据库相关
6 . 常用控件基础控件
三、Android 进阶
- View
- App 的几种架构:MVC、MVP、MVVM
- Android 动画
- Material Design 系列
- Android 多媒体、Android视频开发
- Git
- Android 权限适配
- Gradle
四、学习了解开源库
1.热修复设计
2.插件化框架设计
3.组件化框架设计
4.图片加载框架
5.网络访问框架设计
6.RXJava 响应式编程框架设计
7.IOC 架构设计
8.Android 架构组件
五、收集自己的工具类库
你现在就可以看看你所做的项目,里面是不是有一个 utils 包 ?不用看了,肯定有,里面有你使用的各种各样的工具类。
也许你会跟我有同样的感觉,一些常用的操作如,读写文件、Bitmap转换、日期格式化等等。当我们使用的时候,我们很难一下子就将它写出来,我们可能会记得以前有个项目使用过,然后去翻以前的项目,有的可能去 google 下,拷贝一段代码。
这些都是比较常用的功能,并且代码相对固定,我们可以将我们平时使用的工具类收集到一个单独的类库中。然后将其分好类:
1.文件操作相关 FileUtils
2.Bitmap 操作相关 BitmapUtils
3.日期格式化相关 DateUtils
上面只是举了三个例子,所有的工具类都可以收集。
当你工作3年或者5年之后,你再来看一看这个库,或许就会不一样了。
六、学会思考和总结
当我们学习一个功能或者解决一个问题的时候,我们可以把整个过程梳理总结一下,如果我们学习了或者解决问题之后不做思考和总结,那么过一段时间或许就全部忘了。好记性不如烂笔头,梳理一下,记一个笔记或者写一篇博文。这样做有很多好处:
1, 有利于加深我们的记忆。
2, 脉络梳理清楚了,有助于我们更深刻的理解。
3,就算以后忘记了,再来翻一下自己的笔记或者博客,再看一遍,就又想起来了。
4 ,还可以帮助其他人,避免遇到相同的问题。
当我们做完一个项目的时候,留给自己一些时间做一些梳理和总结吧,如果你还没有这样的习惯,那么就从现在开始吧!总之,形成自己的知识体系很重要。
七、最后
本文梳理了Android 开发者进阶过程学习的一些知识点和一些我个人的建议。做为一名Android开发者,我想分享给大家自己对于技术一些归纳和总结,制成了完整版的学习手册,希望能帮助到有心在技术这条道路上一路走到黑的朋友!

由于篇幅限制,展示了部分内容截图,需要这些文档资料的,可以点赞支持一下我,然后【点击这里】免费阅读下载。
做了两年多的安卓,突然想转Java后端,感觉Android职业前景不太好,转还是不转?的更多相关文章
- 做了两年多salesforce平台开发,转Java的经历
2015年毕业,转眼已经三年多了.三年对于现在的我,真的很快,一开始对软件开发的执着一直没有变.我是一个很普通很普通长沙的一个专科毕业.刚进大学,对于软件开发真的是小白,仅仅只是存在对于游戏,和桌面软 ...
- 安卓出现错误: java.lang.ClassCastException: android.widget.TextView cannot be cast to android.widget.EditText
Caused by: Java.lang.ClassCastException: Android.widget.TextView cannot be cast to android.widget.Ed ...
- Android中可以做的两件坏事——破解锁屏密码和获取Wifi密码
来源:http://blog.csdn.net/jiangwei0910410003/article/details/41800409 今天咋们来看一下我在现实中遇到的两个问题和解决方案 问题一:忘记 ...
- Android中可以做的两件坏事---破解锁屏密码和获取Wifi密码
之前的文章一直在介绍OC,最近也是在找急忙慌的学习IOS,所以Android方面的知识分享就有点中断了,但是我现在还是要靠Android吃饭,所以不能Android的工作不能停呀,今天咋们来看一下我在 ...
- 使用<input>标签做了两个按钮, 按钮之间间距如何去掉
遇到的问题: 使用<input>标签做了两个按钮, 按钮之间有个间距不知道怎么去掉. 如下图: 问题解决: <input>是内联块状元素(inline-block); 内联元素 ...
- 分享自己针对Automation做的两个成熟的框架(QTP 和Selenium)
自己在google code中开源了自己一直以来做的两个自动化的框架,一个是针对QTP的一个是针对Selenium的,显而易见,一个是商业的UI automation工具,一个是开源的自动化工具. 只 ...
- Delphi XE7的安卓程序如何调用JAVA的JAR,使用JAVA的类?
本文使用工具和全部源码下载: http://download.csdn.net/detail/sunylat/8190765 为什么我们要在Delphi XE7的安卓程序调用JAVA的JAR,使用JA ...
- Java后端程序员都做些什么?
这个问题来自于QQ网友,一句两句说不清楚,索性写个文章. 我刚开始做Web开发的时候,根本没有前端,后端之说. 原因很简单,那个时候服务器端的代码就是一切:接受浏览器的请求,实现业务逻辑,访问数据库, ...
- 两种“新型”的javaweb后门(jspx和Java Logger)
利用这个可以突破st2下 强制jsp跳转login.jsp 利用jspx解决jsp后缀被限制拿shell - Hack Blog | 黑客博客http://www.hackblog.cn/post ...
随机推荐
- ECS实例中的应用偶尔出现丢包现象并且内核日志(dmesg)存在“kernel: nf_conntrack: table full, dropping packet”的报错信息
问题描述 连接ECS实例中的应用时偶尔出现丢包现象.经排查,ECS实例的外围网络正常,但内核日志(dmesg)中存在"kernel: nf_conntrack: table full, dr ...
- A Simple Math Problem 矩阵打水题
A Simple Math Problem Lele now is thinking about a simple function f(x).If x < 10 f(x) = x.If x & ...
- CRM系统对企业管理的作用有多大?
随着市场经济的发展,对任何行业的企业来说,客户都是非常重要的一个部分.CRM系统帮助企业做到以客户为中心,它可以根据客户的具体要求进行跟进和反馈,在很大程度上提高公司的客户服务水平和客户满意度,进而提 ...
- Python分析【公众号】历史评论,看看大家的留言情况!
大家好,我是辰哥~~~ 辰哥玩公众号有一段时间了,这期文章分析一波读者的留言情况,不仅可以对公众号的各位铁粉一目了然,还可以通过分析的结果对公众号的经营进行更好的规划.如读者留言的内容通常是内容是什么 ...
- SpringBoot:Service层使用@Autowired 注解 mapper对象爆红问题
问题点 这个报错可能导致程序运行大面积爆红 这个报错会逼疯强迫症 解决方法 为避免程序运行报错 ,需要在Application.class添加注解@MapperScan(mapper包位置) @Spr ...
- linux 之管道命令与重定向
一.Linux重定向 重定向能够实现Linux命令的输入输出与文件之间重定向,以及实现将多个命令组合起来实现更加强大的命令.这部分涉及到的比较多的命令主要有: 涉及到的比较多的命令主要有: cat:连 ...
- LeetCode周赛5214
我去,暴力超时,没啥人情味了.难受,一看答案,结果是dp的题目... 思路分析: 1.用个表记录下每个数当前的最大长度,同时是等差,说明有上一个数,那么当前的长度就是上一个数最大加一
- kong配置service和route实现简单API代理
目录 通过konga连接kong实现API接口代理 1. ADD NEW SERVICE 2. ADD ROUTE 3. 验证API 代理 浏览器验证 请求kong api kong使用Admin A ...
- 开发必备linux命令大全-稳赚不亏
我们的服务一般都是在linux系统运行,因此了解一些关于linux命令是必须.接下来将一一详细介绍一些常用的linux的命令 文件操作 远程登录与操作 磁盘挂载 进程管理 启动和结束 系统性能参数查看 ...
- ADB命令 连接WIFI检测序列号
利用ADB 电脑与手机相连 查看序列号: adb shell getprop ro.serialno 查看机器的SN号 adb shell getprop 查看机器的全部信息参数 查看IP地址: a ...