Should I Read Books as a Software Developer?
Spoiler Alert: Yes!
Join the DZone community and get the full member experience.
Join For FreeDevelopers always ask me if they should be reading books, and if so, which books they should be reading. While the developer can learn a lot from different kinds of tutorials or examples, nothing can replace a good book. A book, and especially a good one, will give you an overview of a certain field, and guide you through the author's angle from the start to the end of a topic. This will help you develop as a software engineer. If the book includes examples, as it is very often, then you have it all in one place.
I tend to read about 20-30 books per year (when possible), and many of them are tech books.
Here are my recommendations:
You may also like: Top 10 Books of All-Time for Java Programmers
Fundamentals
- Code Complete: A Practical Handbook of Software Construction, Second Edition.
- Clean Code: A Handbook of Agile Software Craftsmanship.
- Structure and Interpretation of Computer Programs.
- Design Patterns: Elements of Reusable Object-Oriented Software.
- Head First Design Patterns.
- Refactoring: Improving the Design of Existing Code.
- Working Effectively With Legacy Code.
- The Art of Computer Programming, Volume 1: Fundamental Algorithms.
Professional Development
- The Pragmatic Programmer: From Journeyman to Master.
- The Clean Coder: A Code of Conduct for Professional Programmers.
- The Passionate Programmer: Creating a Remarkable Career in Software Development.
- The Mythical Man Month.
Cloud
- Designing Distributed Systems.
- Azure for Architects.
- Building Cloud Apps with Microsoft Azure.
- Amazon Web Services in Action.
Architecture
- Domain-Driven Design: Tackling Complexity in the Heart of Software.
- Patterns of Enterprise Application Architecture.
- Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions.
- Refactoring to Patterns.
- Software Architecture in Practice.
- Building Evolutionary Architectures: Support Constant Change.
- 97 Things Every Software Architect Should Know: Collective Wisdom from the Experts.
- Building Microservices.
- Microsoft .NET - Architecting Applications for the Enterprise (2nd Edition).
- Microservices in .NET Core.
- .NET Microservices: Architecture for Containerized .NET Applications.
- Software Architecture for Developers.
Agile
- Agile Software Development, Principles, Patterns and Practices.
- Agile Estimating and Planning.
- User Stories Applied: For Agile Software Development.
- Extreme Programming Explained.
- Software Estimation: Demystifying the Black Art.
- Management 3.0: Leading Agile Developers, Developing Agile Leaders.
- The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win.
- Agile Principles, Patterns, and Practices in C#.
Algorithms
- Programming Pearls.
- Cracking the Coding Interview: 150 Programming Questions and Solutions.
- Introduction to Algorithms.
- Algorithms.
Programming Languages
- JavaScript the Good Parts.
- Thinking in Java.
- Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14.
- Effective Java.
- C# In Depth.
- Seven Languages in Seven Weeks: A Pragmatic Guide to Learning Programming Languages (Pragmatic Programmers).
- Core Java Volume I.
- Core Java Volume II.
- Mastering C# and .NET Framework.
- CLR via C#.
- Essential C# 6.0 (5th Edition).
- Code-First Development with Entity Framework.
- Modern Compiler Design.
- Eloquent JavaScript: A Modern Introduction to Programming.
- Learning JavaScript Design Patterns.
OOA/D
- Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development.
- UML Distilled: A Brief Guide to the Standard Object Modeling Language.
- Object-Oriented Analysis and Design with Applications.
Testing
- The Art of Unit Testing.
- Testing Computer Software.
- Ship it! A Practical Guide to Successful Software Projects.
- Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation.
- Agile Testing: A Practical Guide for Testers and Agile Teams.
- Growing Object-Oriented Software, Guided by Tests.
- The RSpec Book.
- xUnit Test Patterns: Refactoring Test Code.
- Test Driven Development: By Example.
- Testing Angular Applications.
Machine Learning
- Pattern Recognition and Machine Learning.
- The Elements of Statistical Learning.
- Understanding Machine Learning: From Theory to Algorithms.
- Deep Learning.
- Foundations of Data Science.
Databases
- Refactoring Databases: Evolutionary Database Design.
- Seven Databases in Seven Weeks: A Guide to Modern Databases and the NoSQL Movement.
- NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence.
- Fundamentals of Database Systems.
Other
- REST in Practice.
- Soft Skills: The Software Developer’s Life Manual.
- How to Win Friends and Influence People.
- Code: The Hidden Language of Computer Hardware and Software.
- Gödel, Escher, Bach: An Eternal Golden Braid.
- The War of Art.
- Stakeholder Theory: The State of the Art.
- The Lean Startup.
- Trillion Dollar Coach: The Leadership Playbook of Silicon Valley’s Bill Campbell.
- The Leprechauns of Software Engineering.
- Strive: How Doing The Things Most Uncomfortable Leads to Success.
- How to Build a Billion Dollar App.
- Impact Mapping.
- The Product Book: How to Become a Great Product Manager.
- It Doesn’t Have to Be Crazy at Work.
- Managing the Unmanageable: Rules, Tools, and Insights for Managing Software People and Teams.
- Peopleware: Productive Projects and Teams.
- Modern Web Development: Understanding domains, technologies, and user experience.
- Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries.
- .
What books helped you become a better developer? Which books did I forget? Comment below and let me know!
Further Reading
Published at DZone with permission of Milan Milanovic. See the original article here.
Opinions expressed by DZone contributors are their own.
Comments