Reading
So far all the entries I’ve posted have been about the architectural and technological challenges we’ve had to hurdle, so today I want to change it up at bit and talk about something I think is a defining characteristic of our engineering team: a commitment to improvement. Now, clearly personal development is an enormous topic, so for this post I want to focus on an aspect I’m particularly passionate about: reading.
In today’s world, reading is often maligned. People wonder why they should spend their time reading a book when Google will answer most any question instantly. And to a certain degree they’re right. If you want to know the syntax for exception handling in Python, Google is your best bet, but, as I’ve come to appreciate more and more, reading isn’t just about learning facts. Great books change your perspective and expose you to ideas you didn’t know you didn’t know. The problem is that most books aren’t great and most technology books focus on answering how rather than why. So, I want to take a second to share some of the books that have had a major impact on the way I work:
As far as I’m aware, this is the definitive book on Java best practices, but what makes it so special is that, though it focuses specifically on Java, it’s really a book about object oriented programming and programming languages in general. So, even if you’re not using Java every day, I would recommend giving it a look cause it spends a significant amount of time talking about why the language was designed the way it was - knowledge that will carry over to many software projects (as a side note, it does assume that you are already at least reasonably familiar with Java).
Like Effective Java, though this is a book about a specific technology, it really transcends that classification. It’s about how to think about databases and distributed computing in general (it assumes an understanding of basic SQL)
This is a huge book, and the most comprehensive book on code construction I’ve seen. The recurring theme throughout the book is that software development is about “managing complexity”, a maxim went over my head in college, but I’m coming to realize is the best way to approach big software projects.
1 Notes/ Hide
-
bunchball reblogged this from workwithkyle and added:
From WorkWithKyle:
-
workwithkyle posted this
