Table of Contents
When you start your career in software development you become bamboozled by the amount of material on the interwebs, the number of published books (print and ebooks) and the available courses online and offline.
Let me lend you a helping hand!
As I stated in Thoughts on building a library knowledge is power and books are the easiest way to gain profit from other people’s experience.
In contrast to online material (everyone can write articles online nowadays) books from renowned publishers have a rigid publishing process with editing and reviews.
Such a book has most likely few errors in it. Additionally, when a book is in its 43rd printing it should mean it has some truths in it which stand the test of time.
So the books I recommend are “meta” books. They are not about a specific language or framework because those can become outdated pretty soon (e.g. my “Introduction to node.js” from 2012)
You should buy them in their original language in this case English. Translations tend to miss most of the puns and are often not quite precise regarding technical terms.
The Passionate Programmer
Subtitle: “Creating a Remarkable Career in Software Development”
This book is about building a career in the software industry. It focuses on questions like “Which technology shall I learn?”
It is packed with career tips and self-improvement concepts like “Daily Hit – Have an accomplishment to report every day!”
The Pragmatic Programmer
Published in 1999 with the subtitle “from journey man to master” this is the big brother to the passionate programmer.
It’s main topic is how to deal with your everyday life as a software developer codified into 70 tips.
From the mindset (“don’t live with broken windows”) over DRY principle, code generation, Big-O notation to team building this book has it all.
I first bought it when I started as a SW developer in 2005 and the lessons are still true!
Uncle Bob wrote this masterpiece in 2009 and had (still has) a big impact on the software crafting movement.
From the boy-scout rule to an appendix of code smells this book is monster.
It is hard to fathom its deepness in just a few sentences you need to read it!
AKA GoF, Gang of Four, subtitle “Elements of Reusable Object-Oriented Software.”
It is one of the most influential books regarding how to structure your code.
It contains a description of the basic 23 design pattern which are language agnostic. (Although implementation examples are given in C++)
This makes the book a timeless classic as well.
Another heavyweight. Refactoring by Martin Fowler
The subtitle says it all: “Improving the design of existing code”
Yes, this is for the brownfield trenches.