当前位置: 首页 > 编程日记 > 正文

每个程序员都需要学习 JavaScript 的7个理由

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

需求

我之所以这样说的主要原因是,随着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
翻译作者:码农网 – 小峰
Alt text

转载于:https://www.cnblogs.com/Bugtags2015/p/5405430.html

相关文章:

【解决方法】你已从聊天服务器断开,正在尝试重新连接

打开360软件管家搜索断网急救箱修复然后上游戏就好了 360邪恶力量 还真就这么神奇0.0 目测是host文件设置问题

linux 修改home 目录

第一种方法:vi /etc/passwd  找到要修改的用户那几行,修改掉即可。此法很暴力,建议慎用。  /etc/passwd文件格式  登录名:加密口令:数字用户ID:数字组ID:注释字段:起始目录:shell程序  …

2018-3-6论文-网络评论中非结构化信息的应用于研究------(语义矩离)

语义矩离 用来描述特征词之间的语义相似度。 常用的计算方法主要有: 根据同义词词典求2个词语编码的矩离 在文章中使用了哈工大的《同义词词林》扩展版 (1)每个词有若干个编码,每个编码有5层代码和1位标志位描述…

Blender 3.0基础入门学习教程 Introduction to Blender 3.0

成为Blender通才,通过这个基于项目的循序渐进课程学习所有主题的基础知识。 你会学到什么 教程获取:Blender 3.0基础入门学习教程 Introduction to Blender 3.0-云桥网 模拟一架基本喷气式飞机 雕刻高细节 重组学 展开UV 绘画和阴影 使喷射动画化 制造天…

python开源商城_Leaf - 一个开发友好、功能完备的开源微信商城框架

Leaf - 开源微信商城系统框架Leaf 旨在实现一个对普通用户易用、对开发者友好的 轻型 开源 CMS 框架;Leaf 基于 Python3.5 构建,后端使用 Flask 作为基础框架、mongoengine 进行数据库建模。 我们希望能减少普通用户搭建微信商城的成本,同时为…

Github配置(git+vscode+python+jupyter)

①下载git 打开 git bash 工具的用户名和密码存储 $ git config --global user.name “Your Name” $ git config --global user.email "emailexample.com" $ git config --global credential.helper store 注意:邮箱必须与 GitHub 注册邮箱一致 以后&a…

1.2 - C#语言习惯 - 用运行时常量readonly而不是编译期常量const

C#中有两种类型的常量:编译期常量和运行时常量。二者有着截然不同的行为,使用不当将会带来性能上或正确性上的问题。 这两个问题最好都不要发生,不过若难以同时避免的话,那么一个略微慢一些但能保证正确的程序则要好过一个快速但不…

2018-3-6 (论文—网络评论中非结构信息应用于研究)笔记-----论文中的特征抽取的模型算法

整体的流程 网络评论预处理------------------->>>>>>利用相关性特征得到网络评论特征抽取的模型算法 特征提取算法模型: 论文46 马尔科夫链(Markov blanket) 具体的意义不懂 特征冗余&#xff…

从头开始学习Adobe Photoshop CC图像编辑

完整课程,涵盖所有关于Adobe Photoshop CC的基本课程 你会学到什么 课程获取:从头开始学习Adobe Photoshop CC图像编辑-云桥网 Photoshop用户界面之旅 转型导论 项目管理 图层面板简介 基本图层属性 混合模式 不可或缺的层效果 投影、内部发光和外部发光…

hbase shell命令_HBASE的shell操作

前言我们知道hbase其实是架构在hdfs上的一个分布式数据库,既然是数据库那么这篇文章就主要围绕着我们最熟悉的增删改查来做。当然了,其实hbase的shell操作在真实的企业中几乎不用,这个很简单,我们的hbase是用来存贮海量数据的&…

BOM、定时器

BOM、 window:frames; history; location; navigator; screen; docunment( anchors; forms; images; links; location; ) 1.定时器 setTimeout 指定函数几秒后运行setInterval 可重复运行指定几秒运行 2.弹对话框 alert 会产生阻塞 confirm 有“确定”或“取消”按钮&#xf…

mysql 树形结构_再读MySQL索引-《高性能MySQL》索引手记

最近工作中经常和MySQL打交道,当数据量小的时候,不同查询方式以及是否使用索引并无大碍,当数据量随着业务的成长急剧加速时,索引的重要性不言而喻。本篇文章以《高性能MySQL》中的索引章节为基础,加之个人对索引的理解…

下午就要考试啦~~附上自己做的考试范围

第一章 测试是否有必要 有。毕竟成本低 什么是软件的质量?(测试检测的是软件的质量,那么是什么软件的质量) 外部质量:用户可感知的,[功能、可靠、易用、效率] 内部质量:代码风格、内聚性、耦合性…

Unity 创建2D平台游戏开发学习教程

了解如何使用C#在Unity中创建您的第一款2D平台游戏 你会学到什么 使用Unity创建2D奥运会 使用可脚本化的对象和单一模式 使用良好的编程实践 创造武器和射弹 使用可脚本化的对象和委托模式创建强大且通用的人工智能 创造具有多重能力的角色 创建级别组件 MP4 |视频:h264&…

Solr和lucene

1. Solr 是什么? Solr它是一种开放源码的、基于 Lucene Java 的搜索服务器,易于加入到 Web 应用程序中。Solr 提供了层面搜索(就是统计)、命中醒目显示并且支持多种输出格式(包括XML/XSLT和JSON等格式)。它易于安装和配置&#xf…

django 链接地址匹配流程

前提&#xff1a; 代码结构 步骤一&#xff1a; 下面为某个网页的链接地址 <body> {% if latest_article_list %}<ul>{% for article in latest_article_list %}<li><a href"/blog/p/{{ article.id }}/">{{ article.title }} </a><…

【Datawhale-Python】Task1

1.环境搭建 略&#xff08;见之前博客&#xff09; 2.python初体验 ①print&#xff08;&#xff09; 略 ②input&#xff08;&#xff09; Python3.x 中 input() 函数接受一个标准输入数据&#xff0c;返回为 string 类型。 >>> ainput() 2 >>> a 23.…

Android高手速成

第一部分 个性化控件(View) http://www.cnblogs.com/huwei0814/p/3796659.html 第二部分 工具库 http://www.cnblogs.com/huwei0814/p/3796670.html 第三部分 优秀项目 http://www.cnblogs.com/huwei0814/p/3796673.html 第四部分 开发工具及测试工具 http:/…

Texlive安装与环境变量配置

下载安装&#xff1a;https://www.jianshu.com/p/25896cc05cb4 去官网下载速度很快 环境变量配置&#xff1a;https://www.jianshu.com/p/f8f6c255098c

2018-3-7论文网络评论中非结构化信息的表示与研究--------实验分析

数据来源&#xff1a; &#xff08;1&#xff09;电子商务网站提供的网路评论 &#xff08;2&#xff09;专门提供网络评论交流平台的网络 &#xff08;3&#xff09;文章中使用的数据为网上某商城关于“某品牌中的一种型号纸尿裤&#xff08;价格75RMB&#xff09;”的2526…

3dmax Vray建筑可视化入门学习教程

面向初学者的3Ds Max Vray最佳Archviz可视化课程 从安装到最终图像的一切都将从头开始教授&#xff0c;不需要任何经验 大小解压后&#xff1a;3.25G 时长4h 6m 1280X720 MP4 语言&#xff1a;英语中英文字幕&#xff08;根据原英文字幕机译更准确&#xff09; 课程获取&…

javascript与浏览器学习(一)

待学习………… 20160421 标题&#xff1a;JavaScript中浏览器兼容问题 博客地址&#xff1a;http://www.cnblogs.com/DF-fzh/p/5408241.html 简单学习。 转载于:https://www.cnblogs.com/Tpf386/p/5416390.html

idea运行jsp显示源码_基于jsp+mysql+Spring+mybatis的SSM在线个人PC电脑商城平台网站系统...

运行环境: 最好是java jdk 1.8&#xff0c;我们在这个平台上运行的。其他版本理论上也可以。IDE环境&#xff1a; Eclipse,Myeclipse,IDEA都可以tomcat环境&#xff1a; Tomcat 7.x,8.x,9.x版本均可硬件环境&#xff1a; windows 7/8/10 1G内存以上主要功能说明&#xff1a; 管…

Dosbox+Masm汇编语言

一篇很不错的教程: https://bingyishow.top/Technical-article/54.html

hypervisor简介

什么是hypervisorhypervisor为操作系统提供独立的虚拟硬件平台&#xff0c;而虚拟硬件平台反过来又提供对底层机器的虚拟的完整访问。hypervisor之于操作系统类似于操作系统之于进程。虚拟化和hypervisor关于什么是虚拟化&#xff0c;请参考我的另一篇博客《虚拟化技术介绍》&a…

非结构化信息-》半结构化-》结构化-》关联数据体系-》数据挖掘-》故事化呈现-》决策导向

非结构化数据介绍来源&#xff1a; 非结构化信息_百度百科 https://baike.baidu.com/item/%E9%9D%9E%E7%BB%93%E6%9E%84%E5%8C%96%E4%BF%A1%E6%81%AF/2002521?fraladdin 总的来说&#xff0c;目前非结构化数据越来越多&#xff0c;怎么提取其中价值信息&#xff1f;&#xff…

元宇宙:基础-虚拟现实栈开发和虚拟土地

元宇宙——如何使用NFTs构建虚拟角色、虚拟环境、空间特征、虚拟土地的沉浸式购买 你会学到什么 元宇宙:从虚拟现实到虚拟双胞胎的基本概念 元宇宙:全栈开发&#xff0c;包括头像、传送、互操作性和隐私 元宇宙:如何建立元宇宙(地平线市场)景观&#xff0c;娱乐&#xff0c;游…

oracle数据库连接设置配置文件

转载于:https://www.cnblogs.com/Ly426/p/5416588.html

python3.7.1安装教程详细_CentOS 7 安装python3.7.1的方法及注意事项

安装wget yum -y install wget 创建一个download目录用于下载各种安装包 mkdir download 切换到刚创建的download目录中 cd download 下载python3.7.1 解压 tar -zxvf Python-3.7.1.tgz 切换到刚刚解压得到得文件夹 cd Python-3.7.1 安装配置 ./configure 注意&#xff0c;我这…

Docker部署SpringBoot项目详细部署过程

​ Docker可比喻成一个装应用的容器,将应用及其依赖文件、数据等打包在容器内,直接运行容器即可把应用运行起来,而无需关心环境配置问题。​ 本文记录个人学习Docker的总结内容,安装、配置和部署等内容,在过程中,应注意命令不要写错,加上Docker插件等问题,若出现理解不到位的地方,请多指出。