英文原文:JavaScript is Cool…and the Market is Hot
事实上,每家专业招聘机构,从 Glassdoor.com 和 Linkedin 到美国劳工部,都报导了就业市场对开发人员需求的增长速度出于意料地快。这种需求可能已经不新鲜了,但是就业市场对哪种开发语言的需求量最大,依然是个热门话题。虽然对 HTML5 技能的依然需求保持稳定,但真正必须掌握的语言就是 JavaScript。
在 Monster 网站的技术求职趋势报告中,特别指出了 JavaScript 是必须掌握的几门技能之一,这要得益于企业级 Web 应用的增长。在 2015 年 1 月,Mashable 网站列出了对于开发人员来说最重要的 15 项技能,JavaScript 排在第二。相比前几年 JavaScript 并不受欢迎,这种变化很明显。博客作者 Glen Maddern 的文章代表了对 JavaScript 的全新思考,他相信 JavaScript 正从一种“凑合”的语言变成一种优秀的语言。
JavaScript 好在哪里?
为什么如今 JavaScript 如此火爆?首先,很多企业都在采用它,它在很多技术系统中均扮演了正面的角色。根据 JavaWorld 的 Martin Heller 的说法,JavaScript 不仅仅可以搭配 HTML5 和 CCS 来构建 Web 前端,在移动应用中也经常见到它的身影,甚至在后端开发领域,它也通过 Node.js 服务器在发挥作用。如果你去读读这篇文章《全栈 JavaScript 介绍》,你就会理解 JavaScript 远远不止是一门“90 秒钟可以掌握”的编程语言那么简单。JavaScript 在产品经理和设计师人群中越来越流行,因为它实现了很多具有良好用户体验的功能,支持大多数流行的网页浏览器和平台。这对于设计师和终端用户来说是好消息。
随着移动领域的飞速发展,消费者和企业用户不管使用什么设备,都开始期望得到高响应性的(译者注:指针对不同设备的显示屏幕自适应地显示内容)、无缝的 Web 体验。那些理解大势所趋的品牌,都撤下了m.开头的移动版网站,开始提供完全动态的体验,它们具有丰富的功能,性能良好,而且可以根据环境为你展示不同的内容。此外,客户端为了达到使人惊叹的效果,也需要动画和交互;最早,Flash 是这些目标的解决方案。如今,JavaScript 能得到更好的效果。
以前原生应用中很多很酷的功能,在网页浏览器中只能用 Macromedia 的 Flash 或微软的 Silverlight 这样的插件才能做出来。今天,JavaScript 配合 HTML5 和 CSS3 就能达到这些效果。复杂的数据交互(比如内嵌过滤、即时反馈、基于上下文的规则等)以前需要花数个星期才能编出来,但现在如果用流行的 JavaScript 库和框架来操作和实现,能达到开箱即用的效果。由于这些原因,前端开发人员的职位需求描述已经从“有 jQuery 经验”,变成了“有 Angular、Node、Bootstrap 和 jQuery 经验”。作为一门语言,JavaScript 在迅速成长,但高质量的开发会不断地催生新的需求。
局限性
光有技术还不能造就一个优秀的开发者。他要有从整体角度去理解和处理应用的能力。JavaScript 可以成为架构和开发策略的一部分,但它本身并不能作为一种架构或开发策略。
换句话说,JavaScript 很不错,但是它不是万能的。有经验有能力的开发者知道,何时何地应该如何去使用它。但开发新手不一样,就像他们对待任何编程语言那样,一旦他们熟悉了某种库或框架,就想着用它来搞定一切,哪怕它对某个任务来说并不是很合适。这个问题要潜伏一段时间才能暴露,这将会给业务的可伸缩性、可维护性和性能带来负面影响。
举个例子,在一些发展中国家,网络带宽、计算机的 CPU 和内存资源都很成问题,这种情况 JavaScript 就不是最好的选择。甚至,用户的浏览器版本落后最新的版本很多,也是很常见的事情,所以如果大量使用 JavaScript 的话,性能和兼容性就会成问题。如果你产品的受众是世界性的,那就少用些“最前沿的 UI”,否则产品到部分用户手里会产生糟糕的用户体验。此外,在安全管控甚严的工业领域,JavaScript 也不是开发应用的好选择。
架构师和资深开发人员理解上面这些因素,知道什么时候使用 JavaScript 是正确的选择,什么时候不是。这里的底线就是把这方面的最佳实践时刻牢记,确保用户体验不受影响。
JavaScript 就业市场展望
JavaScript 会经得起时间考验吗?会长盛不衰,还是昙花一现,很快被更好的技术所替代?换句话说,用 JavaScript 来开发你的企业应用是否保险?
很多开发者同意 Flash 已经穷途末路。部分人认为 Flash 退出历史舞台是自然演化的结果,但更多人都知道是谁击败了它。JavaScript 已经替代了 Flash,至少在下个十年中,它会继续扩张,在各种软件系统中承担越来越多的角色。我们来考虑一下 Flash 提供的功能——主要是 UI 方面的——再把这些 UI 功能的数量乘以几倍来估算应用程序所有方面的功能,可想而知 JavaScript 将带来多大的价值。JavaScript 会有过时的一天吗?当然会,但我们还不知道是何时。
另一个有可能促成 JavaScript 长盛不衰的因素是它总是在不停地演进。新的 JavaScript 库和框架在不断地涌现出来。就在几年前,AngularJS 还处于 beta 测试中;而今天,就业市场对有 AngularJS 经验的开发者的需求空前高涨。并且这仅是一个例子,说明 JavaScript 的前沿成果演变成市场主流的速度有多快。当然知识是多方面的。解决重大问题的能力、最佳实践以及能够清晰地理解这些库和框架如何解决我们面临的挑战,是人事经理为人才定价的最重要依据。
要精确预测一门技术会如何演进是不可能的,但是我们可以确定今天用 JavaScript 写的应用,在未来好多年中都需要得到持续的支持。就算我们乐观地认为 JavaScript 会很长寿,目前的这些产品也需要在未来十年中得到多次升级和修改,以适应企业级的应用。为了能维持业务,或增强 JavaScript 写的应用,企业在当下以及未来都需要拨出预算来和外部机构合作,或雇佣内部的专家。
JavaScript 开发者下一步该做什么
对于那些经历着 Web 技术演进并保持自己的 JavaScript 技能持续更新的开发者来说,这一切都是好消息。但是,刚刚入门的开发者(或刚刚参加工作的年轻开发者)要想抓住这一波机会,应该做些什么呢?当下从事技术工作的迷人之处就在于,所有的文档、示例代码以及其他开发者讨论过的问题,只要稍一搜索便唾手可得。
转投 JavaScript 的开发者,或者想试水现代 Web 技术的人,可以从在线进修课程开始。像 Codecademy 这样的网站免费为初学者提供了 JavaScript 课程。如果开发者希望通过实战来学习尽可能多的知识,那么订阅 Pluralsight 可能是更好的选择。Pluralsight 有更多的课程门类可供选择,从 AngularJS 基础课程,到使用 Backbone.js 在服务端存储数据,样样都有。这些课程都由业界专家编写并解说。
这些库和框架的开发者社区是很强大的。如果你需要面对面讨论解决问题的学习方式,那么你可以考虑找一个本地学习小组或上 Meetup 去找一个,这类小组通常会分享关于特定技术问题的知识。像 StackOverflow 这样的网站也是一个知识宝库,开发者遇到的常见(或不那么常见)的问题都会有。
大多数顶级的框架和库都是开源的,并且托管在 GitHub 上(比如,GitHub AngularJS)。对于当代软件开发来说,GitHub 是一笔无法想象的财富,它提供了大量在不断演进的优秀软件。开发者如果希望帮助开源软件发展,并获得开发者社区的认同,可以通过解决 bug、更新 wiki 和提交新功能补丁等方式来参与进去。而且越来越多的技术招聘者在筛选阶段要求查看应聘者的 GitHub 或 Bitbucket 的账户,使得这一点变得更加重要。
你的职业发展、受欢迎程度和薪水从没有像现在一样,掌握在自己手里。你是否还记得几年前,就业市场对 iOS 开发者的需求量空前的大?如果像你这样的 UI 开发者当时只能站在边上看着那些招聘广告流口水,那么好消息来了:现在是你的时代了。由你统治的市场来了,并将繁荣很久。
关于作者
Areos Ledesma是 AIM 咨询公司的企业发展总监。曾经担任该公司数字体验和用户体验设计的解决方案总监。Areos 是一名经验丰富的咨询师,他在高效领导项目管理方面有卓越的声誉。他精通于管理一项大规模行动的方方面面,包括数字策略、用户体验和视觉设计、快速成型、内容策略、开发、测试和计量。
Will Asrari是 AIM 咨询公司的解决方案咨询师和高级移动开发工程师。Will 是微软认证的 ASP.NET 工程师,他精通 iOS 和移动 Web 开发。他关于数字体验和移动的解决方案致力于用户体验设计原则和以及移动技术如何能创造出吸引人的客户体验,同时又能满足业务目标。