大家好,我是王小编。 首先,今天晚上小年夜,祝福大家小年快乐,也祝福此时此刻还在加班的程序员明年升职加薪。作为一名地地道道的前端开发人员来说,我不得不告诉你,其实我在去年刚刚做工作的时候,想要找的工作是Python开发,因为去年Python开发对学历要求比较高,都是搞数据算法,而且大部分不要实习生,后来万不得已做了前端开发。我也准备渐渐的往后端转。 我来说说现在大部分人为什么都要做后端开发。 第一,后端程序员一般都看不起前端程序员。 这是真的,在我准备找后端开发的时候,我就默默的从心里看不起前端程序员,这不,我就在做前端程序员了?为什么现在的程序员有这种心里。因为在他们眼中前端开发很简单,没有什么逻辑。其实做了前端才知道,前端最麻烦的是技术更新太快了。真的,前端技术更新比后端快多了,几乎半年一个版本,这就注定你要学习,不停的学习。 第二,后端程序员比前端程序员平均薪资高 后端程序员平均薪资:10830 前端程序员平均薪资:10510 第三,从长远来看,后端比前段程序员更有前途 后端程序员一般做的事情是对服务器进行开发,而且后端语言一般都是JAVA,Python等等语言,就算不做后端开发,也可以去做其他的,比如JAVA程序员可以做大数据,Python程序员可以做算法,人工智能等等,可是前端程序员就惨了,如果一家公司前端只需要维护的话,你的位置就可能不保,然后你还是只能去别的公司做前端,所以未来的职业方向就狭隘了。 我偷偷告诉你们,我也准备往后端转,做一个懂点后端的前端程序员。大家好,我是王小编,中国最帅的前端程序员。 感觉还没有看到相对靠谱的回答,我谈谈我的看法。 这里不从技术难度来看,从工作性质和发展空间来讲。 首先后端的程序员,接触业务的广度和深度相对都比前端程序员要多。比如购买商品的环节,前端程序员要做的是两个事情:一、点击购买按钮;二、提示是否购买成功。但是后端程序员要做:一、是否有足够库存;二、生成订单;三、支付逻辑;四、失败处理。也就是同样一个事情,后端要做的东西比前端多,了解的业务也就更多。从个人发展空间来看,了解更多业务肯定会有优势。 其次是后端程序员需要了解的知识体系比前端更广,比如前端不会去考虑并发,负载均衡等。而后端程序员需要了解这些,就涉及到服务器,中间件,数据库等等一系列东西。从这一点也能看出后端程序员会掌握更多的东西。 另外就是在职位的晋升上,一般来说公司会选择对公司业务了解更多,更有帮助的人。在技术架构方面,后端程序员更有优势,可以在技术方向上走得比前端程序员更稳一些。这些也是公司看中的一个方面。 所以说不是瞧不起的问题,而是个人发展方向的选择。做自己想做的事就行。 我就是前端程序员,,,,,, 我来总结下吧 一、前端是近些年才单独提出来的,(以前叫切图仔)。所以技术更新很快。 因为它的新,它的技术迭代就比较快,,,以前js、jq。前几年vue、react框架。近些年ssr、微前端架构、大前端概念。(甚至包括小程序、webapp、桌面客户端web开发、three。js3D开发等) 程序员又是吃年龄的职业,这种更新速度,对程序员极不友好。 二、未系统的学习,直接搞前端,css样式兼容、适配会让人崩溃。 有时候发现一个简单的样式bug,代码也很简单,但是就是改不好。后面才知道,是浏览器不兼容〔捂脸〕。相对于后端来说,前端的这些东西,去网上查答案,更麻烦。 三、晋升空间等。 目前除了大厂以外,其他中小公司的技术管理层,一般为后端人员,前端人员做技术leader的较少。前端在中小公司想做比较大的技术leader,第一步,转全栈。 四、还有就是需求问题吧。 因为前端入门简单。社会上一大堆培训机构培训前端。而且,他们出来后,基础的开发任务他们也能满足,,, (相对来说,后端的入门要难一些,网络、编程相关知识要求较高) 所以,目前,初级底层前端,社会饱和度是比初级后端要高的。 程序员宁愿拿5k的工资做后端开发,也不愿意拿6k的工资做前端开发呢?我好像没有遇到过类似的情况呀,从事JavaWeb开发近四年时间,一般都是团队需要做什么我就去学习什么,做相关的开发,而没有严格的前后端之分。跳槽之后,团队组织分工比较明确,由于之前多数都从事JavaWeb服务端的开发,很自然的被划归后端研发。但即使这样,要完成一个项目或者说一个需求,都必须前后端或者客户端和后端一起协作才能完成的,没有所谓的愿意不愿意吧。 在我看来,从事前端或者后端开发,除了自身的兴趣之外,更多的是团队需要吧,尤其是团队规模较小的时候,这个表现的尤为明显。我刚参加工作时,团队就四个人,整个团队的职责是基础架构,除了紧盯新技术,完成配置中心、文件云存储、统一登录等基础组件外,还需要将调研的成果及时在基础服务中体现,撰写demo和showcase及时演示相关的技术点,这里面就涉及一些管理页面的研发,最开始是通过Jsp来实现的,而后由于服务端技术升级为SpringBoot,对应的前端技术替换为ThymeleafBootstrapjQuery。而后又由于前后端分离,面向接口编程的需要,服务端采用SpringBootSwagger,而前端技术采用ReactReduxFlux技术栈。这些东东都是我们团队46个人来完成的,需要用到什么技术,不懂的就去了解,然后一边开发一边学习。我将ReactReduxFlux学习了半个月,并买了一本书,就开发了一个Action就拿到offer跳槽了,如果没有跳槽的话,我的前端技术估计也可以拿来面试吧。 而跳槽之后,团队50多人,有专业搞前端、客户端、后端的,大家各司其职,经过需求或项目评审后,约定好交互、接口及参数,就开始同步进行开发了,然后服务端能提供相关的数据时,就上测试环境进行联调,而前端使用React、Angular或是Vue等技术栈,如果团队leader没有相关的要求的话,自己就随便选择了,那个熟练用那个,只要通过http请求,完成同服务端的交互,并且按时完成需求或项目的研发任务就ok。 在我们团队,涉及到各端的问题,都有各端的负责人在跟进,专业的人做专业的事,似乎没有所谓的不愿意的情况,只是你更擅长什么,或者你愿意做什么,做好自己选择的或者喜欢的就没问题。 作者:夕阳雨晴,欢迎关注我的头条号。偶尔美文,主流Java,为你讲述不一样的码农生活。 作为一个前后端都在开发的全栈工程师,我结合自身经验来回答一下这个问题。 前端开发,工作量繁杂且枯燥。 天天都在调样式,调不同浏览器的兼容性,费尽心思搭建可以在不同项目中服复用的框架。 后端开发,工作量不多,很多工作都可由框架解决。 所有的技术都有规律可行,掌握原理就能举一反三,不论是接口还是数据返回格式都可以统一,再加上代码生成器,工作量真的是成倍减少。 前端开发相比于后端开发,工作量真的是成倍增加,开发完成后,也没有啥成就感。就个人而言,我也是更喜欢做后端开发。 这个问题其实很有意思,其实衡量一个工作喜不喜欢做,真的不能单单从工资层面考虑,也应该从适不适合,以及工作的职能分工和难易程度等各方面综合来考虑。另外,说一句扎心的话,其实5k和6k之间也没有多大的差别,没差多少钱。 我下面从两个角度,两个层面来分析一下吧,尤其是对于非程序员来讲,看完就能明白了。 职能分工层面来讲 从职能分工层面来讲,前端开发和后端开发其实是两个工种,是两个职位,而程序员如果不是全栈,什么都会的话,如果学后端的,可能只会后端,学前端的只会前端,后端开发和前端开发的语言,思维等方面都是有差异的。 一个只会后端开发的同学,想做前端的话,可能也得从头学习,不是说能换个职位就能换的。前端开发和后端开发的差异性其实挺大的,程序员这个行业的分工其实很细,比如有算法工程师,前端开发工程师,后端开发工程师,数据分析工程师,嵌入式开发工程师等等,分工很细,用的语言也不一样,差异性比较大,并不是说想做什么就做什么的。 从这个层面上来讲,程序员专注自己的领域,并不是完全由工资决定的,完全是根据自己所学,爱好等决定。 从前端和后端开发差异性层面来讲 为什么很多程序员不喜欢前端,我们就得从前后端差异性以及技术的更新迭代速度,发展情况来讲了。 我之前写过一篇文章《比谁世界上最好的编程语言,更可可怕的是问前端和后端哪个更难做?》,这里比的是谁更难做,而不是技术哪个更难。 而且之前我在极客时间上看到一篇文章,讲的也特别有意思,算是值得思考吧,那就是:《后端工程师危机》 文中大致的意思就是: 前端工程师的工作量,相对于后端来讲比较大一些,不仅仅要应对前端界面和设计,以及应对产品经理的挑剔,还要跟后端工程师确定交互的数据格式和接口。更重要的是前端各种浏览器的界面的适配,大前端引发导致的还要适配移动端的工作,相对于后端来讲,前端工作太繁杂。 而且,前端工程师需要面对纷繁复杂的前端框架,相比于后端生态的稳定,完善和生命周期长,前端框架和技术生命周期更短,生命周期更短就意味着前端工程师要不断的学习和更新自己的知识,给前端工程师的压力就越来越大。真的是,每年前端框架层出不穷,更新速度很快,导致前端工程师需要不断的时刻学习。 在前端和后端哪个更难做的所有的争吵和讨论中,我感觉以下几个说的非常精辟和有道理。 1。前端比后端麻烦,但是麻烦并不是难。 2。前端技术换代太快,杂乱,后端技术相对稳定。 3。前端属于繁杂,后端属于复杂。 4。前端的技术不在于难度,而是杂乱,后端的技术相对标准化。 5。前端是技术难做,后端是业务难做。 6。前端不难,就是烦。后端不烦,就是难。 综上,对比理解一下,你可能就知道为什么这么多程序员不喜欢做前端开发了。 如果感觉我说的有道理,欢迎大家在文章底下留言,点赞或者关注我。 后端,高耦合架构,代码不太容易懂,不好看,需要有一定的技术积累。 前端,主要是以页面为主,掌握了几个框架就能上手,学习成本低,门槛少,升职加薪难。 云技术的快速发展进一步加大了前后端的优劣势对比。 现在有名的几个云计算平台,腾讯云、阿里云、华为云,为程序人员提供了大量的控件和微服务,这些服务,都是在后端的吧。 就算部分被前端代码调用,但是总归是后端写的。前端人员可替代强 说实话,中小型公司,对前端的要求就是掌握几个框架,做好页面开发,多快好省地完成客户的需求。 如果项目要求高,时间压力大, 没关系,再调几个前端开发来就好了, 大不了外包。 因为前端页面很好识别,而且相互之前分离,很少有几个页面有内部联系的,大多是点击跳转之类的联系。 就算有前端员工离职了,也不用担心产生什么影响。 后端研发细分多 相对前端的页面开发为主来说,后端的研发可就丰富多彩了。 基于云计算的微服务架构,设计人员把大量的后端功能做成了服务提供,不同的服务需要不同的专业技术人员,跨领域转行,难度都很大。 这就进一步造成了后端人员的门槛高。 比如从事音视频开发的视频研发人员;从事人工智能的图像智能算法人员;从事大数据的大数据研发人员;从事业务的管理系统开发人员,各类业务系统还不一样。 最后这种细分造成了一个结果。 就是,后端人员可替代性差 前端开发往往只有一类人员,页面开发。 最多换成移动前端开发,和PC前端开发,以及APP前端开发。 但是后端, 很轻易可以分出1百多个专业方向, 每个后端专业的研发人员都难以跨专业就职。 这就出现了短缺。 这么多的后端方向, 很容易就有几个领域找不到研发人员的, 或者找别的后端研发跨领域就职, 这样又要学个1,2年才能熟练上岗, 还会挤占他原来的后端研发人员。 于是造成了一个结果。普遍来说后端的工资要高于前端 我们知道资本论,一切价格来源于需求。 前端的专业最多只有5,6个方向,而且可替代性很强,那么企业要招聘的话,就很容易招到人, 就算是新员工,也能够很快通过培训上手。 这样的形式下, 前端研发人员,涨工资就不容易了。 反过来, 如果你是一个专业方向的后端研发人员, 由于后端的细分化, 可能全中国你这个领域的研发人员也不超过1千人, 比如图像编解码领域; 比如区块链开发; 比如分布式架构开发; 这时一个新的公司要招人, 他培养一个新人就要两三年, 只能通过挖有经验的技术人员进来, 这还不得加薪啊。 所以, 我最近看到, 越是冷门的后端领域, 反而越能期待加薪和高薪。 比如C算法开发人员,其普遍收入,就要高过 python算法开发人员。 因为C算法开发人员培养起来难,场景少。 稀缺性导致了他们的成本高。 听我说到这里, 作为一个刚入行不久的程序员, 你是希望做前端研发,还是后端研发呢。 总结一下: 前端入门快,可替代性强,入行容易,门槛低,普遍加薪幅度不高。 后端入门难,细分多,可替代性弱,门槛高,后期加薪可期。 你看,就这么简单! 算法鄙视大数据鄙视后端鄙视前端 没人愿意干5k的后端,也没人愿意干6k的前端,只愿意干9k的送外卖 那肯定是后端咯 很多回答都很扯,你想想看,5千的后端他能干什么?不过是增删改查全家桶,特别复杂的逻辑,这个钱的人他也解决不了。 回到前端你看看你得干多少事,拿简单的vue来说,框架你得搭一下吧,vuerouter你得搞吧,elementui不符合设计你得改吧,页面你得来回来去的画吧,一些动画效果你得会吧,vue不用考虑适配就算舒服多了。 折腾来折腾去,老板还觉得你好像什么都没干一样,不过就是随随便便画个样式而已。 而且出了bug先找前端,因为开出这种价格的公司没有专业测试,他只知道点这个按钮报错了,所以何苦选前端呢?