Programming books

Programming books or just books on the topic of developing software, are a great source of inspiration. If you’re a software developer or you work at a software company, maybe this reading list have some exciting books for you too.

My reading list consists of books that I’ve first of all read, but books that really made an impact on my way of thinking. I’m always looking for new stuff to learn, but the reading that teach me the most is the reading that changes – or just challenges – the way I think.

Usability books are good at making me think more about how users will use my software.

Marketing books makes me better at telling people about what I do, what I’m working on and why it’s important. So why is marketing even interesting for a developer? It helps you get leverage. If you work with other developers, anyone is eager to persuade others into liking their idea. If you’re good at telling why your idea is good, you gain leverage, and by that you spread your idea, design the product, fix the problem, invents a solution and ships a product.

Thought provoking books are always a great source to become more innovative and brave so that you don’t get stuck in the same rhythm. Don’t embrace the status quo – challenge it. Don’t do the same thing again and again – try something new. You need inspiration to crawl out of your comfort zone, so seek it.

Non-technical programming books

By non-technical, I mean doesn’t cover how-to topics on one or more languages. Non-technical programming books is about topics at a higher level than the coding itself. This is also why you’ll find 10, 20 and almost 30 year old titles. While computers, the internet and technology in general changes at a high pace, humans don’t. We still make the same mistakes over and over again, and since the success of software projects rely on humans to work together, and communicate effectively, the source of improvement lies within humans – and not within the programming languages, the technical platform or user interfaces.

That’s why those titles, to this date, are still very popular. They provide timeless thinking that applies to a wide range of technical mindsets.

Code Complete: A Practical Handbook of Software Construction

Steve McConnel’s book is actually a technical book. But rather than focusing on a single programming language, and diving into the code, it focuses on design, patterns, practices and software construction itself.

As watching Bill Gates’ bed time reading from the book discussing inheritance and polymorphism, you get a glimpse of what you’re in for: A great discussion of software construction.

Code Complete was updated to a second edition back in 2004, where the first edition dates back to 1993!

The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition (2nd Edition)

Also a second edition. This book is a classic, on the human elements of software engineering.

This book is all about how communication paths increase when adding more people to a project. And the more communication, the more time is spent on meta stuff that doesn’t get the job done.

Have you, or your manager ever thought about adding more people to a late project? Well, you haven’t read this book then. Software engineering is not a job like digging a huge whole, where you can just add people to increase performance. This book will teach you!

The Inmates Are Running the Asylum: Why High Tech Products Drive Us Crazy and How to Restore the Sanity

In contrast to About Face, this is no usability-guide, type of book. This is a book about how the we as programmers become the “inmates” that are constantly delivering bad usability experiences, broken software and low quality products.

It’s fun to read, and an eye-opener as well.

Don’t Make Me Think: A Common Sense Approach to Web Usability, 2nd Edition

Have you ever watched a user while using your software? Looking over the shoulder, while he or she was trying to accomplish a task?

In this easy-to-read guide on usability, Steve Krug gives his views on the importance of user testing, and how little effort is required to get priceless amount of feedback.

Apart from that, he gives some pointers on good usability that is easy to understand and very helpful.