Java往web方向比较好还是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方向)稳定可期,安卓端相对需求量少但肯定会长期存在。

我是一名安卓开发者,现在自学java服务开发,因为公司需要。我觉得还是以自身需求为主吧,如果单纯的想转职业,那我建议还是web方向。目前安卓市场已经饱和,连培训机构都没有安卓课程了安卓市场在两年前就已经开始饱和了,市场对技术的要求变高了。以前是只有懂得四大组件五大控件,基本就能找到工作,这个说的真不夸张。现在的APP不仅要保持稳定性,还有流畅性、用户体验等等,而且功能页面也越来越复杂。现在app里面很多东西,都不是初级程序员能搞定的了。另外市场对安卓的横向技术也有要求,以前是只需懂得APP开发,但现在是混合开发的时代,就是app里面嵌入H5,一些招聘要求上标明需要栋JS。虽然安卓是用java开发,当然现在kotlin也可以开发安卓,这里我们不细聊。安卓使用的是java的阉割库,很多java的库安卓SDK都没有,另外安卓有一套新的framework层,也是用java写的,所以会java学习起来有优势。但是如果你学习安卓不能达到中高级水平,很难找得到工作,因为市场饱和,初级程序员没啥竞争力。我认为未来的发展web端要比安卓好,如果你想转的话,我建议你往web端转,这并不是说怕你抢饭碗啥的当然还是得从你自身出发,看你目前公司的需求是怎么样的,边学边开发是最好的,虽然学起来吃力,但是有人替你答疑解惑是很幸福的。我现在有问题搞不懂就会找我们公司的后台人员。其次你可以看看你所在地的公司招聘要求,看看web端和安卓端的职位要求和薪资水平,综合考虑下吧!我是非著名攻城狮,希望我的回答对您有用,感谢您的关注与支持!

首先可以体系性的了解下web和android的技术栈大纲,找一些可以跑起来的demo看看,哪种比较合适自己。本人建议web相关(包含h5),好学,容易上手,招聘岗位也比较多。

至于方向的问题和趋势问题,个人见解目前处于五五开,最重要的还是你的兴趣在哪里。对于WEB方向侧重于网站类开发和系统类开发,而安卓则是应用类开发。一般JAVAweb方向,除了电子商务网站,电商网站,系统网站,还有更多的企业管理系统,如联通、电信、移动等都有自己的大型管理系统,如供应链、人事、财务、项目管理等一些列WEB应用。而安卓则是比较直观,对于APP应用来说也是百花齐放,但现在市场比较趋于比较饱和。例外一方面就是嵌入式的结合也比较多,其次如今智能化时代的来临,也是一个应用发挥的机会。如果对于以后的转型来看肯定是WEB方向比较有利,能够接触到前后端以及运维以及数据库,可以说受众面相对来说比较广一点,对于安卓开发来说局限性就比较大一点。

我认为先向web方向学习,掌握后端微服务等开发技术,再对前端和andriod开发技术学习,这样会更理解软件开发整体架构和有发展潜力