跳到主要内容

写在最后

完成本书后,我们应该熟悉了JavaScript和编程的基础知识,因为我们学习的概念在不同的编程语言中都适用。

想一下学习自然语言如英语口语中的过去式。在英语和日语中构造过去式的句子的方式可能不同,但通过掌握过去式的概念,只要明白了它们之间对应关系,你可以轻易地将一种语言中所学的知识转换到另一种语言中。

在本书中,我们使用JavaScript学习了编程语言中的基本结构,如变量、运算符、循环、条件语句、函数、对象和数据。我个人目前所接触到的所有编程语言中都不同程序地的实现了这些概念。它们的语法可能不同,但运行方式非常相似。总的来说,你在一种编程语言中习得的知识很容易转换到另一种语言中。

和JavaScript一起,我们还学习了p5.js函数库。这表示通过通过所新学到的编程知识,你可以继续轻松地使用p5.js。

我们目前所缺乏的知识是如何在网络上部署这一作品,这样可以与全世界分享我们的作品。因为这是一本聚焦于学习如何编程的书,我不希望让类似这样的知识给你的学习带来困难。有很多好资源教授如何在网络上创建应用。

学习到这里你可能会发现还受很限制,尤其是你不打算深入刚刚学习的p5.js的话,那么下一步应该从何开始呢?

下一步的学习内容

正像我在本书开头所说的,学习JavaScript为我们打开了一个广阔世界的大门,因为在很多领域中可以运用这一知识。下一次的走向显然取决于你希望将技能应用在哪里。

如果你希望跨过p5.js 来创建一个面向用户的应用,你需要学习HTML和CSS基础知识来创建项目的图形界面。本书附录中的其它资源版块可以作为一个很好的开始。

在那之后,学习一些DOM API会有助于定位页面中的元素来执行相应的JavaScript命令。如果你想要创建更为复杂些的界面,jQuery可以让我们在操作网页时更容易的使用JavaScript。如果你想要创建更高级的界面,在页面中有大量的交互和状态依赖,像Angular这样的前端框架和React一类的库都会有所帮助。我倒是建议不用着急学习这些工具,虽然现在它们很流行。从纯JavaScript入手,然后用jQuery创建更具挑战些的界面,会有助于你了解那些复杂工具内置已处理好的问题。

也许你想要做一些服务端编程。那么应该选择Node.js这一工具。服务端编程会涉及到浏览器客户端不会存在的后端计算,并可能涉及创建与主机操作系统交互的脚本,如创建文件和目录,以删除它们等等。Node.js不是局限于创建网页应用后端服务。Node.js的主要优势是它为你提供了在本机中的环境而不是浏览器,来运行JavaScript。Node.js让JavaScript不再受限于浏览器环境。比如,有Electron,它是一个基于Node.js的框架,让我们可以使用网页知识来创建原生的桌面应用。使用Electron我们可以用JavaScript来创建一个浏览器,而不仅仅是使用JavaScript在浏览器中创建应用。

也许你感兴趣的是自动网页、编程来连接互联网、从网络上抓取数据。那么,可以使用Casper.js和Puppeteer。如果你想做高级的数据可视化,应该看看D3库。或者你想要涉及机器人行业,或使用JavaScript来对IOT(物联网)设备编程。不妨试试Johnny-Five。使用JavaScript您还可以创建移动端应用(React Native),HTML5游戏(Phaser),数据库(mongoDB) 3D视效以及动画(Three.js),甚至是运用了人工智能(IBM Watson)的认知应用。可查看其它资源中的链接来获取这些资源。

在学习一门新的编程语言时最好能有一个计划:一个你想要创建的应用的洞见。理想情况下,创建一个最小化更用项目,这样不会任务过重也不会需要太多的技术知识。先达到这一点,然后创建下一步的应用,不断变好,一断学习新的知识。欢迎来到编程世界。我期待你所创建的应用。

其它资源

• HTML - https://developer.mozilla.org/en-US/docs/Web/HTML

• CSS - https://developer.mozilla.org/en-US/docs/Web/CSS

• DOM API - https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model

• jQuery - https://jquery.com/

• Angular - https://angular.io/

• React - https://reactjs.org/

• Node.js - https://nodejs.org/en/

• Electron - https://electronjs.org/

• CasperJS - http://casperjs.org/

• Puppeteer - https://github.com/GoogleChrome/puppeteer

• D3.js - https://d3js.org/

• Johnny-Five - http://johnny-five.io/

• React Native - https://facebook.github.io/reactnative/

• Phaser - https://phaser.io/

• MongoDB - https://mongodb.github.io/nodemongodb-native/

• Three.js - https://threejs.org/

• IBM Watson - https://www.ibm.com/watson/ products-services/