Reading technical books ought to be fun and exciting. We should look forward to our hot mug of tea and technical book after a long day.
Join me in changing the conversation by making the #BookHaul inclusive to programmers by celebrating the books we buy.
In this post, I cover programming books of all kinds, including books on programming languages, books on best practices, and a fun computer science book, too. So relax in your favorite spot, brew a hot beverage, take a long, mindful sip, and let’s talk about books for programmers.
Because we’re all programmers here and may not be in the “Book Lovers” scene, here is a definition of the #bookhaul:
A book haul is when you go and buy books and then you do either a post, vlog, or any other form of social media posting about what new books you bought.
In other words, the book haul is a way for book lovers to share the feeling of excitement and hype with their community. It boosts anticipation and stimulates conversation throughout the reading lifecycle. Why talk about technical books that we have read when we can be talking about them beginning, middle, and end?
For programmers, the book haul season is December — in other words, directly before you might lose your professional development budget. My employer, Pivotal Software, offered a generous prodev budget, and the pressure was on since its acquisition by VMware was closing at the end of the year.
Because of these circumstances, this was my shopping experience: I frantically threw Amazon-recommended programming books into my cart. And here we are! My Book Haul.
In this post, I’m going to go over the unread books I am most excited about (so some of them I am keeping secret). In the following sections, I cover my hopes and dreams for those reads. Follow this post to the end, since I’ll award fun prizes for categories like Most Anticipated Read.
Not going to lie: I am in love with the Head First series.
The topic of the Head First book is practically inconsequential because I love the formula so much: the cross-word puzzles at the end of each chapter, the “Fireside Chats” between the opposing views of two technical concepts, tons of games and exercises, and the kooky fake projects (for example, in this book you build a duck simulator called SimUDuck).
The informal writing is endearing, too. Head First: HTML & CSS was everything to me when I was a freshman in college. It set the standard for what a technical book ought to be: both fun and educational, since fun helps drive learning.
Another benefit of the Head First series is that it encourages readers to engage with a pencil and write directly into the book. After being at my computer all day, I am grateful to sit away from my computer with a hot beverage and have another way to better my skills.
I came to specifically Head First: Design Patterns through my previous article, which is a book review on The Complete Software Developer's Career Guide)_. The book cites design patterns as a timeless go-to when searching for technical books to read, and the author recommends this particular volume on his blog.
Design patterns are essential building blocks for programs that allow for solving common problems more easily and creating a shared language between programmers. I anticipate reading this book both for the fun factor as well as the obvious benefits.
My understanding of this book is that it is a lighter introduction to design patterns than other volumes about design patterns. Head First books are good at making you feel comfortable and not intimidate you into thinking that you are hitting ridiculously-steep learning curves over and over. If you have no familiarity with design patterns, I imagine this is a perfect starting point.
My edition of Head First: Design Patterns uses examples from Java 8, which, while I am not a Java developer, I think that it won’t be a problem since I am comfortable with other object-oriented programming languages.
To warm you up to the idea of reading this book with me (and signing up for my email list!), here are the first five chapters (of 14 chapters) in this book with key quotes from the chapter descriptions:
Chapter 1: Welcome to Design Patterns
“[L]earn why (and how) you can exploit the wisdom and lessons learned by other developers who’ve been down the same design problem road and survived the trip.”
Chapter 2: Keeping Your Objects in the Know
“We’ve got a pattern that keep your objects in the know when something they care about happens. […] The Observer Pattern is one of the most heavily used patterns in the JDK, and it’s incredibly useful.”
Chapter 3: Decorating Objects
“We’ll re-examine the typical overuse of inheritance and you’ll learn how to decorate your classes at runtime using a form of object composition.”
Chapter 4: Baking with OO Goodness
“There is more to making objects than just using the new operator. You’ll learn that instantiation is an activity that shouldn’t always be done in public and can often lead to coupling problems.”
Chapter 5: One of a Kind Objects
“You might be happy to know that of all patterns, the Singleton is the simplest in terms of its class diagram; in fact, the diagram holds just a single class! But don’t get too comfortable; despite its simplicity from a class design perspective, we are going to encounter quite a few bumps and potholes in its implementation.”