Here are more books I’ve been reading recently, of the “techie” variety and a bit closer to the usual topics on this weblog.
For electronics, there’s really not much that can compare to “The Art of Electronics” by Paul Horowitz and Winfield Hill - 2015, 1225 pages, ISBN 9780521809269:
It’s not a book to read from front to back, but it really covers just about anything you might want to know about electronics. This new third edition shines in the numerous diagrams and tables of component listings and properties for today’s most common transistors, MOSFETs, op-amps, and all sorts of other foundational stuff.
Once you’ve got the basics, just open the book in a random spot and start reading - there’s fascinating information on just about any of the over a thousand pages.
To learn a bit more about the practicalities of radio electronics, I’m reading through another huge volme, called the “ARRL Handbook”, published by the American Radio Relay League - 2014, 1449 pages, ISBN 9781625950017:
There are updated versions of this classic work, but any recent year is fine - a lot of the technology and knowledge has been around for a long time and remains timeless. It’s chock full of introductory material and sample projects, ranging from very basic to astonishingly advanced.
The other books I’ve been reading, and in some cases re-reading, are all about the software side of things.
First of all, there’s “Thinking FORTH” by Leo Brodie - 2004, 313 pages, ISBN 0976458705 (seems to be out of print):
By now, it’s really a curious mix of archaic techniques and fascinating insights in the constant drive towards simple solutions by making Forth “fit” the problem (as well as re-defining a problem to better tie into it). A must-read if you’re interested in Forth, but do take some of it with a grain of salt…
To get more fluent in Go (the language, not the game), I’ve been leafing through“Go, the Standard Library” by Daniel Huckstep - 2012, 412 pages, available fromLeanPub:
The Go library functionality is superb, not the mention the
huge range of packages you can access with nothing more than an “import”
statement and a go get ...
command to checkout a recent version.
For actual day-to-day reference, I use the Dash documentation browser on macOS, which provides over 160 well-maintained documentation sets. It’s basically a local mirror of web-based information, with a very convenient and fast search interface.
And last but not least, I’ve been reading up again on ClojureScript, the language which marries functional programming with the browser: “ClojureScript Unraveled” by Andrey Antukh and Alejandro Gómez - 2016, 2014 pages, available from LeanPub:
In my opinion, there’s nothing which can even come close in terms of high-level abstraction for designing software - the required processor capabilities far exceed that of a microcontroller alas, so this really only has a use in the web browser (and on not-too-low-end Linux systems + NodeJS).
Once I get back to implementing browser-side front ends, I intend to have a very serious go at using ClojureScript together withReagent, which is a wrapper around the amazing ReactJS library. Will be fun!
The above books are clearly just a personal choice, but I think each one of them stands out in the depth of material they cover and in their timeless content.