How to become a great software developer? While a Computer Science degree can help, it’s not the answer if you ask me. I won’t pretend to have that either. What I do know is that reading must be a part of it. I tend to give out the same list of books whenever the subject comes up.
I would suggest starting at the top, though begin wherever you like. It’s better to read anything then never get going. If you get tired of reading I added some related talks. You could also start with one of those to get a feel for the subject.
-
The Programmer’s Brain
by Felienne Hermans -
The Pragmatic Programmer
by David Thomas and Andrew Hunt -
Refactoring
by Martin Fowler
Related talks:- Refactoring is Not Just Clickbait
by Kevlin Henney - Gilding the Rose: Refactoring-Driven Development
by Kevlin Henney
- Refactoring is Not Just Clickbait
-
Clean Architecture A Craftsman’s Guide to Software Structure and Design
by Robert C. Martin
The Appendix is a great read, might be a good place to begin if you find the start a bit too technical. Alternatively you could read Clean Code, however most of its advise is already discussed in The Pragmatic Programmer and Refactoring. This conversation between Robert and Casey in response to Casey’s critisim on Clean Code is a great addition or summary of some of the points. -
A Philosophy of Software Design
by John Ousterhout
I’ll be honest, I still got to find the time to finish this one. It caught my attension after reading the wonderfull discussion between its author and Robert C. Martin. -
Test-Driven Development by Example
by Kent Beck
Fantasy
Arcane
It’s important to have fun :)
- Assassin’s Apprentice
by Robin Hobb
I could not put it down, some of the most intense writing I have ever read. - Luck in the Shadows
by Lynn Flewelling
Tense from the beginning with unique world building
Sciency
- Forward the Foundation
by Isaac Asimov
Moved me emotionally in a unique way (I do not want to spoil it). Its impressive how well the passage of time is made real in Asimov’s books.