移动开发兴起的时间并不长,但发展十分迅猛。
这些天经历了一些工作上的波折,出来面试找工作,发现市场的变化实在太快了。
自己进入了一个泥潭,技能不够,面试时毫无优势。
于是自己思考了许久,到底是哪里出了问题,写下一些分析和感悟,希望自己能够走出这个泥潭,找到自己正确的方向。
移动开发兴起的时间并不长,但发展十分迅猛。我们可以通过一些时间点来看:
- 2011年8月推出小米1,当时我是第一批前10w预约的用户,拿到手了都已经是2012年初(熟练的耍猴功底)。
- Android 4.1Jelly Bean(果冻豆):2012年6月28日;
- Android 4.2Jelly Bean(果冻豆):2012年10月30日;
- Android 4.4KitKat(奇巧巧克力): 2013年9月4日;
4.X系统是在移动开发兴起时使用人数最多的,大部分开发也正是在 API 16的时候加入进来。
来看一下当时的大环境,在2013-2015这几年,移动开发处于风口,大量的投资者和公司都想做个 APP 出来,无数的人和资金涌向互联网移动开发。一时间造成了前端开发供不应求,大量的零经验培训应运而生,也有不少后台转行学习前端,我正巧是这批人的其中一员。
这个时期大部分的公司,想做的 APP 都只有一个功能点 - 数据展示。
数据展示应该是 APP 最基础的功能。说白了,APP 就是一个给用户展示数据的前端,例如:淘宝、京东、美团等,就是将商品信息等数据,展示在 APP 上。而 APP 还需要一些美化,例如动画效果、自定义控件等等。也就是说,这些在移动开发风口投入到 Android 开发中的,大部分都是做** UI 界面开发**,这也是最常见 Android开发。
回到现在,如果有人说想学习 Android,很多人都是不推荐的;如果有人想跳槽,那么大多数人给的建议是不要裸辞,为什么?
时代变了。
在市场的激烈竞争和淘汰下,有很多公司都已经不复存在了。公司没了,但开发人员还在这个市场中,这就造成了开发人员供大于求,就连培训机构都不开设 Android/iOS 培训班。
同时有经验和没经验的相差不大,打个比方,一个有经验开发人员可以通过各种方法比如之前的项目、GitHub、Google等等,快速的将项目打造完毕,不用加班效果还很不错;
而一个刚出来没经验的开发人员,通过加班加点、百度Google、自己琢磨等方法,还是能打造出一个能用的项目,虽然效果可能没有那么好。
这让有经验的开发的优势变的不那么明显。更重要的是工资摆在哪,每个老板都想花更少的钱做出产品,从业人员基数大、需求少、经验差距不明显等因素,造成了一个工作难找的现象。
移动端开发的人基本都同意工作不好找,并且都认为这是属于正常现象,市场归于常态。那么是不是也用这样的话来安慰自己:多找找总能找到好的。
不对,应该多学习,从而提高自己竞争力。
从2013年到现在,短短的4年时间,技术变更太迅猛。原先以为在学习了 UI 开发,花个2-3年时间巩固加强,在寻找其他方向就可以,但实际上完全没有巩固的时间,在巩固旧技术的时候,新技术已经诞生并应用,也就是说不应该去巩固熟悉技术,而是要不断的学习和使用新技术。
现在市场依然有一大堆开发人员在和你竞争同一个岗位,如果你仅仅只是比别人多做了两个项目,多用了几个第三方 SDK,多用了几个开源库,那么一下子就落后了。因为使用的这些东西都是别人已经使用过的。
想从开发人群中脱颖而出,最关键的还是掌握别人需要花时间来才能追赶你的技术。
如果现在的工作还只是做一些没有什么难度的需求,写个RecycleView,把数据展示出来,修复一下测试提出的Bug,自己封装了几个方法,为此就洋洋自喜:我这代码写的真不错!那么可能就要思考一下这个问题:你做的这些,换成别人来做需要多久时间?
你想到的别人早就已去做了。
从哪些方面入手,该学什么,这也是我这几天在摸索的东西。个人觉得,首先需要的是多方面的了解,也就是广度,其次再谈深度。不能一味的只做 UI 开发,应该更多方面去了解和学习其他方面的技术。有了广度之后,结合工作上的内容,深入学习,才能真正拥有核心技术,让自己更有竞争力。
以下是我自己最近看到的一些技术点
-
反编译
反编译这块我自己也不是很了解,个人觉得应该是类似360加固的这种,需要用到这个技术.
网上很多反编译的文章都停留在2014年,相关工具早已不能使用,可以搜索关键词:Smali 、jd-gui。
-游戏开发
游戏开发已经脱离了 APP 层面,需要更多技术来支持
自勉。