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


Posted in Javascript onSeptember 03, 2016

最近在和招聘经理交流现在找一个好的程序员有多难的时候,我渐渐意识到了现在编程语言越来越倾重于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写工具在技术上是可行,并且将会创建一个不必每次加载代码到内存中时就重新编译的二进制文件。

你有什么感想?

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

英文原文:7 Reasons Every Programmer Needs to Learn JavaScript
翻译作者:码农网 ? 小峰

Javascript 相关文章推荐
js去除输入框中所有的空格和禁止输入空格的方法
Jun 09 Javascript
jquery实现对联广告的方法
Feb 05 Javascript
node-webkit打包成exe文件被360误报木马的解决方法
Mar 11 Javascript
HTML5实现留言和回复页面样式
Jul 22 Javascript
Bootstrap基本组件学习笔记之按钮组(8)
Dec 07 Javascript
JS如何生成一个不重复的ID的函数
Dec 25 Javascript
详解Angular2组件之间如何通信
Jun 22 Javascript
使用JavaScript根据图片获取条形码的方法
Jul 04 Javascript
js原生代码实现轮播图的实例讲解
Jul 28 Javascript
vue组件Prop传递数据的实现示例
Aug 17 Javascript
JS面向对象编程基础篇(三) 继承操作实例详解
Mar 03 Javascript
如何在vue中使用video.js播放m3u8格式的视频
Feb 01 Vue.js
JavaScript 冒泡排序和选择排序的实现代码
Sep 03 #Javascript
浅析$(function) ready和onload 的区别
Sep 03 #Javascript
详解Javascript中prototype属性(推荐)
Sep 03 #Javascript
jQuery基本选择器之标签名选择器
Sep 03 #Javascript
基于JS实现回到页面顶部的五种写法(从实现到增强)
Sep 03 #Javascript
jQuery dataTables与jQuery UI 对话框dialog的使用教程
Sep 02 #Javascript
AngularJs  unit-testing(单元测试)详解
Sep 02 #Javascript
You might like
一些php技巧与注意事项分析
2011/02/03 PHP
php中通过curl smtp发送邮件
2012/06/05 PHP
PHP实现四种基础排序算法的运行时间比较(推荐)
2016/08/11 PHP
弹出模态框modal的实现方法及实例
2017/09/19 PHP
Laravel创建数据库表结构的例子
2019/10/09 PHP
学习YUI.Ext 第四天--对话框Dialog的使用
2007/03/10 Javascript
javascript TextArea动态显示剩余字符
2008/10/22 Javascript
JS简单实现登陆验证附效果图
2013/11/19 Javascript
JS判断网页广告是否被浏览器拦截过滤的代码
2015/04/05 Javascript
jquery实现鼠标经过显示下划线的渐变下拉菜单效果代码
2015/08/24 Javascript
纯css下拉菜单 无需js
2016/08/15 Javascript
JS中利用swiper实现3d翻转幻灯片实例代码
2017/08/25 Javascript
微信小程序 页面滑动事件的实例详解
2017/10/12 Javascript
Angular通过指令动态添加组件问题
2018/07/09 Javascript
关于layui时间回显问题的解决方法
2019/09/24 Javascript
javascript开发实现贪吃蛇游戏
2020/07/31 Javascript
原生js实现俄罗斯方块
2020/10/20 Javascript
[02:52]2014DOTA2西雅图国际邀请赛 CIS战队巡礼
2014/07/07 DOTA
Python自动化测试工具Splinter简介和使用实例
2014/05/13 Python
详解Python中最难理解的点-装饰器
2017/04/03 Python
Pycharm远程调试openstack的方法
2017/11/21 Python
浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
2018/04/10 Python
python实现坦克大战游戏 附详细注释
2020/03/27 Python
PyCharm取消波浪线、下划线和中划线的实现
2020/03/03 Python
pycharm 代码自动补全的实现方法(图文)
2020/09/18 Python
python 元组和列表的区别
2020/12/30 Python
pycharm激活码2020最新分享适用pycharm2020最新版亲测可用
2020/11/22 Python
Python爬虫后获取重定向url的两种方法
2021/01/19 Python
CSS3 Media Queries(响应式布局可以让你定制不同的分辨率和设备)
2013/06/06 HTML / CSS
使用css3制作动感导航条示例
2014/01/26 HTML / CSS
如何高效率的查找一个月以内的数据
2012/04/15 面试题
办公室保洁员岗位职责
2013/12/02 职场文书
网络编辑求职信
2014/04/30 职场文书
武侯祠导游词
2015/02/04 职场文书
MySql开发之自动同步表结构
2021/05/28 MySQL
win10壁纸在哪个文件夹 win10桌面背景图片文件位置分享
2022/08/05 数码科技