阅读更多
最近在和招聘经理交流现在找一个好的程序员有多难的时候,我渐渐意识到了现在编程语言越来越倾重于JavaScript。Web开发人员尤其如此。所以,如果你是一个程序员,那么你应该去学习JavaScript。



需求

我之所以这样说的主要原因是,随着JavaScript的日渐成熟,以及Node.js方案变得越来越可行,我们对JavaScript程序员的需求正在持续增长。 JavaScript在需求比例上已经超过了C#,仅屈居于Java之下。如果你看看GitHub上可行的项目,你会发现JavaScript出现得越来越多,甚至领先于Java和C#。最后,再看看StackOverflow,你会发现JavaScript也处于顶层活跃中。

更好的薪酬

根据SitePoint,JavaScript的薪资要高于C#。当然,虽然现在Java的薪水还是比JavaScript高上那么一点。但随着JavaScript需求的增长,你可以预见它的薪酬肯定会提高。

在Gooroo,关于薪酬VS需求呈现的画面略有不同。虽然我们对JavaScript的需求是显而易见的,但是很明显,几种需求较小的语言反而薪酬更高。我怀疑这是因为许多公司仍然认为JavaScript是任何一个程序员都会用的语言。但是,当他们认识到“任何一个程序员都会JavaScript”,实际上是“任何一个程序员只会写蹩脚的JavaScript代码”的时候,也是他们经历惨痛教训的时候。然后需要真正的JavaScript程序员进入清理留下的烂摊子。

在StackOverflow,我们看到了一份非常详细的关于开发人员在过去三年时间中的归类。当你最后看到“使用的技术”部分的时候,我们发现,如果你称自己为JavaScript程序员(这里假设是在客户端),那么你得到的报酬虽然比C#程序员低,但会比Java程序员要好,但如果你说自己是一个Node.js程序员(全JavaScript),那么你能拿到第二高的工资。唯一比Node.js还高的是Objective-C(我假设以后会是,Swift)。

JavaScript正日趋成熟

新的JavaScript标准每年都会发布,而且现在很明显,被添加到JavaScript的语法糖 (Syntactic Sugar)的数量每年都在增加。其中一个我期待的功能是,能在我的JavaScript代码中使用异步和await关键字,以消除回调地狱(callback hell)。

你越早开始学习JavaScript,那么学习起来就越容易。所有的改变都是循序渐进的,就像浏览器正在不断地改进处理JavaScript代码的能力。可以预见在不久的将来,浏览器不仅可以缓存JavaScript文件,还可以缓存JavaScript文件的编译版本。

JavaScript程序员更能被委以重任

大概在一年前我和我的一个老朋友聊天的时候,他提到,他是他们小组(约20个程序员)唯一一个用这样的方式写JavaScript以消除变量对全局范围的污染的程序员。这只是最简单的例子。很多人称自己为JavaScript程序员,却不知道这些基本知识。所以,JavaScript大有可为。

而且不要忘了,现在很多支持性能分析和内存泄漏的工具才刚处于起步阶段。如果你现在就掌握了这些技能,那么将来肯定可以更好地推销自己。

如果你对这一类东西感兴趣,那么可以阅读PluralSight上的一些课程。只要搜索“JavaScript profiling”即可。

日趋完善的框架

Angular的新版本正在开发中,而且还有Aurelia作为候选。商业产品如Scencha的EXTjs。还有用于服务器端编程的Node.js。等等等等。用JavaScript开发实际的应用程序并不太难。我敢保证,如果我愿意的话,我完全可以只用JavaScript来写一个可以运行的桌面应用程序。嘿嘿。

JavaScript无处不在

JavaScript可运行在所有主要平台的所有主流浏览器上,也可运行在每一个主流操作系统的服务器端上。现如今我们在为网站写任何一个主要功能的时候都需要有懂能够用JavaScript写前端的开发人员。而后端代码是用什么编写的则无所谓——不管是Java,PHP,.NET,Node.js还是其他——但是客户端就一定需要一个JavaScript开发人员。事实上,现在很多开发人员依然没有认识到JavaScript有多么强大。不知道正在阅读的你是否也是这些井底之蛙的一员。如果你确实是一个了不起的JavaScript程序员,那么基本上所有有关于服务器端平台的工作都能够胜任。如果再了解这些平台基本上就可以上任了。

JavaScript是一种编译语言

这也许会吓你一跳,从技术上说,JavaScript是一种编译语言。这有两个含义。首先,一旦代码被编译,它的运行速度或许就能媲美于任何其他可执行文件。其次,为JavaScript写工具在技术上是可行,并且将会创建一个不必每次加载代码到内存中时就重新编译的二进制文件。

你有什么感想?

当然,以上都是我的观点。你有什么感想吗?欢迎不吝赐教。

译文链接:http://www.codeceo.com/article/7-reasons-learn-javascript.html
英文原文:7 Reasons Every Programmer Needs to Learn JavaScript
翻译作者:码农网 – 小峰
  • 大小: 398.7 KB
来自: 码农网
2
0
评论 共 3 条 请登录后发表评论
3 楼 houxinyou 2015-11-03 15:11
每个程序员???一个写底层硬件驱动的程序也要学JS????学他干啥?
2 楼 liujiaoshui 2015-10-27 11:31
要是js程序员也跟java程序员一样多,谁能想象薪资是多少。。。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • C#毕业设计——基于C#+asp.net+sqlserver的工作流引擎系统设计与实现(毕业论文+程序源码)——工作流引擎系统

    大家好,今天给大家介绍基于C#+asp.net+sqlserver的工作流引擎系统设计与实现,文章末尾附有本毕业...省略《基于工作流引擎的系统框架设计开发——工作流引擎子系统》是采用Visual C#以及Microsoft SQL Server2000来

  • 云原生 AI 的资源调度和 AI 工作流引擎设计分享

    这次分享讲解了单机单卡、单机多卡、多机多卡等场景下云原生 AI 的资源调度和管理方法,介绍了可以帮助 AI 工程师屏蔽底层资源复杂性、无缝对接 AI 任务与 AI 资源的 AI 工作流引擎 PaddleFlow 的技术架构和产品细节...

  • 工作流引擎核心设计思路!

    2.5 工作流引擎和状态机的差异 在之前的文章里面,我们有对状态机和工作流引擎 做过一次简单的对比 ,事实上,两者之间并不是一个完全对等的概念: 状态机 是系统状态以及这些状态之间转移和动作等行为的数学计算...

  • 工作流引擎

    工作流的概念起源于生产组织和办公自动化领域。它是针对日常工作中具有固定程序的活动而提出得一个概念。它的主要特点是使处理过程自动化,通过将工作分解成定义良好的任务、角色,按照一定的规则和过程来执行这些...

  • workFlow学习总结---------------------常用的工作流引擎

    Snaker是一个基于Java的开源工作流引擎,适用于企业应用中常见的业务流程。本着轻量、简单、灵巧理念设计,定位于简单集成,多环境支持 轻量: 核心代码行数大约7000行,强大的扩展性,支持Spring、Jfinal、Nutz平台...

  • 工作流

    工作流 什么是工作流 工作流(Workflow),指“业务过程的部分或整体在计算机应用环境下的自动化”。是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。在计算机中,工作流属于计算机支持的协同工作...

  • 大数据任务调度和数据同步组件初探

    基本变化不大 本文将会对业界主流的任务调度服务 和 数据同步服务 做一些介绍,大家可以参考,择优选择更适合自己业务需求的服务 进行尝试 云原生背景下的任务调度组件 这里列举三个主流的任务调度服务: azkaban、...

  • 分布式任务调度平台XXL-JOB

    《分布式任务调度平台XXL-JOB》 目录 《分布式任务调度平台XXL-JOB》一、简介1.1 概述1.2 社区交流1.3 特性1.4 发展1.5 下载文档地址源码仓库地址中央仓库地址1.6 环境二、快速入门2.1 初始化“调度数据库”2.2 编译...

  • 动态业务工作流引擎Superflow研究概要之三-----应用模型

    第四章 应用模型本人研究了多年的工作流引擎技术,颇有一些心得,愿意把这些点滴的积累奉献出来,与大家共享。本人研究了多年的工作流引擎技术,颇有一些心得,愿意把这些点滴的积累奉献出来,与大家共享。是什么...

  • 进入AI领域做产品 —— 我的自学之路

    做产品经理这份工作将涉及大量选择,本质上,是需要“输入→内视→输出”的环节更多,所以为了更好的去进行“输出”,学习“输入”(AI基础认知、产品认知、技术通识)以及“内视”(认知框架)的重要性就不言而喻了...

  • Kubernetes 学习总结(19)—— Kubernetes 集群管理平台如何选择?Rancher vs KubeSphere

    前言 Kubernetes(K8s)集群管理平台都是基于 Kubernetes 提供功能,可以说他们是在 K8s 的基础上封装了一层更为友好的操作方式。他们都是为了降低 k8s 集群运维复杂度...Rancher 是一个开源的企业级容器管理平台。...

  • 几种将将虚幻引擎内容流送到多个平台的推流方案比较

    这就意味着如果要让内容尽可能地触及到更多用户,就要以性能最低的设备为基准开发应用程序,并在所有其它平台上共享该应用,或者针对各个平台开发出多个版本的应用程序,以便满足不同平台用户的需求。在成功的部署...

  • 工作流管理系统

    摘 要随着计算机在日常工作中的广泛应用,人们的许多工作已经依靠计算机来完成,与此同时,各种类型的信息系统...这也是工作流管理系统WFMS从九十年代以来吸引来自研究机构和产业界广泛关注的重要原因.本文首先对工作流技

  • Java定时器演进过程和生产级分布式任务调度ElasticJob代码实战v2.5.2

    分布式的系统存在分布式问题,底层基于Quartz的分布式调度ElasticJob正是用来解决分布式系统中常见的任务重复执行、任务负载均衡、统一任务调度、任务故障转移等,也提供了静态和动态创建定时任务代码示例

  • 阿里云云原生数据湖体系全解读——数据湖 云原生计算引擎

    10 年来每个数字化企业必不可少的开源大数据解决方案。 主要分为以下几层: ECS 物理资源层, 也就是 Iaas 层。数据接入层, 例如实时的 Kafka, 离线的 Sqoop。存储层, 包括 HDFS 和 OSS, 以及 EMR 自研的缓存...

  • setting.xml文件,修改Maven仓库指向至阿里仓

    setting.xml文件,修改Maven仓库指向至阿里仓

  • 基于java的玉安农副产品销售系统的开题报告.docx

    基于java的玉安农副产品销售系统的开题报告

  • dev-c++ 6.3版本

    dev-c++ 6.3版本

  • 基于java的项目监管系统开题报告.docx

    基于java的项目监管系统开题报告

  • 基于springboot多彩吉安红色旅游网站源码数据库文档.zip

    基于springboot多彩吉安红色旅游网站源码数据库文档.zip

Global site tag (gtag.js) - Google Analytics