Recommended Reading

This is a list of some of the most useful and interesting reading I’ve come across. Most of it’s tech related, but I also include other topics that are useful to software developers.

Essays

Maker’s Schedule, Managers Schedule

This essay really hits the nail on the head when it comes to scheduling. I’ve made it a point to share this with all of my coworkers and it’s lead to significant improvements in productivity.

The Principles of the Agile Manifesto

Agile Is Dead (Long Live Agility)

The essays above describe a version of agile that is less about paperwork and more about producing working software.
It’s a vision worth keeping in mind.

Why We (Still) Believe in Private Offices

I love how the people at Stack Exchange take care of their employees.

Books

Software Development

The Pragmatic Programmer: From Journeyman to Master

This is my favorite programming book. It contains a ton of great advice about the craft of software development and how to become better at that craft.

Jeff Atwood has an excellent summary of the book here.

The Passionate Programmer: Creating a Remarkable Career in Software Development

This is an excellent career development book for software developers.

JavaScript: The Good Parts

This book will change the way you think about JavaScript.

Soft Skills: The software developer’s life manual

This is an excellent career development book for software developers.

Remote: Office Not Required

Another book from the people behind Basecamp (formerly 37 Signals). This one is about how we’re moving to a world where work can be done anywhere. (I’m writing this from a coffee shop.)

Psychology

The Design of Everyday Things: Revised and Expanded Edition

This is a great read for software developers because it makes you aware of the amount of thought placed into things you interact with every day.

Brain Rules: 12 Principles for Surviving and Thriving at Work, Home, and School

This is a fascinating book about how the mind works and what you can do to make your mind work better.

The Righteous Mind

One of the most important things you can do to become more innovative is empathize with and learn from people whom you disagree with. We live in a society that’s increasingly polarized. This book the antidote. In the Righteous Mind, Jonathan Haidt explains the moral foundations for different political outlooks and makes a strong case for civility in political discourse.  This is a must read if you have trouble dealing with people who don’t share your beliefs. The lessons in this book also apply outside of political and moral discourse. The software world is filled quasi religious arguments (.Net vs. Java, emacs vs. vim vs. IDE’s, etc…) and the lessons apply to them as well.

Writing

The War of Art

While The War of Art is a book about art, it’s lessons translate well to the field of software development.

On Writing Well, 30th Anniversary Edition: The Classic Guide to Writing Nonfiction

Communication skills are extremely important and this book will help you develop them.

Innovation

Sapiens

Sapiens is a highly entertaining, unorthodox view of human history. Not only is it informative, it challenges basic assumptions about ideas that most people don’t realize they’re making. It’s a great description of early human history and how we got to the modern age. It’ll really open up your mind.

Geography of Genius

Innovation is not evenly distributed. There are certain times and places throughout history that have “golden ages” of innovation. Geography of Genius explores a few of these places and tries to find what ties them all together. This book is very interesting and you’ll learn about some places that you don’t see much of in the classroom.

Evolution of Everything

Unlike what the history books tell us, innovation is more bottom up than top down. Matt Ridley does a fantastic job describing how in Evolution of Everything. He covers a several major innovations including religion, money, and government. This book challenges many deeply held beliefs and illustrates how innovation is an evolutionary process.

Smarter Better Faster

This book offers a more tactical look at creativity. It’s also a great guide to improving other aspects of mental performance. Charles Duhigg does a fantastic job mixing science with fascinating stories.

Deep Work

Creativity requires concentration. A commodity in short supply in the modern age. In Deep Work, Cal Newport makes a compelling argument for making “deep work” (focused work) one of your primary priorities. I changed several of my habits after reading this one.

Competing Against Luck

While I enjoyed the Lean Startup, I felt like it treated innovation more like a roulette wheel than a process you can influence. “Just pivot until you make it big or run out of money.” In Competing Against Luck, Clayton Christensen describes a fantastic intellectual power tool for building new products. The “Jobs to Be Done” theory of innovation. If you want to build a product, I highly recommend this one.