One year later

It was about a year ago this time when I started Project Euler as a way to brush up on some math and perhaps learn something about computers along the way. This was a perfect complement to my dissertation-writing. These were small projects that I could solve any way I wanted--some hardly even required a computer--and for which the costs of failure were small. Computer work and philosophy remain ideal twin pursuits, but the balance between them has shifted: I'm now a full-time worker at a genomics startup. Like everyone at a new-ish startup, I do too many things for a job title to communicate much about my job, but there's a lot of coding and other technical stuff involved. Somehow my whirlwind tour of Ruby, Python, SaaS, Ruby on Rails, Django, algorithms, C, C++, SQL, and assorted front-end stuff (and various small study projects I'm forgetting) ended in bioinformatics... which is perfect for me. I constantly need to learn new tools and technology, which I think is great fun, and the underlying subject matter is fascinating. Genomes behave in stunning ways.

I can't imagine a better topic than coding (broadly understood) for Internet self-study. Free and cheap resources are everywhere, from books to auto-gradable projects. Even if I hadn't wound up benefiting professionally from my studies, my life would still have become more efficient, more informed, and more fun.

I've been through a (virtual) mountain of books, tutorials, podcasts, blog posts, essays, and Tweets this past year. Perhaps there is some future benefit, to me or other people, to my listing a few resources that have been most helpful.

Engineering Software as a Service. The introductory chapters are one of the best introductions to, and defenses of, agile development. More than any other book or blog post, it has helped me to think about SaaS accurately and effectively. (Not that I don't have a long way to go to really understand SaaS.) I've also watched a bunch of Armando Fox's freely available class videos, and his lecturing style is excellent: blunt, content-rich, and serious, but with a sense of fun.

The Zipfian Academy's blog post on data science resources may or may not be comprehensive, but it's led me to a bunch of the most useful online courses, books, and other resources. And the structure of the post itself contains some useful lessons about the structure of the discipline. has been an incredible bargain for me. Kevin Skoglund's courses are particularly good. It's been pleasantly surprising how useful the videos are as not just as courses but as quick references. Not infrequently, remembering and returning to where I learned something on is the fastest way for me to access some solution, technique, or even command. (And I'm pretty good at Googling.)

Kernighan and Ritchie's seminal book on C is even better than its reputation led me to expect--not least because the prose is remarkably clean, effective, and readable. They do the reader the service of allowing one to think about C, not about untangling sloppy sentences.

Bill Howe's Coursera course on data science is the most useful one I've tried on the subject. The lectures might charitably be called "minimum viable" from a production perspective, but Howe has obviously thought carefully about how to teach the material, and the viewer frequently benefits from the breadth of his knowledge of the subject. He frequently discusses how a subject or tool fits in to the whole current landscape: whether there's something better for a given task, what prompted its development, what misconceptions might be causing people to misuse or misunderstand it, and so on. Also, the exercises are much better than average, and well worth doing.