1. 前端的尴尬
目前,前端的地位及受重视程度,相比前几年有了极大的提升。但尴尬之处仍存在,具体体现为:国内大部分有互联网业务的企业确实不需要专业前端,专业前端的就业面及需求量相比 JAVA、PHP 等开发工程师而言明显局限。
对大部分有互联网业务的企业而言,它们的互联网产品,开发工程师或者视觉设计师自己写一写 table 可能就够了,甚至其产品都是外包公司做出来的。即便需要前端也只是充当切图的页面仔,涉及到 JS 也只是实现一些简单交互。有的从业者甚至通过搜索引擎,搜出一些模板、代码片段,修改一下来满足需求、应付老板。这导致了相当一部分从业人能力平庸,被一些程序员同行概括认为前端技术难度有限,职位可有可无。
前端地位的尴尬返回来也导致学校教育上的漠视,在互联网技术快速发展的当下,迟迟不开设前端对应的专业课程。我在大二时就被当时拥有博士学位的数据结构老师点名批评:“就你天天研究的那些网页的东西,一点技术含量都没有,随便找个同学培训他一周 DreamWeaver 就能全学会!”微博微信上大学同学众多,堂主不会说谎话。
不过现在似乎有点改观,自从学校知道我这个挂科大户、反面典型来到淘宝工作后,我就变成了就业典型。甚至毕业前几个月院长还专门咨询过我,开设前端对应的课程,哪些书籍是适合作为教材的。能通过自己的就业对学院的教学改革产生一点点布道的作用,我现在还感到高兴和欣慰。
那么,前端的技术含量到底怎么样?是不是真的像其他人说的那样,企业不值得为其单独设立一个职位呢?
2. 企业中的前端
个人观点,其互联网业务仅作展示窗口作用的,可能确实不需要设立专业的前端职位。如企业展示类网站、政府网站等,其运营业务的核心渠道不基于互联网,其互联网产品更多承载的是品牌推广手段多样性的作用,其网站产品的开发完全可以通过外包来实现,顶多只需要设置1、2 位运营编辑人员即可。
而对于那些核心营生基于互联网的企业而言,专业前端的职位就是必须的。因为前端作为一个职业存在的价值主要体现在:“叫专业的人干专业的事,解放并提升了产品方的生产力”。翻译成人话就是,前端解放了交互、解放了视觉、解放了开发,并用其专业技能提升了客户端的用户体验。
说解放了交互及视觉,是因为从此交互只专注于操作体验,视觉只聚焦于艺术呈现,而不用附带还要做切图切页面的事,且你叫交互、视觉去写要具备专业编程能力的 Javascript 语言他们也很难搞定。
说解放了开发是指开发可以将精力都投入在诸如底层系统架构、算法优化、数据处理等核心业务上,而不同再去写页面套页面,且你叫专业开发去捣鼓需要具备极强人文修养的 HTML 和 CSS,他们多半也会崩溃的。
说提升了客户端的用户体验,是因为,你找出一个能同时搞定 HTML 语义性、CSS 兼容性、JS 优异交互、整体性能经过优化、结构样式及脚本具备优异扩展性支持、且界面还原精确到 1 像素的交互、视觉或专业开发给我看看,有一个我们团队要一个!
3. 前端的工作内容及技术含量
作为前端开发工程师,我们中的绝大部分(极少部分的前端工程师的工作内容是面向底层库的开发,为其他前端提供更便捷的开发工具),在日常的开发实践中,确实鲜有要用到算法的情况。如此好似低端,却不意味着做好就容易。
相比字面意思理解性较差的 F2E (Front End Engineer,前端开发工程师),我们中绝大部分的工作性质更准确的形容应该是 UIE(User Interactive Engineer,用户界面开发工程师)。我们要处理的事务包括但不限于:产品界面的在浏览器端的展现、前后端数据的通信以及基于 DOM 操作的交互体验。
因前端编码手段过于灵活,质量参差的 HTML、CSS 和 JavaScript 可能都可以满足当前的产品需求。可若一旦涉及可用性、扩展性、细节控、性能优和兼容性,质量不佳的代码劣势立现。如,对很多人最不重视的、认为最没技术含量的 HTML:一个优异的 HTML 结构,且不论其本身就具备的高优雅性及可读性,更可以节省一大半的 DOM 操作;且具备良好的可扩展性,避免未来因需求变化而导致的大规模结构重构;更能避免绝大部分的 CSS 兼容性问题 —— 我就不提什么模块化复用性、搜索引擎优化和盲人阅读器的那些事了。
另外因前端职业成型晚,技术迭代快(且这种迭代属于技术累加式而非替换式,使得越往后入门的新人需学习的东西越多),产品兼容问题多(想做到 “write once, run anywhere" 是F2Er共同的梦),校园教育缺失,自学成本高、最佳实践积累少、职业思维模型需跨技术与人文等种种因素,都导致前端职业修养的养成成本更高,靠谱的人才稀少。
所以说,“糙活也能用,细活养成难”的现实一是阻碍了很多从业者的进步,二也造成了行业上认为前端“没难度级别低”的错觉。
但错觉终究是错觉,互联网的快速发展会帮助大家逐渐纠正这一认知。前端现在不论作为一个职业,还是其背后代指的一干技术与思维,都依然显得青稚,需要积淀与成熟。但请相信前端成熟的路不会更类似其他职业的开发——我会告诉你一个好的前端应该具备很强的人文气息么?人文这东西说不清道不明,但可以肯定它属于是感性的一类,正如 HTML 和 CSS,看似简单,却绝非简单,一如文学创作,语境的形成不取决于语法,却依赖于开发者自身。
相关推荐
在前端开发中,文件上传和下载是常见的功能需求,尤其在现代互联网应用中,用户交互往往涉及文件的处理。本文将深入探讨前端实现文件上传和下载的技术细节,并结合JavaScript的经典实例,提供一些实用的开发策略。 ...
1 前端开发那些事 1 2 怎样提高前端的质量和工作效率? 1 附件(关于2011年工作的一点浅见) 3 3 探讨一些技术问题 4 3.1 Frameset和iframe 4 3.2 Frameset和Div两种方式的对比 5 3.2.1 frameset布局的优点 5 3.2.2 ...
关于前端的文章合集,更新自己在前端学习过程中的笔记与总结。坚持学习,不断进步。 目录 Chrome DevTools Chrome 73 DevTools 新功能之 Logpoints 浏览器页面资源加载过程与优化 H5 开发中的那些事 DOM 和 Canvas ...
总结起来,"关于品红的那些事"涵盖了色彩理论在后台管理系统中的应用,特别是表格布局和侧边栏导航的交互设计,以及与之相关的前端技术和用户体验原则。在实际开发中,我们需要综合考虑功能需求、视觉效果和用户习惯...
"前端"标签表明这个项目是关于Web开发的客户端部分,涉及HTML、CSS和JavaScript等技术。"软件/插件"可能是指项目可能包含自定义的React组件或者与之相关的工具或插件,这些可以提高开发效率或提供特定功能。 【压缩...
### 关于浏览器和互联网的重要知识点 #### 一、互联网的基础:TCP/IP协议 - **互联网的概念**:互联网是由全球范围内的计算机网络互相连接而成的网络系统。它为用户提供了一个无国界的通信平台,使得信息的交换变...
这份压缩包包含三本关于CSS的重要书籍:《精通CSS:(第2版)》、《CSS那些事儿》以及《CSS权威指南 第3版》,这些都是深入理解和掌握CSS技术的宝贵资源。 首先,我们来看《精通CSS:(第2版)》。这本书由Peter ...
关于WAI-ARIA那些事儿 [译]HTML进阶之Content categories [译]HTML进阶之Data attributes [译]如何隐藏DOM元素? [译]HTML Timers CSS 你真的理解浏览器盒模型吗? 我不知道CSS,你知道吗? 简单理解CSS layout和...
《React+Redux组件化那些事》是关于使用React和Redux进行前端开发的深入探讨,主要关注组件化的设计和实践。作者梁伟盛,腾讯高级工程师,具有丰富的前端开发经验,曾参与多项重要业务的开发与架构设计。 1. **...
在CSS的世界里,有无数精彩纷呈的知识等待我们去探索。这个名为"css那些事儿绝对正版书中源代码.zip"的压缩包,显然包含了某个关于CSS技术的...在CSS的海洋里,我们不仅能发现那些事,还能创造出更多属于自己的故事。
综上所述,该文档为从事前端开发的工程师提供了关于React和Redux在组件化开发中的实际应用案例、设计理念和架构细节。通过对比Angular和React的不同实践,以及对React生命周期和核心特性的详细说明,读者可以更好地...
Vue Router 提供了强大的功能,如导航守卫、动态路由匹配、命名路由等,帮助开发者构建高效且灵活的前端应用。 首先,我们需要理解什么是路由。在传统 Web 应用中,我们通常使用 `<a>` 标签来创建链接,每次点击...
大型活动中,Web 场景动效的那些事儿 代码快照x覆盖率:洞察研发体系的最后100米 电商搜索和推荐场景下的MLOps实践 世界杯中 RTC 的技术挑战与实现 多云环境下的应用管理与交付实践 前端基建是如何炼成的 工程师成长...
目前主要在知乎专栏上写内容,多探索点前端那些事儿。版权仅用于学习,研究和交流,版权归于 ,欢迎非商业转载,并在文章开头的明显位置标注转载文章出处,作者即可,违规究。可用脚本在项目目录中,可以运行:npm ...
本文将分享关于JavaScript中日期和时间操作的知识点。 首先,要将一个日期字符串如“2007-2-28 10:18:30”转换为Date对象,可以使用字符串分割和Date构造函数的方法。示例代码如下: ```javascript var str = ...
然而,尽管AngularJS提供了丰富的功能,但对于许多开发者而言,从初步接触到真正精通却并非易事。这主要是因为AngularJS涵盖了广泛的功能领域,并且采用了如依赖注入这样较为复杂的编程模式。此外,官方文档虽然详尽...
《科研成果申报管理系统的设计与实现》是一篇关于Web课程设计的报告,主要涉及的技术栈包括Web、MySQL和PHP。该系统旨在实现科研成果的高效管理和申报流程自动化。 1. **课题背景与现状**: 在当前科研工作中,...
【标题】"ASO。...ASP(Active Server Pages)是微软推出的一种服务器端脚本环境,用于创建动态交互式网页。因此,"ASO。... 在ASP中,开发者可以利用...深入研究这些文件将揭示更多关于这个留言板系统的设计和实现细节。
这对于那些活跃在MyBB论坛上,希望随时了解社区新鲜事的用户来说,非常实用。它节省了用户的时间,减少了频繁刷新页面的麻烦,提高了信息获取的效率。 关于插件的实现机制,它可能采用了Ajax技术来实现实时更新,...
在教学中要用到8088和196芯片单片机教材,请问那里可以找到关于这方面的书或资料? 答:有关这方面的教材,大学里常用的一本是《IBM-PC汇编语言程序设计》清华大学出版社出版的,在网上以及书店都是可以找到的,...