Book Review: Software Design By Example

People can “learn to code” on so many websites, in little in-browser environments. Sites instruct on the basics of ‘for’ loops and ‘if’ statements. In advanced courses, learn algorithms and data structures.

Writing toy programs is eminently teachable. Writing useful programs is something else. And writing them well is a mysterious art.

Greg Wilson‘s new book tackles that. (free online!)

The prerequisites are: basic programming constructs in JavaScript; a little HTML and CSS; basics of Git; install and run Node. These are widely accessible online for

The outcomes are: writing really useful programs, and understanding hundreds of the concepts that a professional programmer needs.

I love that it starts out with files, and defines “filesystem” and “directory” and “operating system.” People who didn’t grow up messing around in DOS need these words!

I love that the first example program it asks you to run fails. The book shows how to read the error message and stack trace, and then explains what a callback is, and why JavaScript uses them.

Here is a small randomly-selected sample of covered concepts: immutability, glob, head and tail, extensibility with polymorphism, AST, dependencies, API, asynchronous promise execution, cryptographic hash, LSP, shell variables, LRU cache.

Software Design by Example is the book I’ll recommend to every new dev, with or without a college degree. It is nice to you. It wants you to succeed. It doesn’t cover the same starting material that every “Learn to program” book covers. It’s a bridge from “learn to program” to working programmer. Thank you Greg!

Free on Greg’s website * Amazon * Routledge