(also published on medium)
A nice thing about 2017 was getting to read more books than previous years, with the aim of working my way back to an inveterate reader. Here are some notes on a few I enjoyed over the year.
Bandit Algorithms for Website Optimization by John Myles White is the best written software book I’ve read in years. Short and lucid it covers basic A/B testing techniques before moving onto Multi-armed Bandits. It works up from simple to more complex examples without any jarring unexplained jumps. The brevity of the book is welcome — with the increasing pace engineers need to pick up new skills there’s less and less time to to read “standard size” (300–500pp) computer texts, or iterate through long early access programs. This book is just 70 or so pages, O’Reilly could run an entire series following its structure and approach. Even if the subject matter isn’t directly interesting, I think it’s worth picking up just as an outstanding piece of technical writing. As an added bonus for people getting into machine learning, this, though maybe not intentionally, can act as a basic introduction to reinforcement learning.
Data Mining: Practical Machine Learning Tools and Techniques 4th ed., Ian Witten, Eibe Frank, Mark Hall, Christopher Pal. I’ve bought every edition of this book, this being the fourth. With am engineer hat on, its been a very useful introduction to data science and machine learning techniques. The book for me has always done a great job of building up to what learning systems are like and the basic approaches. The new chapters on deep learning and probabilistic methods in this edition are welcome but incongruent. The rest of the book is pretty grounded, these new chapters are abstract, likely added given advances in areas like neural networks since 2012 —but if you want a principled formal introduction to deep learning, there’s Deep Learning, and for a practitioner, Deep Learning With Python is a good go to. A dedicated chapter on random forests would have been welcome and maybe more in fitting with the book’s overall focus. The Weka toolkit is everywhere in the book, and that’s fine, but in 2017 it makes it hard to recommend the book outright to a practitioner, over say investing time in scikit-learn. There’s a gap in the market for an introductory machine learning and data analytics book written for engineers, and this fourth edition isn’t quite it. Still, for me, a good book and a personal favourite.
Deep Learning With Python by François Chollet’s and just mentioned, covers neural networks using the Keras library. The book makes a useful split between text and image examples and has a great practical overview of tensors, gradients and network structures for programmers in chapters 2 and 3. I have an electronic copy I’m still working my way through and will almost certainly buy up a print one to write notes on and/or hug, now that it’s published and out of early access. Deep Learning With Python is best introduction to deep learning for engineers I’ve read — Chollet’s as good a writer as he is a library designer.
On the more operational side, there was Production Ready Microservices by Susan Fowler and the second edition of Release It! by Michael Nygard. I’m a sucker for checklists and Production Ready Microservices is largely formed around them. It’s a short, very well written read that covers a surprising amount of ground in 140 or so pages, and makes a good jumping off point for developing your own review and preflight processes. At work I leverage checklists for service reviews and it was fun to cross-check lists (relieved at common coverage and shaking my head at missed items this book points out). There isn’t anything like Production Ready Microservices on the market and it’s a must read for running real world microservices. Release It! is a renowned book and I was very much looking forward to the new edition. Concepts it popularized, like circuit breakers have been embedded into libraries and infrastructure over the last decade. The first edition was forward looking for its time, revelational in its focus on how things worked in production rather than the act of software authoring, testing and patterning which was more common back in 2007. This edition, still in early access, feels interstitial, between times. It reflects both the older, more phased, on-metal approaches to development and more recent approaches where software is continually incrementally shipped to server-like abstractions. The fundamental shifts since 2007 being, service engineering happens on clouds, and operations is part of an engineer’s role. The book speaks to these shifts but they do not seem central.
Persepolis Rising, James S.A. Corey. I love The Expanse universe‘s entertaining mix of action, characterisation, and the believable future colonisation of the Solar System (and beyond, in this book). The characters this time around are older, not much wiser, and facing a new kind of threat. A feature of the series for me has been plausible non-cutout “bad guys” and this is no exception — Singh is particularly well worked. Lots of fun and a great addition to the series.
A Game of Ghosts, John Connolly. Another year, another Charlie Parker. This one’s a continued return to form — apart from the previous and excellent A Time of Torment, I’ve found myself wanting to get to the end of some of the later books due to an over-emphasis on ominous portent. This one’s squarely a noir crime thriller like the earlier books, driven by plot, some awful criminals, and the paranormal used to tinge and unsettle the book’s mood. Parker is a much weakened and frail character this time, and more realistic for it. Can’t wait for next year’s The Woman in the Woods.
Annihilation, Jeff VanderMeer. Growing up as an avid sci-fi and horror reader, I found the weird fiction genre very hit and miss, especially anything by HP Lovecraft. So I wasn’t sure what to expect from Annihilation, first part of the Southern Reach trilogy. Suffice to say, it’s brilliant. Ostensibly a sci-fi thriller about an expedition team entering an ecological anomaly called Area X, it gradually becomes creepy and disorientating. VanderMeer’s ability to confuse the reader into acceptance without ponderous or ridiculous prose, reflecting the confusion of the expedition team, is impressive. The effect of the book reminded me of parts of the The Martian Chronicles or the first half of House of Leaves, but arguably better than either. This is masterful writing that really draws you in. I’ve read the full trilogy at this point, it only gets better.
The Retreat of Western Liberalism, Edward Luce. Wide ranging and high level overview of the state of “The West”. The coverage of relative growth, wealth and stagnation is good (the world is getting wealthier on the whole especially India and China, but the western middle class is flat or declining). The book opens in 1989 when Luce was in Berlin, and while he doesn’t say it, you wonder if he thinks a similar disintegration may happen in the West — at the very least the book outlines the case that the advance of western liberal and democratic programs are no longer givens. There’s probably nothing in this book that isn’t covered elsewhere, but it’s level headed, well synthesized, and absent polemic, which is a nice change to the shrill coverage of events online. The book arguably becomes less lucid the more it looks forward, but it’s an excellent, grim but not pessimistic, overview of current affairs.
Competing Against Luck, Clayton Christensen, Taddy Hall, Karen Dillon, David Duncan. The topic, Jobs To Be Done (JTBD) framework, has relatively little material available. This is good place to start, especially if you’re have more of a business/commercial background, than say product/design where the idea is really starting to take hold. The anecdotes are insightful and varied and especially relevant for those in established industries. The book does a good job of outlining the difference in mindset between looking at customer problems and needs rather product features and differentiation. There are additive concepts, like little hires and competing against nothing, that I would love to see developed in a future book. The takeaways and questions at the end of each chapter help the main ideas stick.
The Ends of the World, Peter Brannen. A stunning and hugely entertaining description of the Earth’s five mass extinction events. The depictions of the events are extraordinary — the description of the meteorite hit we are largely familiar with from the Cretaceous extinction, which wiped out the dinosaurs, is eye-watering. Apart from the events and their impact, the mechanics of the carbon cycles are very well explained, and the character sketches of scientists are charming. Brannen excels at establishing a real sense of geological scale, both of how far back these events occurred and the shocking length of time it takes life to get back into kilter. This is the first of what I hope are many science books by him.