做了两年多的安卓,突然想转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 ...
随机推荐
- 从 html 实现一个 react🎅
前言 我们认为,React 是用 JavaScript 构建快速响应的大型 Web 应用程序的首选方式.它在 Facebook 和 Instagram 上表现优秀.官网地址 react 的理念是在于对 ...
- MySQL数据库企业集群项目实战(阶段三)
MySQL数据库企业集群项目实战(阶段三) 作者 刘畅 时间 2020-10-25 目录 1 架构拓扑图 1 1.1 方案一 1 1.2 方案二 2 ...
- 校门外的树 (Vijos P1448)
题目链接 描述 校门外有很多树,有苹果树,香蕉树,有会扔石头的,有可以吃掉补充体力的-- 如今学校决定在某个时刻在某一段种上一种树,保证任一时刻不会出现两段相同种类的树,现有两个操作: K=1,K=1 ...
- 基于Redis的分布式锁设计
前言 基于Redis的分布式锁实现,原理很简单嘛:检测一下Key是否存在,不存在则Set Key,加锁成功,存在则加锁失败.对吗?这么简单吗? 如果你真这么想,那么你真的需要好好听我讲一下了.接下来, ...
- 4.3Unicode和ASCII码
- CentOS-配置YUM源加速(阿里云、Nexus3)
备份本地源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 配置CentOS6(aliyun ...
- bugku crypto wp上半部分汇总
1.滴答~滴 摩斯码,在线解开. 2. 栅栏密码,在线解就出flag了. 3. Ook解密,由.?!Ook组成密文,在线网站解密 4.这不是摩斯密码 有点像jsfuck,发现又不是,因为不会出现大于号 ...
- RabbitMQ入门教程 [转]
1.引言 RabbitMQ--Rabbit Message Queue的简写,但不能仅仅理解其为消息队列,消息代理更合适.消息队列主要解决应用耦合,异步消息,流量削锋等问题.实现高性能,高可用,可伸缩 ...
- ArcnLinux安装基础配置(二)
本文为对此ArchLinux安装使用教程网站中部分内容的总结和扩展补充,想看更详细的内容可以去此网站. 添加一个用户 useradd -m -G wheel -s /bin/bash cirry 设置 ...
- 学习 CLR 源码:连续内存块数据操作的性能优化
目录 C# 原语类型 1,利用 Buffer 优化数组性能 2,BinaryPrimitives 细粒度操作字节数组 提高代码安全性 3,BitConverter.MemoryMarshal 4,Ma ...