前端工程师和后端工程师

对于互联网应用开发来说,前端开发和后端开发是工程师的两大工作领域,这点已经是很多同学的常识。于是,经常有人会问,前端工程师和后端工程师都是做什么的?薪资如何?未来的行业发展前景怎样?相信这些对于很多现有的软件从业人员,或是准备入行的门外汉们来说,都是模糊不清的。下面我们就首先来介绍一下二者对技术的要求和职责的范围。从根本上区分它们。

什么是前端工程师

前端工程师主要负责面向用户界面的处理。

在一个网页或者App的页面上,用户能够看到的内容、图片、段落布局、链接、图标以及按钮等等,都属于前端的范畴。在互联网应用出现的早期,并没有所谓前端工程师的岗位细分。这些工作有些是由美工负责, 有些是由程序员负责。那时候,完成页面设计,所需要的技术无非是HTML、CSS和JavaScript脚本语言,也就是俗称的“三剑客”。

后来随着硬件的发展,客户端的能力被不断提升。更伴随着Web2.0的普及,以及移动互联网的兴起,人们不再满足于让客户端仅仅负责应用内容的展示,更会把一部分运算迁移到客户端来完成。我们会将一些原来服务器端处理的功能迁移到客户端。比如状态管理,以减轻后端的数据吞吐量,提高后端的数据处理效率。再比如路径管理,在传统的多页应用程序开发中,一般都是后端来返回某个页面,前端只负责显示。而现在的应用开发中,一般都是单页应用开发,这样路径的处理就在前端进行了,提高前端应用的处理效率,增强用户体验。

同时在手机端,因为不同的终端设备在显示方式、显示能力上的差异,更是有了诸如屏幕适配、自适应布局等新的需求。于是,HTML5技术族系就诞生了,相应的,也出现了专注于完成此类工作的程序员群体,于是,前端开发领域应运而生。

当然,前端工程师手中最有力的武器,依然是升级版的“三剑客”。

但是仅仅使用“三剑客”,开发效率和代码数量都是惊人的,而面对应用的爆炸式增长,以及需求的频繁更迭,各种的框架、工具也就越来越多,以提升开发的效率。

前几年前端开发用到的技术,除了HTML5、CSS3、JavaScript之外,无非是Jquery、Bootstrap、Node.js 、AngularJs等技术。从开始的切页面,到复杂的前端单页应用,Node服务端应用,移动端React-Native等。

而苦逼的是,这个领域的开发技术迟迟无法稳定下来,不仅工具、框架的迭代速度很快,而且大的技术体系和新的技术族系,也在不断的发生变革,甚至是颠覆式的革命。于是,前端工程师,一直在疲于应付,疲于追赶。

近10年间前端技术经历了3次大的变化。2010年--2015年前端主要使用的技术是Android和IOS。2016--2019年使用的技术是HTML5、CSS3、ES6、JavaScript、Vue、RN等。2019年中Google在全球移动者开发大会上,推出了新的前端技术Flutter。这三次变化可以说是翻天覆地的。核心编程语言改了又改,变了又变。比如,Android用的是Java、IOS用的是Objective-C,后面都变成了JavaScript。最后到了Flutter又换成了Dart。这对于前端工程师简直是毁灭性的打击。甚至有些前端工程师在GitHub上公开留言老子学不动了。

另一方面,前端开发因为涉及的领域比较片面。只负责进行数据展示,不负责核心业务开发,创造的价值有限。所以在后续晋升通道上,天花板也会较低,局限性较大。比如,大神尤宇希(前端著名框架VUE的作者)在加盟阿里巴巴时,只拿到了P9(阿里的技术职级体系)。很多前端工程师为他们的领袖打抱不平。

于此同时,由于前端开发的工作目标,是让用户在PC或手机屏幕上,看到的产品内容更棒,更吸引人,因此,前端工程师要有一些美学的天赋和产品的感觉。这对于很多理工科出身的同学来说,也是不太容易建立的。

什么是后端工程师

后端工程师主要是开发服务器端运行的代码,是用户不可见的。

打个比方,后端的工作就像盖楼房的地基部分和框架部分。通常,后端工程师需要搭建后端的支撑服务容器;针对于不同行业进行相应的功能接口设计;完成具体的业务逻辑实现。在具体的功能实现部分可以采用Java、Python等编程语言来实现。

后端开发使用的Java编程语言,主要用到的是包括但不限于JVM、高可用、高并发、Spring、SpringMVC、Hibernate、Mybatis、Http协议、Tomcat服务器等技术。而Python编程语言同样擅于开发后端应用,所使用的主要技术有Django、Flask、爬虫、Numpy、Pandas、Nginx、Matlab、Ternado等。随着云计算、大数据、人工智能的发展,又涌现了Docker容器技术、Serverless、Hadoop、Flink、Pytorch、Tensorflow等新型架构。后端开发的比重、重要性又有了大幅度提高。

后端开发主要负责系统核心业务实现,是一个系统的灵魂。所使用的编程语言Java(1995年诞生)、Python(1989年诞生),都非常稳定(甚至比好多同学们岁数都大)。随着大数据、人工智能的发展,作为主力编程语言的Java、Python。他们更加会大放异彩。

最后由于项目开发过程中,往往后端的功能模块比较多,业务也较为重要,所以相应的所需要的开发人员数量也会较多。而前端工程师,主要负责数据显示,所以需求量较少。一个公司前后端人员比例大概为1:5。而后端工程师往往能够接触到系统的核心业务和核心数据流程,因此,对项目组的重要性也会相应大一些。

当然,做一个好的后端工程师,也是会有很多的技术、框架需要掌握和学习。只是和前端相比,技术的变化不那么大,也不易发生颠覆性的技术革新,程序员只需要随着技术的发展,对现有的知识体系进行迭代和更新就好了。

从后端工程师的任职要求来看,除了需要掌握必要的技术之外,对程序员的算法能力、数据建模能力、逻辑能力要求比较高,而这些,正是理工类学生所擅长的。

前端工程师和后端工程师的薪资对比

一般来说,由于工作内容的复杂性和多样性,对于初级前端工程师的工资相对来说要低于后端工程师的工资,但是这个差距并不是很大。但随着工作年限的增加,后端工程师的上升空间要比前端要高。此外由于前端技术更新的频率,给程序员积累提升的周期比较短,这方面也限制了前端工程师的发展。下面统计了北京,深圳,上海,杭州几个软件行业比较发达城市的薪资数据,可以看到后端方向的工程师薪资普遍比前端要高。

结束语

前端工程师是在技术的发展中所产生的一个细分的领域。其实对于很多企业来讲,这种细分的界限并不十分清晰。例如,最近企业中流行的所谓“全栈工程师”,就是要求后端工程师也要有一定的能力,去承担前端开发的任务;前端工程师,也要了解后端应用开发的细节。在这个融合的过程中,前端工程师的地位略显尴尬,毕竟,专业的互联网美工,也会具备一定的编码能力,而后端工程师,由于他们的技术知识体系相对完善,对公司业务的底层核心更为了解,也有能力分担前端的一部分工作。因此,前端的“领地”也就不断的被蚕食和侵占。

前端和后端哪个更重要,哪个更有价值,一直众说纷纭。也许这样的争论还会持续下去,直到这两个领域彻底融合统一,形成共识。

对于有志于从事软件开发的同学来说,前端和后端只是企业中两个不同职能的岗位,无论从事哪个岗位,只要你技术过硬,项目开发能力突出,都能有所发展。只是我们建议,对于编程的初学者,还是应该从后端入手,毕竟无论是Java还是Python,都是成熟而完整的编程体系,对于同学们打好编程基础,训练编程最基本的技能,都能起到事半功倍的作用,在未来的职业发展中,也会有更广阔的用武之地。

前端和后端的英文_前端工程师和后端工程师相关推荐

  1. 前端和后端的英文_前端真的没有后端工资高?

    不管是小程序的横空出世,还是Web应用的大量涌现,它们都掀起了一波"前端开发需求热",给前端开发工程师们带来了春天.几乎整个互联网行业都缺前端工程师,无论是刚起步的创业公司,还是上 ...

  2. 前端和后端的英文_前端、后端、全栈是什么意思?薪资怎么样?

    随着互联网行业的飞速发展,对专业的IT技能人才的需求量也随之变大. 据统计,未来五年,我国互联网人才需求量还会持续增长,预计需求量达到1500万-2000万,以软件开发为例,我国软件开发人才每年都在增 ...

  3. 前端和后端的英文_前端工程师一般都喜欢去哪些网站逛?

    看到有人问前端开发应该知道哪些网站,那我就来总结一下. 我先说一些程序员很通用的网站,再推荐一写前端程序员可以订阅的优质前端内容网站,如果对你有用,就点个赞呗~ 1. Google: 这个不用多说了吧 ...

  4. nginx学习笔记002---Nginx代理配置_案例1_实现了对前端代码的方向代理_并且配置了后端api接口的访问地址

    做个记录,以后做简单的nginx的时候拿过来就用 这个配置实现了,对前端html的方向代理,并且,配置了对后端api接口的方向代理 E:\nginx-1.14.0\conf\nginx.conf #u ...

  5. echarts前后端交互数据_如何避免前后端在数据交互方面的相爱相杀?

    全前端包掉?还是全后端包掉?谁能裁决?所以,出现了以下对话: [问题点]所以,怎么办捏? Ebiubiu有话说: [划重点]需要根据实际业务不同场景下的情况做实际判断决策 前端界面包含两类信息:数据内 ...

  6. 前后端怎么连接_如何搭建前后端分离的测试平台

    1 测试平台框架 1.前端:LayUi 2.后端:springBoot 3.数据库:mysql 2 部署环境 1.由于是前后端分离的项目,所以前后端两个工程需要我们单独部署: 2.本次部署环境: K8 ...

  7. 前端和后端的英文_计算机专业的本科生在前端、后端、测试和运维之间该如何选择...

    首先,对于计算机专业的同学来说,在选择发展方向的时候往往会遇到一些困惑,当前随着计算机技术体系的不断壮大,计算机领域的岗位分类也越来越细化,而且在新技术的推动下,还在不断出现新的岗位,比如当前在云计算 ...

  8. python前端开发需要的工具_前端工程师都有用哪些比较靠谱的小工具?

    Wappalyzer 是一个用于识别网站使用的库和框架的工具.它也是一个 Chrome 插件,是目前为前端开发人员最有用的工具之一.下一次你想知道一个网站使用什么库,来创建一个特定的可视化功能,Wap ...

  9. python前端和后端的区别_前端和后端的区别

    有的人认为,前端很好学,后端不好学. 也有的人认为,前端不好学,后端好学,归根到底还得看个人兴趣. 前端和后端做简单的叙述 后端:入门难,深入更难,枯燥乏味,没有太大成就感,看一堆业务逻辑代码. 前端 ...

  10. 前端如何实现后端运行进度_前端实时更新后端处理进度之 进度条实现

    情景需求 在做图形提交界面时,点击提交按钮后,系统需要较长时间做处理,前端需要动态显示处理进度,并在完成后显示处理结果 实现逻辑 1.点击按钮后向后台发送数据处理请求2.后台处理数据3.前端获取后端处 ...

最新文章

  1. Windows上IDEA搭建最新Spark2.4.3源码阅读及调试的开发环境
  2. arguments don‘t support automatic differentiation, but one of the arguments
  3. WPF解决WindowsFormsHost背景透明
  4. 拉格朗日差值法----算法学习
  5. debian linux 安装smb 配置
  6. 为什么银行没有厕所?内急了怎么办!
  7. string字符串的查找替换、模式匹配
  8. 构建高性能.NET应用之配置高可用IIS服务器-第三篇 IIS中三个核心组件的讲解(上)...
  9. 汇编语言程序设计基础知识
  10. 极域电子教室破解控制---万能密码、查找密码
  11. vb 运行错误429 mysql_”运行时错误429:activex部件不能创建对象。“
  12. html 手机端可以选择复制粘贴,js移动端实现网站内容复制粘贴功能
  13. SiteSucker Mac版(整站下载工具)中文版
  14. 记公司同事的一次集体活动
  15. Android CameraX的PreviewView Ar背景实景实时预览
  16. centos安装ghostscript+PHP扩展imagick
  17. 目标检测论文阅读:GHM(anchor based)
  18. linux下pip升级
  19. 陷入可怕的人间“地狱”
  20. 软件测试工程师-职业规划发展

热门文章

  1. windows7安装Bitvise开启SSH服务
  2. mysql2008安装失败_sql server 2008为什么会安装失败 sql2008安装失败解决办法
  3. informatica学习1-数据仓库,ETL,数据仓库工具Informatica介绍
  4. TB6612FNG电机驱动替代方案
  5. springboot整合规则引擎URule
  6. 图片右侧加文字html完整代码,怎么用css在图片右下方添加文字
  7. 微信小程序实现选项卡切换功能
  8. tail -f 命令详解
  9. Ubuntu 部分截图
  10. 浅谈数据标准体系建设