乐趣区

优秀的前端开发者为什么难找


这是一个合理的问题。对外行而言,前端开发一定看起来易如反掌吧。但如果是这样的话,为什么前端开发者不是多如牛毛呢?

答案很简单:前端开发,就像任何特殊行业或体育比赛一样,比它看起来难得多。它不难,直至你把脚趾放进去,方知水很深。

前端开发比它看起来要复杂

且不说服务器端的开发有多难,要知道客户端的工作所遇到的问题仍然很重要。作为一名前端开发者,大部分的工作必须用 HTML 和 CSS 完成,这使得解决问题可用的工具十分有限。JavaScript 到处都有用,但是功能检测意味着性能开销。它意味着更多的代码,以及更多代码出错的机会。此外,一旦你的网站开始增长,CSS 的使用将会很痛苦。它非常静态,于是你最终不得不把代码大量记在脑子里。

陡峭的学习曲线,部分原因是由于该领域不断变化的性质。在前端,总有新东西可学:响应式媒体查询,HTML 应用缓存,CSS 转换,WebGL 等。所有这些工具为前端开发者带来了令人兴奋的新的可能性,但也改变了他们工作完成的方式。

这也意味着前端开发的教学方式在尽可能频繁并准确地改变着。不幸的是,没有哪位教练能够期待与不断变化的技术保持同步,也就是说每一个新进入职场的前端开发者都已经落后了好几个阶段,他们必须努力填补自己的工具箱,而必要资源的供应是永无止境的。

前端开发不仅是开发

前端不仅仅是代码。它跟代码与用户的交互有关。在客户端的开发中,不佳的设计很容易成为产品与受众之间的障碍。一名好的前端开发者需要理解网络性能和决定线上成功的不同评判标准。这意味着 HTTP 缓存,优化 DNS 查询时间,极简化构建脚本,并且为项目选择最佳的 CSS 布局机制。

不仅如此,一名好的前端开发者还需要理解市场。这意味着明白用户的心理,为产品的易用性与可用性区分优先次序,并维持强大的搜索引擎优化。这还意味着对设计理论有一个基本的了解,并偶尔参与几乎不可能实现的平面设计工作。

对于客户端开发而言,注重产品的安全也是很重要的,要防止 CSRF,XSS,DNS 锁定和点击劫持。但并不是所有的前端开发都是客户端的——即使前端开发者也需要时不时地深入到服务器端代码。这是对的:一个好的前端开发者也需要是一个好的后端开发者。

这意味着产品要兼容一切

开发者彼得-保罗·科赫,道格拉斯·克罗克福德,和尼古拉斯·扎卡斯都同意——“前端开发是世界上最糟糕的开发环境。”原因在于:兼容性。一旦一名前端开发者完成了他的工作(以及一大堆其他的工作),他们得立马回到工作上,确保产品在每一种浏览器、移动设备,甚至阳光下的高端烤箱上功能最佳。这可是一大堆的工作啊。

即兴思考一下,你能想到多少互联网浏览器?仅举几例,前端开发者有 Chrome,Firefox,Opera,Safari,IE 浏览器,以及现在的 Edge 要开发——更别提每个浏览器过去的各种版本,都必须考虑兼容性。想想这个:IE 浏览器的每个版本,从 6 到 10,都有其自身独特的缺陷与局限。但是,满足每一个浏览器的需求仍然很重要,否则的话许多用户将无法访问你的产品。

而这仅仅是台式机市场。现在考虑一下用户可能用来访问你的服务的每一种型号的智能手机与平板,它们每一个都要求不同的输入方式。这项服务在没有键盘的情况下还能工作吗?没有鼠标呢?它支持触摸屏吗?它有手势吗?这项服务必须在所有情况下都有效——即使是在用户调整输出以满足自己的需求的时候。无论用户是调整文本大小,改换颜色还是完全禁用 CSS 或 JavaScript,产品都必须保持工作。就如同前端开发者布拉特·博赫卡里奥夫所说,“我们在各种能想到的设备所运行的不一致的平台上使用着蹩脚的工具…不管是什么,要确保产品适用于每一个人。”

所以,为什么优秀的前端开发者这么难找?因为要成为一名优秀的前端开发者是很难的——或许比你想象的要难得多。一名优秀的前端开发者必须要有耐心,决心和意愿,去满足传统开发之外的多种不同角色,与此同时要确保产品对于尽可能多的受众而言是最优的——是的,那必定是来之不易的。

原作者:Ilias Ismanalijev

文章来源:Medium

翻译:Joyce Cheng

退出移动版