I decided to write a book.
Yikes. Just writing that now seems scary. You are making something pretty permanent that will forever reflect on how people view you. Anyone, anywhere (hopefully) will be able to pick up your book and instantly come to an opinion on you as a person. Yikes.
For some background, I tend to jump headfirst into projects. I'm not the person to say no to much. Currently, I work full time as a 'Data Scientist' and teach a night class on 'Programming Statistical Methods' for a non-credit certification course through a local university.
I like challenges. This is probably why I like exercising, programming, and learning as much as I can about statistics and machine learning.
So last month, when a publishing company approached me and said, “Do you want to write a book about topic X?”, I gave it some serious thought. The topic was a machine learning library that Google released last November.
When Google released this library, called Tensorflow, it made big waves through the machine learning community. I, like many others, went through the tutorials and tried it out for a bit. It seemed very promising. Then life took over and I haven't had much free time to use it much since.
The beginning of this year, I made a goal- I wanted to create a series of blog posts on Tensorflow and convince people how great it is, which would also force me to actually get real hands on experience with it. Another reason is that a significant subpopulation of the machine learning community immediately dismissed Tensorflow because it was slightly slower than the alternatives. While I know that speed and efficiency is very important, advances in computation and hardware are accelerating quickly. What can be done now in 6 hours will soon be able to be done in 6 minutes. So Tensorflow isn't that far behind. BUT, and this is a BIG BUT, Tensorflow has achieved portability. Any object that can run C/Python code, can run Tensorflow with barely any code changes. This is momentus. Just to give you perspective, your smartphone can probably run C and Python code. So if a company created an amazing machine learning program, they can deploy it to your phone with very little effort. No other machine learning platform can do that currently. In fact, to deploy some of the current deep learning software, you need access to random compilers and programming languages that don't come standard on any machine.
The great thing about blog posts, is that you can go at your own speed and no one really has to notice if they don't want to. I was reading more and gearing myself up for this, when the publishing company sent me an email wanting me to write a shorter technical book on Tensorflow.
The first thing I did was to do some research to see what people said about the publisher and their experience writing a technical book. The overwhelming opinion was that it is not worth the trouble financially and time wise. Well, I wasn't looking for a monetary payday with the book, but the time issue troubled me. I already have many personal projects I wanted to work on and haven't made the time.
The deciding factor was that I will never have time. If I don't have someone (like a publisher/editor) to hold me accountable, the blog posts on the topic will take a while and not help as many people. I figured I could accomplish two things with this book: (1) help people learn about this technical topic, and (2) learn a lot myself in the process.
Last week, I agreed over email to start, with the caveat to extent the time tables for publishing (being as I have to learn a lot before hand as well). Then the publisher sent me a time table that includes sending them a rough table of contents by the end of the month. Today, was my first ability to sit down for multiple hours and do some research and start to flesh out the outline of the book.
I'm glad I started early, somehow in my head, I thought the outline/table of contents would be the easy part. Only by starting this did I realize how tricky it can be. Should topic X be a chapter or subchapter? What is the logical flow of the chapters? Do some chapters depend on others? After a few hours work, I've only got a rough outline for the first two chapters, and potential topics for the remainder of the book. I have a feeling this is going to be a rough year.