Some Non-Lethal Programming Books

By Tyler Dobbs - -
Some Non-Lethal Programming Books

Short Disclaimer: I’m sort of underqualified to write about this subject. I’m in no way an expert on the programming books subgenre. But I do read a lot. And all avid readers know the real magic of reading isn’t solely in the information conveyed. So when I throw out a few shekels for a programming book, I do it not because I need a brisk SOS code snippet or a forgotten syntax injection--I’d scurry off to Stack Overflow or trusty Google for those-- but because I want to meet someone who’s doing the very thing I’m undertaking. I want to see what she deems important, what she thinks a new developer really needs to know, and how she can be a helpful guide through this whole thing.

A Few Quick Thoughts on What Makes a Good Intro Programming Book[1][2]

Writing an IPB must be really, really tricky. The only largely straightforward part is the accuracy of the content. In programming there are myriad dos and don’ts that you just have to do and don’t. These draconian, codified rules, be it on syntax, declarations, etc of whatever language, framework, library, etc being written about, for the most part have to be all but nailed, it’s really a don’t-pass-go situation if they’re not.

But then there’s the issue of what kind of IPB will be read linearly. Most of them are treated as reference guides or textbooks (i.e. you only read what you need).[3] But a cover-to-cover IPB demands a kind of carefully thought out triage. And but at the same time being too modular in design can hinder the experience of the reader, it can leave her feeling like every chapter/section/what have you is almost ontologically separate, which can make the whole experience draining and confusing and imbue a mental anhedonia similar to what it feels like to spend extended time with someone you find really boring. Great IPBs are structured kind of like memoirs. Episodic but also concatenated. Conversational but concise. Firm but humble and democratic and collegial. It's not easy. I think any IPB worth its salt treats the reader as a companion rather than an empty vessel.

The worst thing an IPB can do is occlude a reader in a way that demeans her and forces her to reconsider the venture of learning programming. Unlike other books whose subjects are more approachable to the layperson, programming is in its appearance abstruse. Unlike most popular-science books, for example, it’s pretty tough to go into a programming book cold and not feel sort of like what zero-gravity feels like; part of the reason for this is that unlike physics or philosophy the concepts of introductory programming aren’t all that mind bending, it’s really more the fact that programming is akin to learning a new language--now imagine an introductory Spanish book written completely in Español, that can be what a bad IPB feels like.

I know these summaries below don’t sound like what book reviews are supposed to sound like. The point of these summaries/reviews are to help you mitigate what I think can end up being a really insidious part of reading IPBs, which is that upfront the information itself is in a real way not as important as the tact and rhetoric the author employs, the methods with which they transfer this information, and many times the developers who write these IPBs aren’t sensitive to that. The whole book kind of ends up feeling like a distended list. To a novice programmer or a layperson programming can seem like magic and while this is partially some of its allure, IPBs have a certain unfair responsibility to let the reader know it isn’t esoteric or some transcendental revelation. It’s sad to think that there are probably many bright people who wanted to see what programming was all about and got asphyxiated by a book that seemed to have almost a kind of contempt for the reader, like stooping down and explaining the basics was somehow a miserable task or, almost as loathsome, a boring one.

These selections aren’t the remnant of winnowing a large pool of books nor are their inclusion strictly meant to indicate the quality of the programming content, rather they are books I’ve personally found that meet a healthy portion of the prenominate criteria--there's only two covered in this post; there will be more in subsequent posts. The ambit of this post is simply to provide a small list of books that won’t cause headaches, dull moaning, righteous anger, and/or mechanical keyboard smashing.

A Somewhat Dis/honorable Mention: JavaScript: The Good Parts
Douglas Crockford
176 pages
0’Reily Media

I’m including this book under internal protest, only because this is putatively the JavaScript book that you’ll get made fun of for not knowing about. To be honest this book does what you want it to do, which is teach you fundamental JavaScript. (It does come with a disclaimer, that being that it is quote not a book for beginners and quote not a book for dummies). A good test for whether or not you’ll be able to get through this book without wanting to mail Mr. Crockford an unsavory letter is to read the preface, first; this is one time you probably actually want to read the preface, first. It gets the subtitle from the fact that Crockford basically puts forth a subset of JavaScript that comprises the aforementioned ‘good parts’--he also mentions the ‘bad parts’ but more in the way of warnings to stay away from them. Also, placed all throughout the book there are these charts that while sensical and illustrative take way too much brainpower to process. Please don’t get me wrong, this is a valuable book with tons of stuff it’s critical to know, but its also got a pretty nasty persona. Crockford seems to pedestal his opinion, almost tyrannically, and can leave a novice programmer thinking CrockfordScript is the only acceptable and ethically good way to write JavaScript. Either way, it’s one of those books everyone tells you you have to read and you should read it cause if you don’t people will forever tell you you have to read it. So just read it, get all the good stuff out of it, and feel liberated. Lastly, again, seriously, content-wise this a really good book. So don't email me.

You Don't Know JS
Kyle Simpson
Six Books Totaling 1142 pages for an average of 190.33 pages/book
O'Reily Media

It’s not only the awe inspiring amount of knowledge in these relatively slim volumes that makes them so utterly grand; it’s the (for the most part) democratic and almost parental spirit with which they’re written in. Programming can easily become a search for some kind of ubiquitous truth, a capital-R right answer hidden in the haystack, a contextless tonic for all programming woes, but Simpson manages to maintain a sort of epistemic humility and provide tactful and clear instruction on not only basic JavaScript but also on all the greyscale stuff and the complex wiring under the hood. And even when he’s lobbying for a particular way of doing something he lets you know there’s other ways of doing the same thing (or achieving the same result) without implying you’ll ruin your entire codebase. Simpson could be accused of pleonasm, but I’d submit his intention is more noble than the mere transference of exhaustive knowledge, rather it is to be a technocratic docent for all those whose desire is to learn deeply and to guide them in appreciating why profoundly knowing JS is so valuable.

[1] Henceforth IPB.

[2] N.b. I never know whether to use the term coding or programming. So I flipped a coin and coding lost.

[3] Some of these programming books are meant to be reference guides or basically syntax dictionaries. But between Stack Overflow, Google, online documentation, and asking the developer sitting to you, programming books are pretty low on the I-need-this-information-pronto totem pole. The books I’m mentioning here I think are more prone to be read linearly, which is why JavaScript: The Definitive Guide only gets mentioned at the end of a footnote.