官方服务微信:dat818 购买与出租对接

前端开发并非易事,国外前端人才也难招,你知道吗?

2万

主题

2

回帖

6万

积分

管理员

积分
66425
发表于 18 小时前 | 显示全部楼层 |阅读模式
    为什么优秀的前端工程师数量这么少呢?这么少?少?这是我在本公司 HR 群里经常听到的一种抱怨,这种抱怨甚至比吐槽 iOS 和开发还要多。

    天真的 HR 妹子们通常认为:前端开发比其他领域的开发容易得多。既然如此,为何 CTO 还要求那么多呢?推荐的前端一个接一个地被退回来,这是为什么呢?

    我之前是这样看待前端的,以为前端就是进行一些切图、排版以及添加动图的工作。后来当我打算学习前端时,才明白前端开发根本不是容易对付的事情。

    既然已经开始了,就不能中途停止。凭借文科生的精神,我查找了一些关于前端的文献,首先从了解前端的历史开始,从而进入这个领域。

    我可以肯定地回答第二个问题。国外的优秀前端确实是很受欢迎的,很难招聘到。

    先甩一张图:

    抓取的数千家网站的职位显示,目前“HTML5”岗位的需求增长速度在所有开发岗位中是最快的,它在所有开发职位中排名第一。同时,iOS紧随其后,位列第二,而另一个岗位位列第三。

    可见,HTML5 是较为热门的前端岗位。在 2010 年以及 2014 年底,它出现了两次爆发性的增长。如今,在美国,它的岗位需求甚至超过了 iOS。

    所以市场上优秀的前端工程师相对较缺少,是一个国际问题。

    首先回答第一个问题,前端工程师的地位和薪水能够上涨,一方面是由于供不应求的市场经济因素,另一方面与前端工程师独有的特性有着紧密的联系。对于前端初学者来说,他们对前端开发的了解还比较浅显,现在分享一篇看到的博客吧。

    Jose 为美国的前端工程师。他依据自身求职的经验、面试的经历以及项目工作的体会,回答了这个问题。文章篇幅较长,主要从三个方面对这个问题进行了回答:

    1、前端是相对来说的一个新领域

    这些岗位中的大部分已经存续多年了。然而,在网络行业中,对这些岗位进行合理规范的需求是在最近 10 年才开始提出的。

    2、普遍存在误解

    大多数人心中的前端工程师的工作情况;实际上前端工程师的工作情况,二者完全不是一个事儿。

    3、大量糟糕的前端工程师存在

    糟糕的前端工程师进行的工作和优秀的前端工程师进行的工作不是同一层级的。

    下面是原文,我简单翻译了一下。

    一、相对来说,前端是一个新领域

    很多人或许认为前端开发与网页开发相近,而网页开发已有 20 多年历史,故而觉得前端不是新领域。然而,前端工程师概念中的接口技术实现以及用户体验作为一个专业工作领域,无疑是十分新颖的。大约在几年前,前端开发的技术增长速度很快,如下图所示:

    过去几年前端工程师的可视化增长趋势 by  

    大多数互联网圈外的人认为,网页开发是处于网页可视化设计与技术实现之间的一条界限,且这条界限较为模糊。因为网页开发确实是一部分前端工程师的工作,同时人们觉得前端工程师只将精力集中在用户接触的那部分。

    最近,把接口技术实现和用户体验当作一个专业领域的概念才刚刚开始兴起。十五多年前,网页的可视化设计和技术实现所需的资源是平均分配的。随着网站不断发展,网站不再仅仅是一个登录页面,工程资源的需求逐渐明显起来。人们开始专门去学习网站专用的、后端技术、UX 以及数据库,甚至系统设计。

    今天,有一个类似 Quora 的 Web 应用程序,投入的工程资源比设计资源多很多。这意味着现在,做出网页的视觉设计比进行技术实现要更快。这并不是说与 20 年前相比,可视化设计变得不重要了或者投入的资源减少了,而是说如今的网页需求需要更多的工程师来满足。

    一个 Web 应用程序的技术实现涵盖多种领域。在 90 年代,“网站工程师”是多面手。他们有的源自数据库管理员和系统管理员;有的来自后台工程师;有的来自软件工程师;有的来自 UX 工程师;还有的来自前端工程师。最新的情况可能令人最为恐惧,即通过使用 HTML 和 CSS 进行修修补补来创建一个视图,使其能适配所有的浏览器。要享受成为前端工程师,你需要对视觉设计有兴趣。或者,你得乐于成为一个受虐狂。

   


    很显然,要处理大量的 Web 应用程序需求,就需要对技术任务进行分类。这样便于多人同时处理网站请求。我不知道哪个任务需要最多的时间,也不知道哪个任务是最难的。但事实上,现在一个人已经不可能快速地解决所有的技术细节了。这是多家网络机构和企业都关心的问题。因此,我之前提到的所有工作描述,像后台工程师、DBA 等等,都被划分到了 web 行业。需要注意的是:这些岗位中的大多数已经存在了很长时间,然而在 web 行业对它们进行合理规范的需求却是在最近 10 年才开始的。

    现在存在一类人,他们独自处理一个 Web 应用程序的所有问题,这类人被称为“全栈工程师”。然而,优秀的全栈工程师的数量同样是稀少的。

    现在,创业公司清楚,要想成功或许需要涵盖一个 Web 应用程序的诸多技术方面,包含前端、后台、DBA 以及运营等。PaaS(作为一种)的出现帮助创业公司摆脱了运营的负担,与此同时,多种 BaaS(作为一种)服务,例如,甚至能够为你的应用提供数据库模型和终端(不过你依然需要有人帮你设计模型)。前端尚未提供这种服务,不过已有一些服务能让你购买登陆页面的前端模块和组件。若你想创造真正的 Web 应用程序,除了求助前端工程师,别无他途,就如同要创立一个品牌离不开请一位设计师一样。

    二、普遍存在的误解

    寻找前端工程师难还有一个很重要的原因,那就是它是一个被广泛误解的领域。前面提到过,大多数人都觉得前端开发是一个“相对而言更简单的领域”。可以用一个已经过时的模式来描述这种误解:

    大多数人心中的前端工程师是:

    1、把文件、图片或者线框做成一个页面;

    2、偶尔设计文件、图片或者线框;

    3、用JS实现动画、过渡效果;

    4、用HTML和CSS编程,实现网页的内容和形式。

    事实上,前端工程师在做的是:

    1、在设计师和工程师之间创建可视化的语言;

    2、根据设计稿定义一组代表内容、品牌和功能的组件;

    为 Web 应用程序设定规格基准;

    根据设备来划分 web 应用的工作;根据浏览器来划分 web 应用的工作;根据屏幕来划分 web 应用的工作;根据动画来划分 web 应用的工作。

    用 QA 基准来保证指南,以此确保品牌忠诚度、代码质量以及产品标准。

    调节 Web 应用程序的样式,其中包含对间距进行调节;对字体进行调节;对标题进行调节;对图标进行调节;对布局进行调节等等。

    7、根据不同分辨率、横屏竖屏等,调节Web应用程序的样式;

    8、标记 Web 应用程序,使之语义化,SEO 友好;

    通过 API 获取内容时,需要考虑其友好性。同时,也要考虑电池消耗的情况。此外,还需考虑设备和客户端的特性。

    开发客户端需要考虑动画方面的流畅性,需要考虑延迟加载的情况,需要考虑交互方面的事宜,需要考虑应用的工作流程。并且,在大多数时间里,都要用来考虑渐进增强以及向后兼容的相关标准。

    保证后台连接的安全,在程序方面考虑采取跨地资源共享(CORS)的措施,以防止跨站点脚本(XSS)以及跨站点请求伪造(CSRF)。

    最重要的是,要符合上述标准。并且,无论是现在还是将来,都始终坚持“用户第一”。

    为了达成上述目标,前端工程师运用了诸多工具。其中有可视化工具,比如 Adobe 的 Macaw;还有编程工具,像 IDE’s、命令行、源代码版本控制、Bash 脚本以及建设任务。有时,我们需要照顾市场,包括对市场进行分析,以及进行 SEO 相关工作和社会媒体方面的事宜。同时,我们也要关注 UX,涵盖动画、过渡、反馈、接口以及可视化语言等方面。此外,还需要进行内容改进,包括处理断点问题、避免使用孤立词汇、提高可读性以及关注颜色等方面。

    三、存在糟糕的前端工程师

    或许难以招到优秀的前端工程师,最明显的原因在于大量糟糕的前端工程师的存在。大家都知道,前端工程师的入门门槛很低,JS、CSS、HTML 这些语言并不是很难掌握,只要花些时间,谁都能够通过网上教程学会。学习(作者自己最爱的语言之一)需要掌握很多计算机知识,Go 也需要,甚至 ANSIC 同样需要。调整网页中的颜色和图片很容易,然而了解网络的软肋则是完全不同的事情。

    最终,前端工程师市场上被做这些事的家伙搞坏:

    糟糕的前端工程师是这样做事:

    滥用 JS 库,原因在于他们实际上并不了解 JS 的内部情况,例如在各种情况下都过度使用。

   


    滥用 JS 插件,并且抄袭别人的代码,即便自己根本无法理解(例如……js)。

    给 Web 应用程序添加 CSS 框架,然而仅使用了 CSS/JS 的 5%。在这个过程中,没有看到任何关于需求方面的内容,也没有看到设计相关的东西,同时没有进行比较和评价。

    4、认为只要添加了CSS框架,网站就可以「有求必应」;

    一边在提及“响应式 web 设计”,然而却对服务器端技术完全不了解;

    用 CSS 编程时,不论预处理器如何,也不论命名规范怎样,却使用了不合适的 /ids/magic 等。

    忽视表现情况,存在内存泄露问题(且对内存泄露的真正含义并不理解),不会对代码进行检测。

    不会用指标来衡量一个产品,或者这种指标只是为了在自己的电脑、浏览器、设备上有效。

    9、忽视软件技术。

    CS 背景并非成为优秀前端工程师的必备条件,然而计算机和软件的基础对用 JS 或浏览器编程极为重要。优秀的前端工程师知晓,web 或许是最具影响力的平台和环境之一,因此在那里执行的程序需要被谨慎对待,甚至比在任何可视化机器上的任何语言都要更谨慎。

    一位优秀的前端工程师要了解所有不同的概念。

    以下是优秀的前端工程师在即时面对普通的任务也会做的事情

    DNS 进行解析,使用 CDN,并且这是作为……的一部分。

    2、HTTP  (, Cache-, If--Since)

    3、Steve 的所有规则(High  )

    如何解决 YSlow 显示的所有问题;如何解决 Dev Tools Audit 显示的所有问题;如何解决 Dev Tools 显示的所有问题。

    5、何时把任务传到服务器和客户端;

    6、缓存,预取和负荷技术的使用;

    JS 能够知晓在何时开始从头进行创作,何时去查找他人的代码,并且还可以对这样做的优点和缺点进行评估。

    某些其他相关的知识和用法(具体列举如……)。

    CSS 标准以及诸如 BEM、等(e.g. BEM, 等)的相关知识和用法;

    JS 包含的电脑知识有:内存管理方面的知识,单线程的相关性质,垃圾收集算法的内容,超时的情况,范围的界定,提升的方式,模式的特点。

    结论:

    现在,前端工程师在 web 中终于有了前所未有的地位。多设备、浏览器和 Web 标准的演变带来了革命,因此寻找专注于 Web 应用程序用户端的人变得很迫切。全世界的前端工程师和开发者都在参与那些改变产品的工作,这些产品能实现我们曾想象 web 可以给我们带来的一切。现在存储着我们所写的内容、所听的内容、所发的 email 以及所看的内容的所有实体都与云相连。

    现在招前端工程师是比较困难的。然而,我知晓有越来越多的人即将加入前端的队伍之中。大多数前端工作提供优渥薪水和办公环境,这是原因之一。同时,web 中的前端编程也变得越来越让人兴奋,因为通过网络提供服务,你有机会接触千万用户的生活,所有的一切都汇聚于浏览器这个东西,它消泯了局限,让人们能够分析、描绘和渲染各种疯狂的想法。

    加油吧,前端!

    Amaze UI

    中国首个开源 HTML5 跨屏前端框架
您需要登录后才可以回帖 登录 | 立即注册

Archiver|手机版|小黑屋|关于我们

Copyright © 2001-2025, Tencent Cloud.    Powered by Discuz! X3.5    京ICP备20013102号-30

违法和不良信息举报电话:86-13718795856 举报邮箱:hwtx2020@163.com

GMT+8, 2025-4-4 21:05 , Processed in 0.089935 second(s), 18 queries .