我是一名安卓开发者,现在自学java服务开发,因为公司需要。我觉得还是以自身需求为主吧,如果单纯的想转职业,那我建议还是web方向。
目前安卓市场已经饱和,连培训机构都没有安卓课程了安卓市场在两年前就已经开始饱和了,市场对技术的要求变高了。以前是只有懂得四大组件五大控件,基本就能找到工作,这个说的真不夸张。
现在的APP不仅要保持稳定性,还有流畅性、用户体验等等,而且功能页面也越来越复杂。现在app里面很多东西,都不是初级程序员能搞定的了。
另外市场对安卓的横向技术也有要求,以前是只需懂得APP开发,但现在是混合开发的时代,就是app里面嵌入H5,一些招聘要求上标明需要栋JS。
虽然安卓是用java开发,当然现在kotlin也可以开发安卓,这里我们不细聊。安卓使用的是java的阉割库,很多java的库安卓SDK都没有,另外安卓有一套新的framework层,
也是用java写的,所以会java学习起来有优势。但是如果你学习安卓不能达到中高级水平,很难找得到工作,因为市场饱和,初级程序员没啥竞争力。
我认为未来的发展web端要比安卓好,如果你想转的话,我建议你往web端转,这并不是说怕你抢饭碗啥的当然还是得从你自身出发,看你目前公司的需求是怎么样的,边学边开发是最好的,虽然学起来吃力,但是有人替你答疑解惑是很幸福的。我现在有问题搞不懂就会找我们公司的后台人员。
其次你可以看看你所在地的公司招聘要求,看看web端和安卓端的职位要求和薪资水平,综合考虑下吧!
我是非著名攻城狮,希望我的对您有用,感谢您的关注与支持!
作为一名IT从业者,同时也是一名计算机专业的教育工作者,我来一下这个问题。
首先,从Java语言的技术体系和当前的行业发展趋势来看,Java初学者可以按照Web开发方向来制定学习计划,一方面原因是Java Web开发方向的技术体系比较成熟,同时Web开发涉及到的技术面也相对比较广泛,可以为初学者奠定一个比较扎实的Java技术基础,未来在就业时也会有更多的选择,另一方面原因是当前Android开发方向的人才需求量已经趋于平缓,单纯从事Android开发很难会获得较高的岗位附加值。
初学者在选择学习方向的过程中,一方面要考虑自身的知识基础和能力特点,另一方面还需要考虑不同方向的发展前景。从发展前景来看,Web开发和Android开发虽然都是比较传统的方向,但是市场存量还是非常大的,如果要想在相关领域谋求一份工作岗位,还是相对比较容易的,但是由于移动互联网的增量时代(消费端)已经进入尾声,所以当前Android开发岗位的人才需求量并不大,这一点应该引起初学者的注意。
从整体的知识量来看,Java Web开发的知识量要更大一些,Java Web开发主要会涉及到三大块学习内容,其一是Java基础语法;其二是Web前端知识;其三是框架知识。从学习难度来看,Java基础语法部分的难度是相对比较高的,尤其是对于没有过编程语言基础的初学者来说,Java语言当中的抽象概念还是比较难于理解的。
学习Java Web开发除了要学习Java本身的内容之外,还需要重点关注一下前端开发知识,前端开发知识对于Java程序员的岗位附加值有比较明显的影响,如果Java程序员能够具备一定的前端开发知识,也会明显拓展自身的岗位边界。在云计算时代的应用级开发端,Java程序员的整体发展趋势比较趋向于全栈化,全栈程序员不仅更容易实现就业,发展空间也会更大一些。
前端开发知识虽然入门相对比较容易,但是由于前端知识比较多且杂,所以学习前端开发也需要一个系统的过程,而且一定要重视多做实验。初学者可以从基础的HTML语言开始学起,然后进一步学习JavaScript语言,另外最好能掌握一个流行的前端开发框架。
Java学习的第三个阶段是学习开发框架,开发框架对于Java程序员的工作效率有非常直接的影响,所以开发框架也是初学者的一个学习重点。目前Java程序员可以重点学习一下Spring系列框架,从SpringBoot开始学起就是不错的选择。
最后,如果初学者没有更多的学习时间,而且对于Android开发非常感兴趣,那么也可以走Android学习路线。如果未来想通过掌握Android开发获得一份工作,一定要从三个方面入手,其一是要重视提升自身的动手实践能力;其二是重视拓展自身的知识面,最好能够掌握一定的后端开发知识;其三是重视新技术的学习。
我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。
如果有互联网、大数据、人工智能等方面的问题,或者是考研方面的问题,都可以在评论区留言,或者私信我!
中庸的一定是各有优劣。我们先深入分析下两个方向,再来下结论。
先理一下这两个概念。android方向自然是移动端开发。web方向,这个用词不太准确。可能用服务器端开发更准确。
1、从需求量来说,肯定是服务器端多。
需求量多的原因自然是服务器方向的应用场景多。这个应该很好理解吧。服务器端,方方面面,各行各业的信息系统或Web系统都可以用Java来做。当然有些专业领域Java并不擅长,比如偏底层和算法。但是目前已知的众多商业场景都能看到Java的身影,从银行到教育,从网站到ERP。
而安卓以移动端APP为主,开发的是给直接用户使用的客户端。这个客户端访问的服务器端,很可能还是用Java开发的服务器端应用。虽然已经进入移动互联网时代了,但是还是会有大量软件没有或不需要移动端。或者移动端比较弱。比如很多专业性很强的应用。当然了,还有一些零散的智能设备现在也在使用安卓,比如智能电视。
2、从难易程度看,也是服务器端难;
安卓本质上就是客户端技术,简单的说就是界面技术,某种意义上也算另外一种前端人员。当然安卓往深层做也不简单,比如ROM定制之类会涉及到很多操作系统的知识。不过这里既然讨论的是Java的安卓方向,那么我们可以假设范围是在用开发移动端应用。
服务器端开发的基本面就会涉及到更广的知识领域。除了Java语法知识,还有各种开源框架、数据库知识及数据库的安装与使用、简单算法和数据结构知识、会玩一点服务器软件比如tomcat、也可能还需要会一点操作系统比如Linux的使用知识等等。
3、从就业机会上讲,安卓方向相对势弱,服务器端长期处于稳定需求中。在移动互联网刚兴起的那两年,安卓开发属于求大于供,现在市场早已饱和。且因为服务器端的市场更大,所以哪怕服务器端市场也是饱和的,但是其基数大得多,那么就业机会也会更大。
再一个,移动端应用开发还有一个流派就是混合式开发。就是用一个移动端的原生壳,套上纯前端代码(html、css、js)来开发很多交互性不是那么强(游戏app算强、新闻类app算弱)的应用。因为混合式开发有跨平台性,也就是一次开发,安卓和苹果都能用。所以在不少场景下会选择这种开发方式。这又抢占了一部分安卓开发人员的市场。
现在移动端的形态越来越多样,安卓、苹果、微信小程序、百度小程序、支付宝小程序、头条小程序,以后还有会鸿蒙APP。所以混合式开发一定会长期存在,且不断优化。这确实会压缩安卓开发人员的存在空间。
4、从待遇上讲,安卓已经过了最好的时候,服务器端一直比较稳定。曾经安卓求大于供的那两年,同等能力的安卓薪资会高于做服务器端的Java开发。现在安卓已是买方市场,安卓程序员没有那么高的议价能力了。虽然混合式开发的增加,安卓程序员的薪资不说下降吧,往上去的趋势肯定是没有的了。
服务器端的收入在可见的未来肯定是比较稳定的,波动不会太大,理论上会缓慢上涨。毕竟需求一直在那下不去,物价再涨你不涨说不过去啊。
5、从发展前景讲,服务器端更广。就前面的论述可以看到,服务器端开发对程序员的综合能力要求更高。且在一个项目中,从偏前端的人和做后端的人中选一个项目经理的话,一般都会优先考虑后端。一个是后端人员本身综合能力要求更高,一个是后端人员本来要对接的其他角色更多对项目的理解比做安卓的人更深。
综上,服务器端(也即是Web方向)稳定可期,安卓端相对需求量少但肯定会长期存在。
至于方向的问题和趋势问题,个人见解目前处于五五开,最重要的还是你的兴趣在哪里。
对于WEB方向侧重于网站类开发和系统类开发,而安卓则是应用类开发。
一般JAVAweb方向,除了电子商务网站,电商网站,系统网站,还有更多的企业管理系统,如联通、电信、移动等都有自己的大型管理系统,如供应链、人事、财务、项目管理等一些列WEB应用。
而安卓则是比较直观,对于APP应用来说也是百花齐放,但现在市场比较趋于比较饱和。例外一方面就是嵌入式的结合也比较多,其次如今智能化时代的来临,也是一个应用发挥的机会。
如果对于以后的转型来看肯定是WEB方向比较有利,能够接触到前后端以及运维以及数据库,可以说受众面相对来说比较广一点,对于安卓开发来说局限性就比较大一点。