近几年相信很多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 进阶

  1. View
  2. App 的几种架构:MVC、MVP、MVVM
  3. Android 动画
  4. Material Design 系列
  5. Android 多媒体、Android视频开发
  6. Git
  7. Android 权限适配
  8. 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职业前景不太好,转还是不转?的更多相关文章

  1. 做了两年多salesforce平台开发,转Java的经历

    2015年毕业,转眼已经三年多了.三年对于现在的我,真的很快,一开始对软件开发的执着一直没有变.我是一个很普通很普通长沙的一个专科毕业.刚进大学,对于软件开发真的是小白,仅仅只是存在对于游戏,和桌面软 ...

  2. 安卓出现错误: 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 ...

  3. Android中可以做的两件坏事——破解锁屏密码和获取Wifi密码

    来源:http://blog.csdn.net/jiangwei0910410003/article/details/41800409 今天咋们来看一下我在现实中遇到的两个问题和解决方案 问题一:忘记 ...

  4. Android中可以做的两件坏事---破解锁屏密码和获取Wifi密码

    之前的文章一直在介绍OC,最近也是在找急忙慌的学习IOS,所以Android方面的知识分享就有点中断了,但是我现在还是要靠Android吃饭,所以不能Android的工作不能停呀,今天咋们来看一下我在 ...

  5. 使用<input>标签做了两个按钮, 按钮之间间距如何去掉

    遇到的问题: 使用<input>标签做了两个按钮, 按钮之间有个间距不知道怎么去掉. 如下图: 问题解决: <input>是内联块状元素(inline-block); 内联元素 ...

  6. 分享自己针对Automation做的两个成熟的框架(QTP 和Selenium)

    自己在google code中开源了自己一直以来做的两个自动化的框架,一个是针对QTP的一个是针对Selenium的,显而易见,一个是商业的UI automation工具,一个是开源的自动化工具. 只 ...

  7. Delphi XE7的安卓程序如何调用JAVA的JAR,使用JAVA的类?

    本文使用工具和全部源码下载: http://download.csdn.net/detail/sunylat/8190765 为什么我们要在Delphi XE7的安卓程序调用JAVA的JAR,使用JA ...

  8. Java后端程序员都做些什么?

    这个问题来自于QQ网友,一句两句说不清楚,索性写个文章. 我刚开始做Web开发的时候,根本没有前端,后端之说. 原因很简单,那个时候服务器端的代码就是一切:接受浏览器的请求,实现业务逻辑,访问数据库, ...

  9. 两种“新型”的javaweb后门(jspx和Java Logger)

    利用这个可以突破st2下   强制jsp跳转login.jsp 利用jspx解决jsp后缀被限制拿shell - Hack Blog | 黑客博客http://www.hackblog.cn/post ...

随机推荐

  1. MySQL数据库性能优化与监控实战(阶段四)

    MySQL数据库性能优化与监控实战(阶段四) 作者 刘畅 时间 2020-10-20 目录 1 sys数据库 1 2 系统变量 1 3 性能优化 1 3.1 硬件层 1 3.2 系统层 1 3.3 软 ...

  2. 资源:VMware秘钥许可证

    一. 激活密钥 YG5H2-ANZ0H-M8ERY-TXZZZ-YKRV8 UG5J2-0ME12-M89WY-NPWXX-WQH88 UA5DR-2ZD4H-089FY-6YQ5T-YPRX6 GA ...

  3. SpringMVC(4)数据绑定-1

    在SpringMVC(3)URL请求到Action的映射规则我们介绍了请求是如何映射到一个action上的,下一步当然是如何获取到请求中的数据,这就引出了本篇所要讲的内容-数据绑定. 首先看一下都有哪 ...

  4. linux 中获取进程和kill进程的几种方法

    ps: ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态.进程是否结束.进程有没有僵尸.哪些进程占用了过多的资源等等. 注意:ps是显示瞬间进程的状态, ...

  5. MySQL基础篇(一)

    本文主要内容为MySQL的基础语句以及正则表达式等内容. 本文操作的数据库内容存在个人github:https://github.com/YuanGao-1/blog_demo.git init_sc ...

  6. 机器学习Sklearn系列:(三)决策树

    决策树 熵的定义 如果一个随机变量X的可能取值为X={x1,x2,..,xk},其概率分布为P(X=x)=pi(i=1,2,...,n),则随机变量X的熵定义为\(H(x) = -\sum{p(x)l ...

  7. C语言:统计字符个数及种类

    #include <stdio.h> int main(){ char c; //用户输入的字符 int shu=0;//字符总数 int letters=0, // 字母数目 space ...

  8. python:录屏录音

    import pyaudio import wave from PIL import ImageGrab import cv2 import threading import time from nu ...

  9. 基于FPGA的图像镜像

    图像镜像,一种较为常见的图像处理操作,分为水平镜像.垂直镜像.对角镜像.水平镜像即处理后的图像与原图像关于垂直线对称,垂直镜像为处理后的图像与 原图像关于水平线对称,对角镜像则关于对角线对称. 关于低 ...

  10. Tutorial_6 运行结果

    1.buyer_favorites.txt 2.代码 package mapreduce; import java.io.IOException; import java.util.Iterator; ...