从事安卓开发工作,要不要转java后台?
目前安卓开发可以***用两种开发语言,一个是Java,另一个是kotlin,目前大部分Android开发人员都在***用J***a语言,但是从Google的态度来看,也许未来kotlin的发展前景会不错,原因自然离不开与Oracle喋喋不休的官司。
对于安卓程序员来说,相比于转向J***a后端开发来说,转向前端开发也许更适合,原因有以下几点:
第一:安卓开发本质上也是前端开发。目前不少团队已经把安卓程序员和iOS程序员并入到前端团队,从反馈的效果来看还是不错的。安卓程序员与前端程序员在工作方式上有很多相同点,学习前端知识能进一步丰富自身的知识结构,同时会明显提升自己的职场竞争力。
第二:安卓开发的知识结构可以向前端开发迁移。前端开发需要学习html5、CSS和JavaScript,其中J***aScript是学习的重点,而安卓程序员自身的编程经验是可以向J***aScript迁移的,这会明显降低学习的时间成本。目前在安卓开发的过程中也会涉及到一些前端的开发,所以这个转换并不会有较大的不适。
第三:前端开发前景不错。目前随着node.js的应用,J***aScript正在从传统的前端走向后端,未来J***aScript程序员完全可以做全栈程序员。另外,J***aScript在嵌入式领域也有广泛的使用,所以前端开发未来的发展空间还是非常广阔的。
其实对于安卓程序员来说,转向后端开发也是一个选择,但是转向后端开发需要具备一定的基础,否则很难在后端开发岗位上有所突破。如果想在后端开发的道路上走的更远,一方面要具备扎实的数学基础,另一方面要系统的学习一下操作系统体系结构,这些都是后端程序员必须掌握的内容。
由于Oracle对于J***a语言设置了清晰的商业化路线,所以未来J***a的发展现在看来并不十分明朗,毕竟J***a语言经过了多次版本迭代,语言自身也比较重,这也是为什么在大数据领域,Python正在边缘化J***a的原因。
如果要转后端,也许Go是一个不错的选择。
作者简介:中国科学院大学计算机专业研究生导师,从事IT行业多年,研究方向包括动态软件体系结构、大数据、人工智能相关领域,有多年的一线研发经验。
已现在的市场需求来看,Android供需已经趋于稳定,且已持续一段时间了,不是说Android已经被淘汰,而是像iOS一样趋于缺乏中高级人才。建议多扩展些其他语言或方向,网络协议,架构等,足够的技术支持,相信您一定能技术,事业等多方面发展顺畅!
实话说,做后台你所能掌握的信息比搞app时有价值的多,而且后者是直接面向用户的,你的工作成果将第一时间经受用户的考验,换句话说,前端开发者很多时候是替罪羊,不论其他部门给你挖下多大的坑,用户只会认为是你的过失,加班最多的也常是搞前端和App的;后台则不然,虽然这需要你有着很好的功底,但是在做出成品之后,它的维护周期会比较长,一般不会进行较大的变动,并且用户对它的变动也没有那么敏感。另外,做后台的话你需要兼顾很多方面的因素,这样你对项目的整体认识会提升一个档次。
所以说,如果你想拥有更深入的发展,接近项目核心,转后台是一个不错的选择,搞后台是一个难精的工作,由于很多企业对其重要性的认识不足,以为能用就行,使得出色的后端[_a***_]在国内仍然较为稀缺。你已经做过***开发,要是再能在后台上积累一些经验,以后就容易往全栈或是架构师的方向发展,祝你好运。
如果从安卓转后端,这个转变比较大的,等于重新变更技术路径,不亚于从.net平台转到j***a平台,主要安卓开发基本属于前端,而J***a开发的后台技术部分现在深厚的技术栈,不错的技术背景给后来者设置了不少的障碍,我建议与其转向后台,不如深入安卓的体系结构,做些深入的学习,其后在学习js的前端多下些功夫,或在linux上花些功夫,现在linux在商业领域尤其平板一块需求还是很旺盛的,提升一下前端设计的理论和系统体系的深度,更有竞争力,j***a后台开发热闹的很,但是人也多啊。***裸的红海,高薪技能要求高,工作竞争大,压力大,有后台崩了跳楼的,你看有前端闪退跳楼吗?只要前端永远都有拿出一流的设计开发产品,那就很有竞争力。
即便将来安卓平台失宠,也可以用linux系统开发技能或者js开发技能临时混口饭吃,都是问题不大的。
什么是后端编程?
一般来说,我们只需要将应用程序简单地分成前端和后端两个开发任务。这种情况也有其交流习惯的原因(就像我们生活中的许多称呼,语言,文字在熟悉中,都会用简化的方式来代替完整的称呼)。相应地,我们也会按照大家熟悉的方式将可归纳的能力范围整合到某个名词下,所以后端开发工程师也会负责数据库的开发。
用过软件或应用的人都知道,我们将简单地将用户分为看得见和看不见两类。我们习惯把用户看到的称为前端,而把用户看不到的部分称为后端。一般用户看到的东西分为视觉、功能、交互方式、内容等等,对于开发来说,主要是功能和交互体验,这些可以简单划分为前端部分,前端使用的开发语言有: html、 css、 js等,但是不代表前端的技术难度就很简单,一款软件的体验好与坏往往是无法区分的。
前段就是你看到的网页 动画等 后端就是负责处理数据的,最简单的例子,你登录网站不是要账户密码吗?输入以后就送给后端处理,后端就会调用数据库判断用户密码是不是正确。再给你返回状态。这就是后端。
开发网站项目会分为前端和后端两块业务,前端就是我们浏览的网页,利用css、js、html标签语言组合成的html文件通过浏览器渲染出来的,这是前端编程;我们可以通过前端发送请求给到服务器,服务器会根据不同的请求作出相应的处理响应,这处理响应也是通过代码逻辑来实现,也就是后端编程。
举一个开发H5的例子:
一般来说,我们只需要将应用程序简单地分成前端和后端两个开发任务。这种情况也有其交流习惯的原因(就像我们生活中的许多称呼,语言,文字在熟悉中,都会用简化的方式来代替完整的称呼)。相应地,我们也会按照大家熟悉的方式将可归纳的能力范围整合到某个名词下,所以后端开发工程师也会负责数据库的开发。
用过软件或应用的人都知道,我们将简单地将用户分为看得见和看不见两类。我们习惯把用户看到的称为前端,而把用户看不到的部分称为后端。一般用户看到的东西分为视觉、功能、交互方式、内容等等,对于开发来说,主要是功能和交互体验,这些可以简单划分为前端部分,前端使用的开发语言有: html、 css、 js等,但是不代表前端的技术难度就很简单,一款软件的体验好与坏往往是无法区分的。
举例来说,我在标题新闻中写了一个小程序,相应的用户看到的功能是前端,然后用户使用我开发的小程序,获取我的功能并反馈,最常见的是数据反馈,比如用户注册我的小程序,行为数据通常由后端工程师处理,其实这很简单,后端开发是基于服务器环境的开发,因此我们也称它为服务器语言,另外,不同的平台有自己不同的开发文档作为提交产品的规范,这也和后端开发有关。
通过下面一张图来表达下前端和后端开发的关系:
以上,谢谢。
后端就是服务端,是相对前端而言的。后端主要是处理业务逻辑并且和数据库交互,把数据按预定的逻辑处理完以后返回给前端,并且接受前端的请求对前端的请求作出响应。我们能看到的界面都可以理解为前端,比如Web端的界面,***端,小程序端,H5端等。大家常说的后台或控制台界面也是前端。