做了两年多的安卓,突然想转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 ...
随机推荐
- Windows10上基于Visual Studio Code安装Golang开发环境
GoLang简介 Go编程语言是一个开源项目,它使程序员更具生产力. Go语言具有很强的表达能力,它简洁.清晰而高效.得益于其并发机制,用它编写的程序能够非常有效地利用多核与联网的计算机,其新颖的类型 ...
- Keepalive介绍及工作原理
注:keepalive和Nginx和高可用没有关联. 1.什么是高可用,为什么要设计高可用? 1.两台业务系统启动着相同的服务,如果有一台故障,另一台自动接管,我们将国称之为高可用.2.系统可用率算法 ...
- nginx服务跳转
1.什么是页面跳转 将URL信息做改变 将URI信息做改变 完成伪静态配置 2.实现页面跳转的方法 http://nginx.org/en/docs/http/ngx_http_rewrite_mod ...
- 24、配置Oracle下sqlplus历史命令的回调功能
24.1.前言: 1.在oracle服务器上使用默认的sqlplus写sql命令时,如果写错了一个字母需要修改时,是无法通过 退格键消除错误的字母的,只能另起一行,重新写sql语句,而且也不能通过键盘 ...
- php微信jsapi支付 支付宝支付 两码合一
产品开会提出了这样的需求:一个二维码可以微信支付也可以支付宝支付 经过自己的钻研以及询问技术高人(本人代码一般般)和网上搜索 最终实现其功能 我用微信jsapi 和 支付宝网页支付 其实并不怎么难: ...
- Java8实战——自己的总结
java8 介绍 java8是2014年3月份,由Oracle发布的一个版本,又称之为jdk1.8,是现再我们在学习和工作中用的最多的一个版本. 在jdk1.8中,java8以添加非常多的新特 ...
- python根据窗口标题找句柄,将窗口前置活动
import time, threading, copy import win32api, win32con import win32gui import win32gui def zhaojb(aa ...
- [刘阳Java]_ResourceBundleViewResolver视图解析器_第7讲
ResourceBundleViewResolver是根据proterties文件来找对应的视图来解析"逻辑视图".该properties文件默认是放在classpath路径下的v ...
- 【论文阅读】套娃之 Blog for DMP Dynamic Movement Primitives
前言:原笔记Notion链接:https://www.notion.so/Blog-for-DMP-d34e83c05eb944ba989fc8bf9b0c0f7b 如有格式显示问题等请点击此处查看 ...
- [Vue warn]: “TypeError: Cannot read property ‘slideTo‘ of undefined“
问题: 使用Vue插件swiper,报如下bug: 解决: 报错原因: vue-awesome-swiper下载版本问题 解决: 如果写成下面这样报错: 则加上$ 反之,删除$ 问题解决