I intend to do these more frequently, but here’s a dump of the books I read last year.

The Dinner - I don’t often read fiction, and I kind of wish I hadn’t wasted my time with this one. There’s a subtle twist that’s delivered pretty well, but over all I just don’t think it was interesting enough to make it worth a 300 page book.

Gray Hat Python - The examples are a lot of fun and the author does a pretty good job explaining how everything works. I did every single lab (https://github.com/Grazfather/GrayHatPython) and had to fix a lot of code. The code available on No Starch’s website doesn’t always match the code in the book, and doesn’t always work. I think this is a rather lower quality book than the normally high bar that No Starch Press holds, simply because what looks like sloppy proof reading. Over all, though, I enjoyed it a lot and learned some practical new tricks for pen testing.

How Linux Works - A pretty handy guide for a sysadmin, and does into more detail at the end of each chapter. Not the most exciting read, but I learned a good amount and still use it as a reference occasionally.

Proof: The Science of Booze - I loved this book. The author blends the science along with stories quite well, though some might feel his style is a little bit erratic. I drank a good amount of whisky while reading this one.

The One-Page Financial Plan - Ignoring the fact that the author lost his house during the housing crisis, there were some practical suggestions on how to plan your finances. It mostly boils down to figuring out what you want in life, making sure your partner agrees, and then allocating money appropriately. I was hoping for a book that was more on finance and less on life.

Sub-Human, Post-Human, Trans-Human - The author clearly has a vivid sense of imagination, and he is still starting out, but I wish it wasn’t so obvious how inexperienced he is. I think he should spend more time on polish and less time pumping out books. Considering how good the ratings are on Amazon and Goodreads, I am almost offended: Having read a fair number of ‘classics’ (Ender’s game, Foundation, Dune, etc.), I feel just in saying that this series cannott even hold a candle to them.

Brain Rules - I like that this book is backed by empirical studies and that the author expresses his ideas clearly. Each chapter is concluded with some practical applications of what we have just read. I will need to give this book a re-read, because I am afraid a lot of what I have learned has not stuck (and I need to repeat to remember :)).

Trust Me, I’m Lying - I enjoyed this book a lot, but at the same time it made me angry with how news works today. I could see the obvious truth in most of what he was saying, but hadn’t noticed it as much until it was laid before me, so I would say it’s helped reinvigorated my cynicism. He doesn’t offer too much in the way of how to reverse the problematic path we are on, which I think would have been most helpful but now I know to read everything with an eye of skepticism.

Technopoly - While I would consider the author a bona fide Luddite, I think he does make some valid points, and I found his stories of the past (including the Luddites) interesting. His main point is that no technology has no downsides, but I believe he fails to make a compeling argument that new technology has a net negative affect on society.

Effective Python - This book goes over 59 tips to improve your python code, and I found most handy. There was a mix of what I owould call ‘obvious’ tips mixed in with some tips that I definitely learned from. I wish the book was a bit more advanced, maybe delving deeper into generators, coroutines, and perhaps metaclasses. Most examples included python3, which I appreciate, and the samples had beautiful syntax highlighting. I recommend this book to my junior developers.

How to Solve It - Apparently a classic in the math field, and I can see why. Polya goes into good detail and organizes his book basically as a big glossary. While I enjoyed this book, I found it a bit too abstract for direct application in my life. I am also not sure if math parlance has changed much since Polya penned this, but I did not know much of the terms he was using (e.g. shapes) but when I looked them up, found much simpler synonyms that I had been taught in school.

The Power of Habit - A very easy read, with good anecdotes. While I believe his method could work, it’s mostly applicable for recognizing when you’re falling into a bad habit, and for finding a way to replace it with a better habit. I was hoping more for a book that would help with forming new, good habits, because I don’t feel I have many of the bad habits, like those he uses as examples (e.g. smoking or over eating).

Code Complete - A beast of a book, but filled with plenty of very applicable tips and frameworks to follow. With the fast pace of advancement in software development, I feel that this new edition is already beginning to show its age. Most of the cited sources seem to be from the 60s to the 90s, and we have made leaps and bounds in this field in the decades since. The book is also probably more verbose than it needs to, and I found many of the figures to be nothing more than padding. A new edition of this book, that is maybe 100 pages shorter, would be fantastic, but I still recommend this book to any developer who asks.

Now I Know - I have subscribed to Dan’s newsletter for years now. I bought this book to support him, and to see the extra entries he wasn’t going to publish. By the time I went to read it, though, I think I had read already 80+% of it online. Still a fun bathroom reader.

Zen and the Art of Motorcycle Maintenance - This had been on my ‘toread’ list for years now, and I am glad I finally got around to reading it. It was an enjoyable story and had an interesting method. I am not sure what to take from it, but it does motivate me to care more about what I produce, which may be the point.

Black Hat Python - The sequel to Gray Hat Python focuses more on network-related pen testing, and I think it does a good job. While I am typically more interested in lower-level, host-based pen testing, I really enjoyed the examples, though they seemed to have a bit less depth than the examples in Gray Hat Python, barring the last few in the book. I found fewer mistakes in the code, which I appreciate, but the end of the book seemed to have fallen back to its lazy ways. The libraries used, overall, are more well known, available, and OS agnostic, instead of constraining 90% of its usefulness to someone running windows. Overall it’s an approachable book to practical pen-testing, and a decent introduction to the many python libraries out there.