Top 6 Software Development Books That Will Make You Think

“Always keep learning” they say.
So we do, we read blogs, release notes, how to’s, documentation and more, just to keep up to date. But it’s not enough.

Why books? The 90’s are over…

There’s more than one way to learn new stuff. Some prefer to learning by doing and getting their hands dirty. Fortunately there are great websites to help you improve your coding skills FREE. Other love short reading, short paragraphs, 10 mins. and you’re done articles.

However, there’s no replacement for reading a good and thorough book explaining a subject in depth.
Good books surround a problem, reveal an unknown territory to me, and show me what’s under the hood and explain all the nuts and bolts of a technology.

I read a lot of books about software development (web especially) and thought it could be nice to share my top 5 list with you.

Here are my top 6 software development books, each covers a different subject: Javascript, Best practices in code, User experience, Team work and Project management and Databases.

All of these are in subjects I believe every web (frontend, backend, fullstack) developer should read. These books kept my mind busy, raised questions and made me think clearer about subject I considered trivial or even didn’t think about at all.

Top software development books – The List!

1. Javascript the good parts | The theory behind the language

Top 6 Software Development Books That Will Make You Think. Javascript the good parts, Douglas Crockford

“Fortunately, JavaScript has some extraordinarily good parts. In JavaScript, there is a beautiful, elegant, highly expressive language that is buried under a steaming pile of good intentions and blunders.”

Javascript The Good Parts, Douglas Crockford

This is the first software development book I read about Javascript and it blew my mind. Well written, entertaining and by the well respected Douglas Crockford, who actually invented the the JSON format (or so he says :)). He’re a video of him talking about the book.

Once upon a time a little language was invented, it was named Javascript and it wasn’t that popular.
The web evolved, and than a man came, and started preaching about it, expanding it, used it in an interesting way and.. wrote a book.

What’s in it?
Beside of a nerdy sense of humor, this book touches the roots of Javascript, explains its syntax, memory model, functional nature and history. The book uses examples that show both the strength and the ridiculousness and abnormalities that exist in JS, like:

== vs. ===
{} !== {} 

and more.

I guess in the future this will be considered a history book, because many of these faults are De facto bypassed by using linting tools, modern versions of JS, such as ES6 and helper libraries and frameworks.

You can buy this book here.

2. The Design of Everyday Things

Top 6 Software Development Books That Will Make You Think. The design of everyday things, Don Norman

“Good design is actually a lot harder to notice than poor design, in part because good designs fit our needs so well that the design is invisible,”

The Design of Everyday Things, by Don Norman

One of the best things about being a front end developer is that you have the privilege to work with great designers or user experience\interface specialists. Creative, detail oriented or visionaries, they have the responsibility to get into the users’ shoes and think like them.

The Design of Everyday Things, by Don Norman, is a book that explains the basic concepts of user experience and the effort that it takes to make a great product, using real life examples.

Norman explains in great detail what GOOD user experience is, and how it feels when it’s very bad. Although I am not a UX dude, nor a product manager, this read made me think about many of the design choices done in my projects.

It’s worth mentioning that this book is old and is not about exactly a software development book. It covers the field of user interface and starts with User Experience of of daily objects. If you want to check if someone read it, simply ask in a conversation: “Why do they have to print ‘PUSH’ on the doors? Simply don’t put a knob. People will push”

You can buy this book here

If you are into design, from a developers perspective, check out these articles:
Developer, you are surrounded by fonts!
The story of choosing your signature font

3. Clean Code: A Handbook of Agile Software Craftsmanship

Clean Code, Robert C. Martin

“Clean code always looks like it was written by someone who cares.”
“Leave the campground cleaner than the way you found it.”

Clean Code, by Robert C. Martin

Your next code review won’t be the same.

Clean Code, by Robert C. Martin (also known as Uncle Bob, though he isn’t my uncle).
This software development book is not about front end architecture or Javascript in particular. won’t make you think better about user interface or teach tricks in ES7.
It deals with programmers’ day to day problems such as code duplication, lack of ability to test, spaghetti code, readability, re-usability and more.
The term Clean Code became so popular, and over used, that people keep using it even without reading the book.

Robert C. Martin is one of the most prolific speakers out there, if you have a chance I highly recommend going to his talks. They are great. In case you want to understand a bit about the Clean Code initiative before diving into the book, try this video:

This book is a LONG book to read and it repeats itself in some places. I read it while skipping some areas and focusing on ones I found relevant.
This is one of these books that even if you decide not to do any of the practices suggested there, some of the ideas will influence you the next time you’ll do a code review.

You can buy this book here.

4. The Mythical Man-Month: Essays on Software Engineering

Top 6 Software Development Books That Will Make You Think. The Mythical Man-Month, Frederick P. Brooks Jr.

“An omelette, promised in two minutes, may appear to be progressing nicely. But when it has not set in two minutes, the customer has two choices—wait or eat it raw. Software customers have had the same choices. The cook has another choice; he can turn up the heat. The result is often an omelette nothing can save—burned in one part, raw in another.”

The Mythical Man-Month, by Frederick P. Brooks JR,

More than a must read for new developers, it is a must read for anyone looking to climb the management ladder.

A collection of essays about software engineering. It was written in 1975, long before the term of front end development was invented and used.
The first essay, named the same as the book, discusses the following problem, and shows why our intuition can fool us.

Projects have deadlines. Deadlines are aggressive, short and coming by surprise.
Imagine you are working on a project, and the deadline becomes very close.
Your manager decides it’s the time to add more people to the team.
“That’s the only way to deliver it on time!” he says.

So a new team member arrives, and even though he’s a great programmer, it takes time for him to get into business.
Moreover, his training requires resources from the team such as time for review, lectures about the company, etc.
And, the month goes by, and the project’s Finale seems to have gone further away.

The mythical man month tells this story much better the I did, and emphasizes different aspects that lead to this irony.

You can buy this book here.

5. Peopleware: Productive Projects and Teams

Top 6 Software Development Books That Will Make You Think. Peopleware, Tom DeMarco

“The business we’re in is more sociological than technological, more dependent on workers’ abilities to communicate with each other than their abilities to communicate with machines.”

Peopleware: Productive Projects and Teams, by Tom DeMarco

Peopleware is the most influential book I read when I started managing a team. It emphasizes the relation between the human aspect and the ability to overcome technological challenges.

As most of programming today is done by teams, this book is relevant not only to managers but also to programmers that want to help their squad perform better, deliver faster and understand one another.

One of the main ideas that struck me in this book is the importance of the physical space we are working at in increasing our engagement, cooperation and finally – our productivity.

You can buy this book here.

6. MongoDB The Definitive Guide

MongoDB The Definitive Guide, By Christina Chodorow

This book is comprehensive. It starts at MongoDB’s foundations and slowly climbs up to discuss more advanced areas such as performance optimization, indexing, backup strategies, locks and sharding.

This book is quite odd in a list for front end developers, but because many developers nowadays want to ride the rainbow with a unicorn using the “full stack developer” title, reading about MongoDB can be the right thing for you.

Not convinced? try reading Why should a front end developer care about the database

A word about O’Reilly publishing: it’s great. Every book I read by that company was very good.

That’s why the next book on my read list us O’Reilly’s SQL guide. Hope it will be good!

You can get this book here.

Conclusion || What’s your favorite software development book?

That was my top 6 list of books that made my brain work extra hours and jump from side to side.
I will keep updating this list when I’ll read something worthy.
Hope you enjoyed.

What is your the software development book the blew your mind?