DEV Community

Cover image for Books to Read as a Developer
Tina Huynh
Tina Huynh

Posted on • Updated on

Books to Read as a Developer

Choosing a career in tech. is choosing an endless life learning. But, then again, which career isn't like that? Improvement is critical after all.

The Pragmatic Programmer

This book doesn't focus on any one programming language but explains logic and provides wisdom for all languages. Topics include writing code, developing a great team, managing expectations, how expensive tools don't produce better designs, etc. A book by developers, for developers - not one to miss. Also, check out https://pragprog.com/tips/.

Refactoring: Improving the Design of Existing Code

Why and when do you refactor? How do you structure classes, methods, etc.? What are unit tests? How to refactor tools? This books takes you through it all! The examples are in Java, but can be applied everywhere.

Code Complete: A Practical Handbook of Software Construction

Wow, 960 pages! Every aspect of software development is contained in this book - code structure, code formatting, variables, methods, team management, etc. The amount of knowledge in this book will make you thankful you picked it up.

Peopleware: Productive Projects and Teams

A book on managing and motivating programmers, not about programming itself. Software development is not an assembly line process. It's a creative process!

Head First Design Patterns

13 essential patterns of basic design explained with plenty of examples and illustrations. It's not another book with endless pages of text blocks. Hand-drawn diagrams and illustrations keep you engaged while learning the concepts.

Clean Code

This focuses on how to write code that is easy to read and maintain, by a human being. It contains examples in Java that are helpful to illustrate the concepts.

Working Effectively with Legacy Code

Legacy code is not ideal to work with but most developers will have to deal with it at some point or another. For those who understand how to approach this the right way, working with legacy code can potentially be an exciting adventure! This book will explain how to examine and stabilize legacy code.

A Philosophy of Software Design

This newer book introduces programming principles that lead to good, maintainable programs. The book does not focus on any particular programming language. The concepts explained are widely applicable.

Conclusion

Do you have other books to add to the list? As potential software developers are making their way into the industry, new editions and new books are being written. What are the ones that have to be read? ...since one person can't have time to read them all.

Happy coding!

Buy Me A Coffee

Top comments (46)

Collapse
 
ksaaskil profile image
Kimmo Sääskilahti

Great article! I love Pragmatic Programmer, I refer to the tips regularly pragprog.com/tips/

I would also recommend Software Engineering at Google, it's a fantastic reference for everyday work.

Collapse
 
carlosds profile image
Karel De Smet • Edited

I also firmly agree! It is more high-level than the average book on software development, yet adds so much value to different domains (testing, metrics, code analysis ...). And it really explains in-depth how Google approaches the different aspects of software engineering. An absolute cracker!

Collapse
 
lorenzojkrl profile image
Lorenzo Zarantonello

I agree with Kimmo on Software Engineering at Google! Take a look at that:)

Collapse
 
tmchuynh profile image
Tina Huynh • Edited

thanks for the link and suggestion! I will definitely look into it and add it to the article <3

Collapse
 
sumant1122 profile image
Sumant

97 Things Every Programmer Should Know - This book covers wisdoms from experienced programmers who point out the key skills and techniques required.

Collapse
 
peerreynders profile image
peerreynders
Collapse
 
tmchuynh profile image
Tina Huynh

Thanks for the link

Collapse
 
diballesteros profile image
Diego (Relatable Code)

i second this. Just a lot of best practices and its very digestible.

Collapse
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

Improve code by removing it

Is still my absolute favourite programming quote by far and will likely continue to be forever. That book really is the "art of war" of programming :D

Collapse
 
rpoirier profile image
Reese Poirier

Ditch Clean Code, but otherwise it's a good list.
We really should be actively working to deplatform "Uncle Bob" not inflicting him on the next generation.

Collapse
 
tmchuynh profile image
Tina Huynh

Thanks for the suggestion :) always appreciated

Collapse
 
plainsight16 profile image
Timilehin Bakare

Why should we "deplatform" Uncle Bob?

Collapse
 
thenickest profile image
TheNickest

Why is that? I am 1/3 through it and was able to get some inspiration.

Collapse
 
tythos profile image
Brian Kirkpatrick

Great recs! I'd also add (while not as pragmatic to developing day-to-day programming skills) the excellent "Masterminds of Programming", by Biancozzi and Warden (https://smile.amazon.com/Masterminds-Programming-Conversations-Creators-Languages/dp/0596515170/ref=mp_s_a_1_1?crid=1XX8IL4F0BZRN&keywords=masterminds+of+programming&qid=1648103695&sprefix=masterminds+of+Programming%2Caps%2C152&sr=8-1). It's a series of interviews with the designers of different programming languages, partly trash-talking each other but also with some fascinating insights into what trades and objectives go into different languages, their features, and their quirks.

Collapse
 
tmchuynh profile image
Tina Huynh

Thanks for the suggestion and links :) I will definitely look into it

Collapse
 
rcls profile image
OssiDev • Edited

Refactoring in it's essence is quite simple. I have been planning on reading Fowler's book on it, but I just can't understand how they made an entire book of a simple concept like that. Don't get me wrong, I love the concept of refactoring, but it's something that doesn't require an entire book to understand. Having read some of his previous books, I will most likely never read this one as they are not the most intriguing, really.

If you're interested in topics beyond just coding, I would recommend Domain Driven Design: : Tackling Complexity at the Heart of Software by Eric Evans. A must read for any great programmer and language agnostic. Also, Clean Architecture , by Robert C. Martin who also wrote Clean Code and Clean Agile (amongs other things). It contains things like the best description for SOLID principles, which are heavily used in his idea of clean architecture.

People interested in DevOps should definitely read Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations and The DevOps Handbook, for starters. There are other great books about DevOps too, and the ones I mentioned focus heavily on teaching the principles of DevOps at a team / organizational level.

There's one book about development I think I could recommend and that's Dave Farley's Modern Software Engineering, which is also quite language agnostic and speaks more about how to work iteratively and how to adapt to a learning mindset.

Collapse
 
tmchuynh profile image
Tina Huynh

Thanks for the recommendations :D

Collapse
 
filipparyz profile image
Filip Paryż

From your list I've already read through the Clean Code years ago and thinking about the next book. I'm considering the Pragmatic Programmer, Code complete and Working Effectively with Legacy Code. The last one scares me even though it would be very helpful in my work in the last year. Thankfully I don't need it for now, but may need the knowledge later on in my career. I'll probably go with Code complete for now on though.
Lately I've read through the "Data structures and program design using C++" and it was a journey for sure. Even though I knew most of the beginning, the later parts of the book cleared up a lot of things for me! I highly recommend it even if you don't work with C++! :)

Collapse
 
planet_cbx profile image
Charlène Bonnardeaux

On my side I’ve just finished the Art of logic by Eugenia Chang. It’s not really about programming per se but this book give me a sort of wisdom on how to think, how to solve issues and how to argue. And it was a really fun, and great writing book!

Collapse
 
tmchuynh profile image
Tina Huynh

Thanks for the recommendation :) Non-programming books and programming books are both useful in its own ways

Collapse
 
parenttobias profile image
Toby Parent

Head First Design Patterns is absolutely an incredible resource. The examples are useful in a more abstract sense (if you can separate Java from concept, you're good!), and the tone is playful and readable.

I'm also a fan of Clean Code by Robert Martin, and Composing Software by Eric Elliot. I have a "top 50" list saved as ebooks on my tablet - even on vacation or on the road, nerd-reading is the best reading!

Collapse
 
tmchuynh profile image
Tina Huynh

What are some of the books you have on your top 50? 🤔

Collapse
 
cennydavidsson profile image
Cenny Davidsson • Edited

I think apprenticeships patterns (programmingbooks.dev/#apprenticesh...) and Pragmatic thinking and Learning (programmingbooks.dev/#pragmatic-th...) are two must read books. The earlier you read them in your career the better.

Collapse
 
tmchuynh profile image
Tina Huynh

Thanks for the links and recommendations

Collapse
 
sojin_samuel profile image
SOJIN SAMUEL

When I was starting out my programming journey the one book which hit me hard and made me to concentrate in an entirely different way was a book called the one thing from Garry keller. and yes its not definitely a book about programming. but i can vow that this book will boost up your productivity and your concentration as a programmer to the next level.
this is from my personal reviews you can simple check out the book from here.The One Thing by Garry keller

Collapse
 
ikembakwem profile image
Ikechukwu Mbakwem

"40 Algorithms Every Programmer Should Know" written by Imram Ahmad

Collapse
 
tmchuynh profile image
Tina Huynh

Thanks for the suggestion :) I have been looking at that book actually. What do you like about it?

Collapse
 
ikembakwem profile image
Ikechukwu Mbakwem

A list of good reads you've mentioned.

Thread Thread
 
tmchuynh profile image
Tina Huynh

Thank you

Collapse
 
darkwiiplayer profile image
𒎏Wii 🏳️‍⚧️

Ah, another chance to mention my favourite programming book 😁

Collapse
 
tmchuynh profile image
Tina Huynh

OOoo Thanks for the recommendation

Collapse
 
mrdavid0614 profile image
David Mora

Thanks for this books!

Collapse
 
tmchuynh profile image
Tina Huynh

Glad the list could be of use to you

Collapse
 
markadel profile image
Mark Adel

I would like to also recommend "Good Code, Bad Code" by Tom Long.

Collapse
 
tmchuynh profile image
Tina Huynh

Thank you for the suggestion