事实上,每家专业招聘机构,从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开发者当时只能站在边上看着那些招聘广告流口水,那么好消息来了:现在是你的时代了。由你统治的市场来了,并将繁荣很久。