I'm writing a book: Data Wrangling with JavaScript!

I work with JavaScript quite a lot and it shows in this blog, so you won't be surprised to hear that I've been putting together a book that teaches how to do data wrangling in JavaScript.

Data Wrangling with JavaScript book cover

Well this book has just been launched on the Manning early access program!

So please take a look if you are into JavaScript and want to upskill in data wrangling, or just interested in data wrangling from a JavaScript perspective.

You can start with a read of the first chapter which is free. If you join the early access phase you will get access to the first three chapters and then new chapters as they are released. During this phase of the book's development you have a unique chance to give feedback and influence the direction of the book in the months prior to being committed to paper.

I have a discount code for early signups. Pre-order for 50% less with the code mldavis3. This offer expires on February 8th, so get in quick.

Why did I write this book?

JavaScript isn't known for its data wrangling chops. Normally we are told to go to other languages to work with data. In the past I have used Python and Pandas when working with data. That's what everyone says to use, right? So why write this book?

Python and Pandas are good for data analysis. I won't attempt to dispute that. Jupyter Notebook (formerly IPython Notebook) is a great environment for exploratory coding and soon we may have something this sophisticated for JavaScript. I've used Python for working with data, but I always felt that it just didn't fit well into my development pipeline. I'm not saying there is anything wrong with Python, in many ways I really like the language. My problem with Python is simply because I already do a lot of work in JavaScript. I needed my data analysis code to run in JavaScript so that it would work in the JavaScript production environment where I need it to run. So how am I going to do that with Python?

I could do my exploratory and analysis coding in Python and then move the data to JavaScript visualization, as many people do, that's a very common approach due to JavaScript's strong visualization ecosystem. But then what if I want to run my analysis code on live data? I found that I needed to run my data analysis code in production, but for any of it to be usable in production I had to rewrite it in JavaScript. I was never able to accept that this was the way things must be. For me it boils down to this: I simply don't have enough time to rewrite code.

But does anyone have time to rewrite code? The world moves too quickly for that. We all have deadlines to meet. We need to be adding value to our business and time is a luxury we can't often afford in a hectic and fast-paced business environment. I wanted to be able to write my data analysis code in an exploratory fashion, รก la Jupyter Notebook, but code it in JavaScript and then later be able to deploy it to a JavaScript web application or micro-service.

This led me on a journey of working with data in JavaScript and building out my own open-source library, Data-Forge, to help make this possible. Along the way I discovered that the data analysis needs of JavaScript programmers are not well met. I found this state of affairs somewhat perplexing given the proliferation of JavaScript programmers, the easy access of the JavaScript language and the seemingly endless array of JavaScript visualization libraries.

Why weren't we already talking about this?

Did people really think that data analysis couldn't be done in JavaScript?

These are the questions that led me to this book. If you know JavaScript then you probably won't be surprised when I say that I have found that JavaScript is a surprisingly capable language. I feel that JavaScript gives me substantial productivity. For sure, there are problems to be aware of, but all good JavaScript coders are already working with the good parts of the language and avoiding the bad parts.

These days all sorts of complex applications are being written in JavaScript. You already know the language, it's very capable and you use it in production. Staying in JavaScript is going to save you time and effort. So why not also use JavaScript for data wrangling?

Data Wrangling with JavaScript

Available now on Manning early access:

https://www.manning.com/books/data-wrangling-with-javascript

The first chapter is free:

https://livebook.manning.com/#!/book/data-wrangling-with-javascript/chapter-1