对于这个问题,我是这么理解的:前端开发面向"用户",后端开发面向"机器"。
前端开发理解和定位如何理解和定位前端开发,最简单的方法是从各大招聘网站上,查看各个公司对前端开发职位的岗位要求,就能清晰了解前端开发: 前端开发主要负责图形化类产品的研发、制作和升级,参与手机端和PC端的WEB产品、APP开发,根据产品需求开发高质量前端页面,积极探索前端开发技术的发展, 优化用户交互方式,提升用户体验。
前端开发主要技术前端技术包括Javascript、CSS、XML、HTML5、JSON等,需要熟悉使用HTML和CSS进行页面布局,掌握JQuery、Vue、React、Angular等框架或库的技术原理和使用方法, 前端开发也需要对不同设备及平台有一定了解,理解不同操作系统及浏览器的兼容性区别。
后端开发理解和定位后端开发的工作职责主要包括参与业务系统需求分析、产品讨论、系统架构设计、技术选型、产品研发、系统优化重构等。后端开发需要具有扎实的计算机科学功底、扎实的编程基础,掌握常用的系统架构原理、搭建和优化方法,解决系统建设面临的关键问题和技术难点。
后端开发主要技术后端开发以设计开发高可用、高效率、高安全系统为目标,不局限于单一编程语言,主要技术包括分布式计算、中间件、数据库、计算机网络、人工智能、信息安全等方面技术,由于后端开发涉及面广,后端开发人员最好具备一定的项目管理知识和经验,有助于组织协调,推进项目开展。
前端开发与后端开发的联系如果将系统分为"视图-控制-模型"三层,前端开发主要实现"视图"层,后端开发实现"控制"和"模型"层。技术上都是运用"分层、解藕、模块化"的思路提高开发集成效率、增强可维护行和可扩展性,近年来前端开发出现的Vue, React, Angular等框架大大推动了前端技术的发展,前端开发前途光明。
通常,web后端的难度更大一些。
所以大部分公司的人员配置也是后端多于前端。前端的难度在于知识体系的琐碎和技术的频繁更新换代,需要有学习能力、有积累经验的意识。
后端的难度(个人觉得)在于数据库和架构,有时候还有算法相关的内容,入门也挺容易的,但是做大了之后就需要考虑很多东西,设计模式、缓存、分布式、服务化......很多后端还要兼任DBA和运维。
web前端工程师不光需要会html,js,css等一些前端编程语言,还需要有美工基础,最早的前端工程师没有那么精细的分工,需要你从原型设计到切图在写静态页面,调试浏览器兼容性等一系列问题,但是现在前端分工详细了,分工明确的公司可能UI和前端都分开了,但这并不意味着是好的,一切和设计相关的职位,我建议都需要有美术功底,这样你在设计的时候会比其他门更具优势,希望可以帮到你