热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

为什么JavaScript是你应当学习的下一个(或第一个)编程语言

我相信人们进入编程最大的障碍实际上是编写代码相关的所有其它方面的东东。你能够更快地编写代码(至少在你开始学习的时候),在我看来就是一个胜利。每个人都可以访问web浏览器,这意味着每个人现在也能访问一个简单的开发环境了。
  我已经被多次问到,如果我刚刚开始,我应当学习什么编程语言,答案一定是Javascript,下面是为什么:

  最简单的开发环境

  我相信人们进入编程最大的障碍实际上是编写代码相关的所有其它方面的东东。你能够更快地编写代码(至少在你开始学习的时候),在我看来就是一个胜利。每个人都可以访问web浏览器,这意味着每个人现在也能访问一个简单的开发环境了。如果你在使用Mac下的Chrome,按快捷键cmd-opt-j。就来到了控制台,现在你就可以开始编写Javascript并管理你看到的网页了。真不错。还有大量的在线编辑器和工具,比如CodePen,JSFiddle,让你在浏览器搭建更为完整的开发/测试/原型环境。

  简单

  当你开始的时候,Javascript让编写代码变得真正容易,这是非常有效的。定义一个函数,调用它。写个循环。忽略DOM(事实上,也差不多完全忽略了web),只关心简单的逻辑和代码。开始建立对象和数组。JS里的OO模型稍微有些奇怪(特别是对于类和继承),不过还好,你需要灵活些,不管怎样,如果你想成为开发人员的话。一旦你掌握了基础,你就可以更为深入,并发现Javascript的所有力量。

  灵活

  之前讨论的另外一个方面有,Javascript也是超级灵活的(论证也是如此)。一旦你能够从直接嵌在网页里的Sctipt标签里的一些函数,并控制一个图片或菜单,那么很快你就能够继续带有很多文件、较庞大的对象/类形式的结构,复杂的单页应用程序以及整个更加复杂的、完整架构的web应用程序。既然它与DOM和浏览器结合如此紧密,那么Javascript实际上更好地扩展来迎接更大的挑战,可以完美地匹配web应用程序。

  网络原生(web-native)

  足够多的有天赋的移动app开发者让你相信,app是未来,我仍然认为开放的web技术才是未来的关键。给它一些时间,我们差不多用HTML/JS写出所有的移动app,并把打包好的app部署到手机上。我认为这基本上是不可避免的。学习web方面的开发是至关重要的。不管你在工作上主要用什么语言,你都需要基本地了解它,因为不管我们如何努力,你最终还是在操作CSS、调整一些HTML标签等。那不会立即就销声匿迹,我不这样认为。

  不可避免

  几乎是到了最后,不过主要由于思想进化而部署其它方面。实际上我把这是做你为什么要学习Javascript的真正的重要原因。下面是权衡——如果你开发web方面的东西,那么你到最后是在编写Javascript。这无可避免。你可以用服务器端语言(PHP,Python,Ruby)来做。有时候,负载会传递到浏览器,如果你想在远端做些有意思的东西,你将不得不使用Javascript。因此,如果你不得不学习,为什么不能优化这个过程呢(或许在更多地方使用JS,而不是更少)。

  轻便(浏览器/服务器/原生)

  由于我们具有了Node.js之类的东东,Javascript已经超越了浏览器。你不仅可以写服务器端JS(因此你可以用JS开发前后端web应用程序),而且还可以使用node-webkit之类的东西打包成可分发的桌面应用程序,或者使用PhoneGap为任意平台打包成移动app。现在还没有其它语言能够有如此轻便。

  工具链

  如果上面那些原因还不够的话,就开发者工具链而言,激增的Javascript社区在接下来的数年里,还有一条真正的长路要走。我们或许没有像Mac开发者使用的Xcode那样集成的、一站式方式,但是我们有Grunt和Gulp之类的工具,可以建立自己的资源流水线。人们熟知的每个代码编辑器都支持Javascript语法高亮和提示,我们不需要像其他语言的build过程,因此我们可以更加从容.还有一堆测试工具;从单元测试到功能测试,完全模拟了使用浏览器的用户。

  因此不管怎么说——从来就没有开始学习编程的更好时间,如果你想开始,我建议从Javascript开始。从简单做起,慢慢提高。看源代码。去Github。并为之疯狂。

  原文地址:why-Javascript-is-the-next-or-first-programming-language-you-should-learn

推荐阅读
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • Allegro总结:1.防焊层(SolderMask):又称绿油层,PCB非布线层,用于制成丝网印板,将不需要焊接的地方涂上防焊剂.在防焊层上预留的焊盘大小要比实际的焊盘大一些,其差值一般 ... [详细]
  • 导读:在编程的世界里,语言纷繁多样,而大部分真正广泛流行的语言并不是那些学术界的产物,而是在通过自由发挥设计出来的。和那些 ... [详细]
  • 1、概述首先和大家一起回顾一下Java消息服务,在我之前的博客《Java消息队列-JMS概述》中,我为大家分析了:然后在另一篇博客《Java消息队列-ActiveMq实战》中 ... [详细]
  • JavaScript和Python是用于构建各种应用程序的两种有影响力的编程语言。尽管JavaScript多年来一直是占主导地位的编程语言,但Python的迅猛发展有 ... [详细]
  • 让你明白kvm是什么
    参考:https:blog.csdn.netbbwangjarticledetails80465320KVM工具集合:libvirt:操作和管理KVM虚机的虚拟化API ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • DAO设计模式(九)_1.设计分层初步 ... [详细]
  • 使用CocoaPods管理依赖库
    这篇内容将介绍Mac和iOS开发中必备的一个依赖库管理工具CocoaPods。在iOS开发中势必会用到一些第三方依赖库,比如大家都熟悉的ASIHttpRequest、AFNetwo ... [详细]
author-avatar
小炮兵开坦克
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有