❶ 前端程序员和后端程序员区别是什么,分别要具备哪些能力
工作内容还是有很大区别的,后端程序员主要做一些网络的请求封装、通知、数据的封装,前端更注重拿到后端给的数据如何更好的展示。
❷ 程序员分前端与后端,那么后端程序员都做些什么看完就知道了
我刚开始做Web开发的时候,根本没有前端,后端之说。
原因很简单,那个时候服务器端的代码就是一切: 接受浏览器的请求,实现业务逻辑,访问数据库,用JSP生成HTML,然后发送给浏览器。
即使后来Javascript在浏览器中添加了一些AJAX的效果,那也是锦上添花,绝对不敢造次。因为页面的HTML主要还是用所谓“ 套模板 ”的方式生成:美工生成HTML模板,程序员用JSP,Veloctiy,FreeMaker等技术把动态的内容添加上去,仅此而已。
那个时候最流行的图是这个样子:
在最初的J2EE体系中,这个 表示层 可不仅仅是浏览器中运行的页面,还包括Java写的桌面端,只是Java在桌面端太不争气, 没有发展起来。
每个程序员都是所谓 “全栈”工程师 ,不仅要搞定HTML, JavaScript, CSS,还要实现业务逻辑,编写访问数据库的代码。等到部署的时候,就把所有的代码打成一个WAR包,往Tomcat指定的目录一扔,测试一下没问题,收工回家!
不差钱的公司会把程序部署到Weblogic,Websphere这样的应用服务器中,还会用上高大上的EJB。
虽然看起来生活“简单”又“惬意”,但实际上也需要实现那些多变的、不讲逻辑的业务需求,苦逼的本质并没有改变。
随着大家对浏览器页面的 视觉和交互 要求越来越高,“套模板”的方式渐渐无法满足要求,这个所谓的表示层慢慢地迁移到浏览器当中去了,一大批像Angular, ReactJS之类的框架崛起,前后端分离了!
后端的工程师只负责提供接口和数据,专注于业务逻辑的实现,前端取到数据后在浏览器中展示,各司其职。
像Java这样的语言很适合去实现复杂的业务逻辑,尤其是一些MIS系统,行业软件如税务、电力、烟草、金融,通信等等。 所以剥离表示层,只做后端挺合适的。
但是如果仅仅是实现业务逻辑,那后端也不会需要这么多技术了,搞定SSH/SSM就行了。
互联网,尤其是移动互联网开始兴起以后,海量的用户呼啸而来,一个单机部署的小小War包肯定是撑不住了,必须得做分布式。
原来的单个Tomcat得变成Tomcat的 集群 ,前边弄个Web服务器做请求的 负载均衡, 不仅如此,还得考虑状态问题,session的一致性。
(注:参见文章《小白科普:分布式和集群》)
业务越来越复杂,我们不得不把某些业务放到一个机器(或集群)上,把另外一部分业务放到另外一个机器(或集群)上,虽然系统的计算能力,处理能力大大增强,但是这些系统之间的通信就变成了头疼的问题, 消息队列 (MQ), RPC框架 (如Dubbo)应运而生,为了提高通信效率,各种 序列化的工具 (如Protobuf)也争先空后地问世。
单个数据库也撑不住了,那就做数据库的 读写分离 ,如果还不行,就做 分库和分表 ,把原有的数据库垂直地切一切,或者水平地切一切, 但不管怎么切,都会让应用程序的访问非常麻烦,因为数据要跨库做Join/排序,还需要事务,为了解决这个问题,又有各种各样“ 数据访问中间件 ”的工具和产品诞生。
为了最大程度地提高性能,缓存肯定少不了,可以在本机做缓存(如Ehcache),也可以做 分布式缓存 (如Redis),如何搞 数据分片 ,数据迁移,失效转移,这又是一个超级大的主题了。
互联网用户喜欢上传图片和文件,还得搞一个 分布式的文件系统 (如FastDFS),要求高可用,高可靠。
数据量大了,搜索的需求就自然而然地浮出水面,你得弄一个支持全文索引的 搜索引擎 (如Elasticsearch ,Solr)出来。
林子大了,什么鸟都有,必须得考虑 安全 ,数据的加密/解密,签名、证书,防止SQL注入,XSS/CSRF等各种攻击。
前面提到了这么多的系统,还都是分布式的,每次上线,运维的同学说:把这么多系统协调好,把老子都累死了。
得把持续集成做好,能自动化地部署,自动化测试(其实前端也是如此),后来出现了一个革命化的技术 docker , 能够让开发、测试、生成环境保持一致,系统原来只是在环境(如Ngnix, JVM,Tomcat,MySQL等)上部署代码,现在把代码和环境一并打包, 运维的工作一下子就简化了。
公司自己购买服务器比较贵,维护也很麻烦,又难于弹性地增长,那就搞点虚拟的服务器吧,硬盘、内存都可以动态扩展(反正是虚拟的), 访问量大的时候多用点,没啥访问量了就释放一点,按需分配,很方便,这就是 云计算 的一个场景。
随着时间的推移,各个公司和系统收集的数据越来越多,都堆成一座大山了,难道就放在那里白白地浪费硬盘空间吗?
有人就惊奇地发现,咦,我们利用这些数据搞点事情啊, 比如把数据好好分析一下,预测一下这个用户的购买/阅读/浏览习惯,给他推荐一点东西嘛。
可是这么多数据,用传统的方式计算好几天甚至好几个月才能出个结果,到时候黄花菜都凉了,所以也得利用分布式的技术,想办法把计算分到各个计算机去,然后再把计算结果收回来, 时势造英雄, Hadoop 及其生态系统就应运而生了。
之前听说过一个大前端的概念,把移动端和网页端都归结为“前端”,我这里造个词“大后端”,把那些用户直接接触不到的、发生在服务器端的都归结进来。
现在无论是前端还是后端,技术领域多如牛毛,都严重地细分了,所以 我认为真正的全栈工程师根本不存在,因为一个人精力有限,不可能搞定这么多技术领域,太难了 。
培训机构所说的“全栈”,我认为就是前后端还在拉拉扯扯,藕断丝连,没有彻底分离的时候的“全栈”工程师。
那么问题来了, 后端这么多东西,我该怎么学?
之前写过一篇文章叫做《上天还是入地》,说了学习的广度和深度,在这里也是相通的。
往深度挖掘,可以成为某个技术领域的专家,如搜索方面的专家、安全方面的专家,分布式文件的专家等等,不管是哪个领域,重点都不是学会使用某个工具和框架, 而是保证你可以自己的知识和技术去搞定这个领域的顶尖问题。
往广度发展,各个技术领域都要了解,对于某种需求,能够选取合适的软件和技术架构来实现它,把需求转化成合适的技术组件,让这些组件以合适的方式连接、部署、运行,这也需要持续地学习和不断的经验积累。
最后,以一张漫画来结束吧!
C/C++高级工程师学习路线图:
❸ 前端开发和程序员的区别
我们首先来来看两者的定义;
前端是网站前台部分,运行在PC端,移动端等浏览器上展现给用户浏览的网页。用自己的话来说,前端是网页给访问网站的人看的内容和页面。
那前端开发顾名思义就是这些内容和页面中代码的实现。
程序员是从事程序开发、程序维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚。
其实广义上的程序员是一个很大的范畴,分为初级程序员,中级程序员,高级程序员等,而且面向的方向也有所不同。前端开发人员也会涉及到代码的设计编写,前端开发人员其实也算得上是程序员中的一种。
不过人们常说的程序员指的是程序编码人员,也就是码农,是和前端开发有所区别的。但广义上的程序员,是包含所有软件程序开发人员。
❹ 程序员前端和后端哪个工资高
在整体这个行业上,大部分人都会觉得后端的薪资会比前端的要高,光从数据上看是没有问题的。但是由于前端的反正没有后端早,前端主要是10年左右才开始快速发展。在高级工程师上数量来说肯定是后端的工程师数量更多,整体的薪资也会更高一点儿
下面我具体给你举几个例子
首先来看一下前端的薪资情况:前端拿最多的薪酬范围是20-30k,占比接近30%左右,中位数也是最能看出一个行业薪资状况的。(数据来源:职友集)
从各个大厂可以比较清楚的了解到,前端和后端工程师在技术水平相当的情况下,薪资水平也并没有特别大的差别。但是随着工作时间的年限增加,后端工程师一般的薪资水平是要比前端工程师要高的。
所以说行业的整体薪资上来说后端的薪资要比前端要高一点儿的,但是具体如何选择还是要根据自身的情况来进行判断。如果你对IT行业比较感兴趣,想要通过IT培训进入行业,千锋推荐你去试试
❺ 2021年8月程序员薪酬出炉,前端和后端哪个更吃香,或看数据说话
前端比后端工资低吗?或者说前端没有后端吃香?假如你非要说开发web 3D的比java程序员高。或者说玩hadoop比js开发工资高,这样比较本身不具有权威性。要比较首先要看二者在同等水平下进行核对比较,这样才有可比性。
从地域上来看,北京的前端工程师平均工资为18690元,说明前端程序员在一线城市待遇还是不错的。这里的前端工资指的是做的普通web开发的前端,个体的差异比较大,所以只可能用平均工资来做比较。
看了后端的工资,我们可以看到北京后端的平均工资为18700元,说明前后端的薪资待遇整体上还是差不多的。说后端工资高的也是对的,因为5年之后,后端程序员的工资会逐步居上。
现在去一家公司去做前后端的普通开发,前后端也许是同一个价格。前端的工作输出结果是客户能够直接看到的结果。后端的开发体现在服务器端。用户实际上看不到后端的,二者相辅相成,使得互联网输出的产品更多地为用户服务。
如果你从事前端或者只是简简单单的为了生存,那么这二者也许没有什么区别。一个是交互设计,一个是业务逻辑。产品上的需求都有很多,都是IT互联网产业链的最低端,所以无论从事哪个,最终的结果都是一样,论谁更吃香本身没有可比性。
如果你不是简简单单的为了生存,如果你对IT技术有着浓厚的兴趣,建议好好的研究一个平台,做更深,比如说后端的技术路线,一直从架构师干到首席CTO。那个时候也许你就知道所谓的从事前端或者后端哪个更吃香了。
❻ 前端程序员和后端程序员的区别是什么
区别1,以不同的方式展示:
前端开发主要是研究用户可以看到的前端显示界面。后端开发主要集中在逻辑功能等模块上,用户看不到的这些模块。
区别2,所用技术不同
前端开发的技术主要包括但不限于html5、css3、javascript、jquery、Bootstrap等技术。而后端开发是以java为例的,主要用到的技术包括但不限于Struts spring springmvc Hibernate Http协议 Servlet Tomcat服务器等技术。
区别3,稳定性不同
前端主要是集中在设计稿、版面风格、交互效果等方面,前端的需求频繁变化;后端更多是关注随着业务规模的增加,业务逻辑所发生的变化,和如何把系统变得更稳定。
❼ java软件开发和web前端哪个就业前景好,工资高
学得好的话都是不错的选择,但Java和前端还是有区别的:
前端开发:
课程相对简单,要精通JS,能熟练应用JQuery,懂CSS,能熟练运用这些知识,进行交互效果的开发。后期觉得能适应可以补充后端技能,成为现在热门的web全栈工程师。
Java开发:
课程难度相对较大,要会写Java代码,会写SQL语句,能做简单的数据库设计,会Spring和iBatis,懂一些设计模式等。后期发展方向更多,薪资待遇也高。
要学的内容主要有:
①计算机基础以及PS基础
②前端开发基础(HTML5开发、JavaScript基础到高级、jQuery网页特效、Bootstrap框架)
③移动开发
④前端高级开发(ECMAScript6、Veu.js框架开发、webpack、前端页面优化、React框架开发、AngularJS 2.0框架开发等)
⑤小程序开发
⑥全栈开发(MySQL数据库、Python编程语言、Django框架等)
⑦就业拓展(网站SEO与前端安全技术)
想要系统学习,你可以考察对比一下开设有相关专业的热门学校,好的学校拥有根据当下企业需求自主研发课程的能力,能够在校期间取得大专或本科学历,中博软件学院、南京课工场、南京北大青鸟等开设相关专业的学校都是不错的,建议实地考察对比一下。
祝你学有所成,望采纳。
❽ 前端开发和程序员有区别吗
前端开发
是从网页制作上演变过来的。网页上软件化的交互形式都是基于前段技术实现的。从原先的网页制作到现在的web前端开发,无论是开发方式还是开发难度都不再是一个水准上的了,web前端开发更加趋近于传统的网站后台开发。对于资深前端开发工程师的,要求会使用JavaScript或者ActionScript来编写和封装具有良好性能的前端交互组件,使用CSS+XHTML完美输出视觉界面。还要跟踪研究前端技术,设计并实施全网前端优化。例如最近时兴的HTML5、nodejs(JavaScript编程的后台语言)等,对Web项目的前端实现方案也要提供专业指导和监督,以及在日常工作中对新人和相关开发人员进行前端技能的培训和指导。前端也不一定只做前端,有需要熟悉后端的情况,并且要在商业模式、代码架构思想等维度去整体考虑前端的全局布局。前端架构师跟资深前端工程师相比又有有更高的职责要求,它更多意义上说像是一个管理的岗位,但是其职责要求却不仅只是管理。前端架构师需要带领组员实现全网的前端框架和优化,还要创建前端的相应标准和规范,并通过持续地完善推广,应用自己的标准和框架。站在全局的角色为整个网站的信息架构和技术选型提供专业意见和方案。
程序员
指从事程序开发、维护的专业人员。其中,程序员可以分为设计和编码两个部分,但是两者的界限并没有泾渭分明,很多时候在国内会出现程序员兼顾两者的情况,软件从业人员又可以分为初级程序员、中级程序员、高级程序员、系统分析员,系统架构师,测试工程师六大类。从其中的分类我们可以看出,程序员比前端开发囊括了更多的内容,故前端开发与程序员是不同的,前端开发更偏向于设计方面,程序员囊括了程序设计人员和程序编码人员。
故前端开发和程序员是有区别的,分工也是不尽相同的,但也可以粗略地说,前端开发是包括于程序员里面的,是从属关系。