Books to Read as a Developer
Tags: discuss, books, todayisearched, beginners
Published: 2022-03-23 12:39:10

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](https://pragprog.com/titles/tpp20/the-pragmatic-programmer-20th-anniversary-edition/)
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/](https://pragprog.com/tips/).

### [Refactoring: Improving the Design of Existing Code](https://www.amazon.com/Refactoring-Improving-Design-Existing-Code/dp/0201485672)
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](https://www.oreilly.com/library/view/code-complete-2nd/0735619670/)
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](https://www.oreilly.com/library/view/peopleware-productive-projects/9780133440706/)
A book on managing and motivating programmers, *not* about programming itself. Software development is not an assembly line process. [It's a creative process](https://www.goodreads.com/book/show/67825.Peopleware)! 

### [Head First Design Patterns](https://www.amazon.com/Head-First-Design-Patterns-Brain-Friendly/dp/0596007124)
[13 essential patterns](https://longbiao.spatial-crowdsensing.com/courses/scad/files/head-first-design-patterns-compressed.pdf) 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](https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882)
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](https://www.amazon.com/Working-Effectively-Legacy-Michael-Feathers/dp/0131177052)
[Legacy code](https://understandlegacycode.com/blog/key-points-of-working-effectively-with-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](https://www.amazon.com/Philosophy-Software-Design-John-Ousterhout/dp/1732102201)
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!

<a href="https://www.buymeacoffee.com/tmchuynh" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee" height="20" width="40"></a>