JavaScript versus Data Science

We were going to call this book JavaScript for Scientists and Engineers, but David Beazley thought that “versus” would make a better title. While that one-word change sums up how many people view the language, we hope we can convince you that modern JavaScript is usable as well as useful. We changed the second half of the title because hey, data science. We also hope that these lessons will help librarians, digital humanists, and everyone else who uses computing in their research, not just scientists and engineers.

We will cover:

  • Core features of modern JavaScript
  • Programming with callbacks and promises
  • Creating objects and classes
  • Writing HTML and CSS
  • Creating interactive pages with React
  • Building data services
  • Testing
  • Data visualization
  • Combining everything to create a three-tier web application

Intended Audience

We assume that you:

  • can write two-page programs that use lists, loops, conditionals, and functions,
  • can run commands in the Unix shell to navigate the filesystem and create and delete directories and files, and
  • have reliable access to the Internet.

Unlike most introductions to JavaScript, these lessons present an even mix of browser programming and server programming. We give each topic only shallow coverage; if you want to know more, there are many other free tutorials you can dive into once you’ve mastered the basics, some of which are both up-to-date and well designed.


Contributions of all kinds are welcome, from errata and minor improvements to entirely new sections and chapters. Please email us, file an issue in our GitHub repository, or submit a pull request. Everyone whose work is incorporated will be acknowledged. Please see the contributors’s guide for more information, and please note that all contributors are required to abide by our Code of Conduct.