If you want to be a good software developer you have to be constantly learning. One of the best ways to learn is through reading good books.
Here is a list with some of the best books new software developers can learn from. I’ve selected books with long-lasting advice that will remain relevant many years from now.
The Tech Resume Inside Out: What a good developer resume looks like and how to write one
This book helps you craft a developer resume that represents you fairly, plays to your strengths, and increases your chances of getting hired. A practical guide written by the people who do the resume screening: engineering managers and technical recruiters working at tech companies. Free for developers out of a job.
Cracking the Coding Interview: 189 Programming Questions and Solutions
Cracking the Coding Interview gives you the interview preparation you need to get the top software developer jobs. This is a deeply technical book and focuses on the software engineering skills you need to do well your interview. The book is over 500 pages and includes 189 programming interview questions and answers, as well as other advice.
Things they don't teach you in software school: Letters from a mentor
This book contains the top things that any junior developer should know when starting their career in tech. It is a quick and easy read.
The author spent two years mentoring a young developer, who was just starting their career. After having countless conversations together, he decided to gather all of the advice he ever gave and published it in this eBook.
Letters to a New Developer: What I Wish I Had Known When Starting My Development Career
Learn what you need to succeed as a developer beyond the code. The lessons in this book will supercharge your career by sharing lessons and mistakes from real developers.
Wouldn't it be nice to learn from others' career mistakes? "Soft" skills are crucial to success, but are haphazardly picked up on the job or, worse, never learned. Understanding these competencies and how to improve them will make you a more effective team member and a more attractive hire.
This book will teach you the key skills you need, including how to ask questions, how and when to use common tools, and how to interact with other team members. Each will be presented in context and from multiple perspectives so you'll be able to integrate them and apply them to your own career quickly.
Soft Skills: The software developer's life manual
Soft Skills: The software developer's life manual is a unique guide, offering techniques and practices for a more satisfying life as a professional software developer. In it, developer and life coach John Sonmez addresses a wide range of important "soft" topics, from career and productivity to personal finance and investing, and even fitness and relationships, all from a developer-centric viewpoint.
For most software developers, coding is the fun part. The hard bits are dealing with clients, peers, and managers, staying productive, achieving financial security, keeping yourself in shape, and finding true love. This book is here to help.
14 Habits of Highly Productive Developers
You can learn the most popular frameworks, use the best programming languages, and work at the biggest tech companies, but if you cultivate bad habits, it will be hard for you to become a top developer.
This book doesn't offer a straight path or pre-defined formula of success. This book is a result of a quest. A quest to uncover what habits can be cultivated to become a better software engineer.
Extreme Programming Explained: Embrace Change
Software development projects can be fun, productive, and even daring. Yet they can consistently deliver value to a business and remain under control.
Extreme Programming (XP) was conceived and developed to address the specific needs of software development conducted by small teams in the face of vague and changing requirements. This new lightweight methodology challenges many conventional tenets, including the long-held assumption that the cost of changing a piece of software necessarily rises dramatically over the course of time. XP recognizes that projects have to work to achieve this reduction in cost and exploit the savings once they have been earned.
Clean Code: A Handbook of Agile Software Craftsmanship
Even bad code can function. But if code isn't clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn't have to be that way.
In Clean Code the author has teamed up with his colleagues to distill their best agile practice of cleaning code on the fly into a book that will instil within you the values of a software craftsman and make you a better programmer but only if you work at it.
The Pragmatic Programmer: From Journeyman to Master
The Pragmatic Programmer cuts through the increasing specialisation and technicalities of modern software development to examine the core process - taking a requirement and producing working, maintainable code that delights its users. It covers topics ranging from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse.
Refactoring: Improving the Design of Existing Code
Refactoring is a controlled technique for improving the design of an existing code base. Its essence is applying a series of small behavior-preserving transformations, each of which "too small to be worth doing". However the cumulative effect of each of these transformations is quite significant. By doing them in small steps you reduce the risk of introducing errors. You also avoid having the system broken while you are carrying out the restructuring - which allows you to gradually refactor a system over an extended period of time.
This book describes the process of refactoring and spends most of its time explaining how to do the various refactorings - the behavior preserving transformations.
The Nature of Software Development: Keep It Simple, Make It Valuable, Build It Piece by Piece
This book leads you from the desire for value down to the specific activities that help good Agile projects deliver better software sooner, and at a lower cost. Using simple sketches and a few words, the author invites you to follow his path of learning and understanding from a half century of software development and from his engagement with Agile methods from their very beginning.
The book describes software development, starting from our natural desire to get something of value. Each topic is described with a picture and a few paragraphs. You're invited to think about each topic; to take it in. You'll think about how each step into the process leads to the next. You'll begin to see why Agile methods ask for what they do, and you'll learn why a shallow implementation of Agile can lead to only limited improvement.
Final thoughts
Reading good books is one of the best ways to learn and grow as a software developer. It complements your day to day learning at work.
If you found this post useful and would like to learn more about how to become a better software engineer - subscribe to The New Developer.
Have you read any of the books on my list? What did you think?
If you could recommend one book for new software developers, what would it be and why? Let me know in the comments.
Top comments (5)
Reading books is a wonderful thing, people can learn lots of useful information reading books. Someone once said that if you have a garden and a library you have everything you need.
Very true. A book can allow you to gain years worth of knowledge in a few days / weeks.
You might have forgot to add links for each book? :)
Thanks for the reminder. I was going to link to the headings or images.
I'm missing SICP on this list, as well as "97 things every programmer should know"