1. Coders at Work: Reflections on the Craft of Programming by Peter Seibel
If you’re curious about life as a programmer than Coders at Work is the book for you. It’s packed with interesting interviews from 15 accomplished programmers and computer scientists including Joshua Bloch, Peter Norvig, Donald Knuth, Ken Thomson, and Jamie Zawinski. The author got interviewees to open up about the famous projects that they worked on and the inspiring stories behind them. Coders at Work gives a fascinating look at how some of the best in the world do their work. Definitely a must read!
2. Cracking the Coding Interview: 150 Programming Questions and Solutions by Gayle Laakmann McDowell
This is one of the go-to books for programming interviews if you want to work for companies like Amazon, Apple, Facebook, Google or Microsoft. The book gives 150 programming questions that you might encounter at interviews, and then breaks down how to solve them.
3. Bonus Book: Zero Bugs and Program Faster by Kate Thompson
The author of Zero Bugs spent two years researching every bug avoidance technique she could find. This book contains the best of them! It includes useful tips and techniques, and presents information in an easy-to-digest way and brought to life with stories. Also, she explains why the world’s top developers are making over $500,000 a year while the average is around $100,000 a year. She shows how top developers can develop 10x faster and cleaner than 99% of the others out there. Basically, in this book you will find precious advices on how to write code faster and get cleaner.
4. Agile Testing: A Practical Guide for Testers and Agile Teams by Lisa Crispin, Janet Gregory
Two of the industry’s most experienced agile testing practitioners and consultants, Lisa Crispin and Janet Gregory, have teamed up to write a book about agile testing and illustrate the tester’s role with examples from real agile teams.
5. Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation by Jez Humble, David Farley
This book sets out the principles and technical practices that enable rapid, incremental delivery of high quality, valuable new functionality to users. Through automation of the build, deployment, and testing process, and improved collaboration between developers, testers, and operations, delivery teams can get changes released in a matter of minutes, no matter what the size of a project or the complexity of its code base.In this book authors talk about the foundations of a rapid, reliable, low-risk delivery process, deployment pipeline, ecosystem needed to
support continuous delivery, from infrastructure, data and configuration management to governance. The authors introduce state-of-the-art techniques, including automated infrastructure management and data migration, and the use of virtualization. For each, they review key issues, identify best practices, and demonstrate how to mitigate risks.
6. Agile Software Development, Principles, Patterns, and Practices by Robert C. Martin
This book has dozens of practical but concise examples illustrating everything from relatively simple object-oriented design concepts to subtle and complex issues with class and package dependencies. In this book author explains each design pattern, demonstrating their use through code, and placing them within the context of his design principles. The book covers: Statics and Dynamics; Principles of Class Design; Complexity Management; Principles of Package Design; Analysis and Design; Patterns and Paradigm Crossings. Explains the principles of OOD, one by one, and then demonstrates them with numerous examples, completely worked-through designs, and case studies.
7. Test Driven Development: By Example by Kent Beck
You will love this book, because this book is about Test Driven Development and it is written by the inventor of the practice – Kent Beck. The book is short, easy to understand, and presents very helpful ideas on the topic, illustrating techniques programmers can use to increase the quality of their work. It’s very good for anyone who cares about agile software development and code quality.
8. Agile estimation and planning by Mike Cohn
This book is not only about the philosophy, but also about the guidelines and a proven set of tools that we need to succeed in planning, estimating, and scheduling projects with a high uncertainty factor.
9. Reactive Design Patterns by Roland Kuhn Dr. , Brian Hanafee, Jamie Allen
Reactive Design Patterns is a clearly written guide for building message-driven distributed systems that are resilient, responsive, and elastic. It presents the principles, patterns, and best practices of Reactive application design. Also you’ll find patterns for messaging, flow control, resource management, and concurrency, along with practical issues like test-friendly designs. All patterns include concrete examples using Scala and Akka.
10. Domain-Driven Design Distilled by Vaughn Vernon
And this is the last book from our top software development books list. Domain-Driven Design software modeling delivers powerful results, which is why developers worldwide are rapidly moving to adopt it. This book is an accessible guide to the basics of DDD: what it is, what problems it solves, how it works, and how to quickly gain value from it. In this book, the author guides you through each core DDD technique for building better software. Actually we were happy to attend an event in Barcelona, where Vaughn was giving a very interesting presentation about DDD, you can find the details here.
Also in Dev free books, you will find interesting and practical software development books for Scala, .Net, Java, PHP, Reactjs, Typescript,etc. developers. Another source of good software development literature is Github, where you can find great books about microservices, docker, elasticsearch, TDD, BDD, etc. in pdf.
Enjoy reading these useful and practical software development books! I am sure you will love them!