最近,一位网友在 V 站上问了一个问题:我们公司技术负责人准备培训一下后端,让他们学习一下前端技术栈,从而分担一些前端的工作量前端。评论区有一位网友表示:“我们是这么干的,结果后端写出来的前端代码是一坨,后面越叠越多,变成一大坨 …… 前端哪有他们想的那么简单。”
前端的历史
前端的起源要追溯到 1980 年前端,牛津大学计算机科学教授兼麻省理工学院教授 Tim Berners-Lee 提出并制作了 INQUIRE 原型,可以说是 Internet 的前身,而后在 1991 年 10 月,Tim Berners-Lee 正式提出 HTML 标签,并列出了 18 个 HTML 标签,但是依旧没有“前端开发”这一概念。直到 2005 年互联网进入 Web 2.0 时代,各种类似于桌面软件的 Web 应用应运而生,各种 RichMedia 也使得网页内容更加丰富,网页不再只是一种文字和图片的载体,交互形式也从“用户浏览网页”转变为“用户与网页互动”,给用户带来更好的用户体验。
而真正引起前端质变的是智能手机的普及前端。智能手机成为了人们生活中不可或缺的一部分,移动互联网时代的到来,更是推进了前端的发展,前端工程师也成为了专门的开发领域,拥有独立于后端的技术体系和架构模式。随着技术的发展,大前端逐渐火了起来,而且以燎原之势影响着前端领域甚至整个开发领域,大前端也逐渐成为一种趋势。
虽然前端的发展一直向好,但前端依旧是颇具争议的领域:
首先,相对于后端来说,前端入门的门槛较低,有些人因程序员的高薪酬而转行,却又不愿学习更多的知识和技术,入行很久却还在做着最基础的工作,久而久之,前端工程师的技术水平参差不齐,进而拉低了前端工程师在整个行业中的形象;其次,没有持续关注前端的人对于前端的印象还停留在很久以前,觉得前端仅仅是“写网页和UI”、“会 HTML 和 CSS 的美工”而已;最后,前端技术偏向于纯逻辑,有着很强的理论性,对于每个问题都有“唯一标准”,而后端没有那么强的理论性,对于一个问题而言,可能会有很多解决思路和方式。后端开发者还需要了解 CPU、寄存器、内存和指令集等计算机组成原理的知识,需要学习的知识更多。也正因如此,知乎上经常可以看到有人提出诸如“前端还有未来吗?”、“2018/19/20 年,如何转行做前端?”等问题,在一个建议学习前端的回答下,有一名网友评论“因为前端简单啊,后端太难了。”
前端真的很简单吗?
前端并不简单
近年来,前端的发展速度极快,前端 开发 再也不是当初人们口中的“写网页的程序员”了。最早基于浏览器进行开发,后面一点点扩展到服务器端、PC 端、移动端和现在特别火的小程序端,前端开发不断“开疆拓土”,向前端全栈化前进。
最早的前端开发者,掌握 JavaScript+CSS+HTML 就能够找到一份不错的工作了,不过最近几年以来,伴随着各个端平台的迅猛发展,以 TypeScript、Swift、Kotlin 和 Dart 为代表的新一代应用编程语言纷纷浮现;React、Vue 和 Angular 三大框架也 形成各自的生态 。前端 技术栈更新换代速度之快几无可相提并论者,前端开发也 并没有大多数人想象中那么简单,做好前端并非易事,如何在前端开发领域占据自己的一席之地是很多前端开发者都在思考的事情。
有的人是科班出身,有的人是从后端转到前端或是由其他行业转行成为程序员,无论是哪一种 情况 ,都需要有一个良好的基础。很多面试前端岗位的同学可能都听过这样一个问题:“一个网页从输入地址到最后页面打开,发生了什么?”大家对于渲染等经常在工作中使用到的技术对答如流,但 对 其中涉及到的计算机网络的知识,就不是所有人都能回答上来了。想复习一下这个知识点的同学可以参考这篇文章:
}
有一个良好的基础固然重要,可前端技术更新迭代快,能够不断学习,将各种技术融会贯通也是一名出色的前端工程师必备的能力。随着前端岗位工作方向越来越细分,前端人需要掌握的技术也就越来越多,虽然嘴上说着“学不动了”,但身体却很诚实,默默地把新技术的官方文档加入到浏览器收藏夹。
前端需求饱和了?
知乎等社区上偶尔出现这样一种说法,前端热度已经降低了,前端市场已经饱和了,前端工作没有那么好找了。但实际上,这种说法并不成立。大前端领域的编程语言仍然热度高涨, 从七月份的 TIOBE 指数可以看出,JavaScript 排名第七,Swift 也跻身前十。
图片来源于 TIOBE
在 IEEE Spectrum 2020 年编程语言排行榜中,JavaScript 排到了前五名。
图片来源于 IEEE Spectrum
根据职友集的数据来看,前端工程师的市场需求量依旧很大。
图片来源于职友集
由上图数据可以看出,在今年疫情爆发的时候,市场需求量有下滑趋势,随着疫情逐渐得到控制,市场对于前端工程师的需求又逐步增加。随便打开一个招聘网站,以“前端”为关键字进行搜索,都会看到很多的招聘信息,而且薪资并不低。
提出“找不到工作”的人一般是技术水平不足,缺乏项目经验却又急于找工作;或是不满足于现状,希望去 BAT 等头部公司的开发者。任何事情都不能急于求成,前端也一样。自身没有过硬的技术,没有丰富的项目经历,又不愿意投入时间和精力去学习,想找到一份自己很满意的工作自然十分困难。
无论前端这一领域如何发展,自身的技术和经验等硬实力永远是核心竞争力。企业对于前端工程师的要求也越来越高,想要有更好的发展,就需要持续学习、不断进步。换言之,持续学习是一名前端工程师不被行业淘汰的能力。