Here is a list of 10 book suggestions, shared in the past few months under the hashtag #bookrecommendation, now we are making a list of 10 books about programming and technology recommended by our team.
1. The Pragmatic Programmer: From Journeyman to Master by Andrew Hunt and David Thomas
This book cuts through the increasing specialization and technicalities of modern software development to examine the core process - what do you do, as an individual and as a team, if you want to create software that’s easy to work with and good for your users. You will find more than a collection of tips. Each tip is drawn from experience, told as concrete advice, and related to others to form a system. These are the characteristics that allow us to learn and follow a pattern language.
2. Test-Driven Development by Kent Beck
This book follows two TDD projects from start to finish, illustrating techniques programmers can use to increase the quality of their work. The examples are followed by references to the featured TDD patterns and refactorings. With its emphasis on agile methods and fast development strategies, it inspires readers to embrace these under-utilized but powerful techniques.
3. Extreme Programming Explained: Embrace Change by Kent Beck and Cynthia Andres
The first edition of this book told us what XP was - it changed the way many of us think about software development. This second edition takes it farther and gives us a lot more of the ‘why’ of XP, the motivations and the principles behind the practices. Kent Beck organizes and presents five years’ worth of experiences, growth, and change revolving around XP.
4. Planning Extreme Programming by Kent Beck and Martin Fowler
Planning is critical; without it, software projects can quickly fall apart. Written by acknowledged XP authorities Kent Beck and Martin Fowler, "Planning Extreme Programming" presents the approaches, methods, and advice needed to plan and track a successful Extreme Programming project. Planning Extreme Programming also focuses on the importance of estimating the cost and time for each user story (requirement), determining its priority, and planning software releases accordingly.
5. Extreme Programming Pocket Guide by Chromatic
Extreme Programming (XP) is a radical new approach to software development that has been accepted quickly because its core practices - the need for constant testing, programming in pairs, inviting customer input, and the communal ownership of code - resonate with developers everywhere. The Extreme Programming Pocket Guide covers XP assumptions, principles, events, artifacts, roles, and resources, and more.
6. Agile Principles, Patterns, and Practices in C# by Robert C. Martin and Micah Martin
This book presents a series of case studies illustrating the fundamentals of Agile development and Agile design, and moves quickly from UML models to real C# code. The introductory chapters lay out the basics of the agile movement, while the later chapters show proven techniques in action. You can also find many source code examples that are also available for download from the authors’ Web site.
7. Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans
Offering readers a systematic approach to domain-driven design, here are presented a set of design best practices, experience-based techniques and fundamental principles that facilitate the development of software projects facing complex domains. With this book, object-oriented developers, system analysts and designers will have the guidance they need to organize and focus their work, create rich and useful domain models and leverage those models into quality, long-lasting software implementations.
8. Implementing Domain-Driven Design by Vaughn Verno
For software developers of all experience levels looking to improve their results, and design and implement domain-driven enterprise applications consistently with the best current state of professional practice, this book will impart a treasure trove of knowledge hard won within the DDD and enterprise application architecture communities over the last couple decades.
9. Patterns of Enterprise Application Architecture by Martin Fowler
The first section of this book is a short tutorial on developing enterprise applications, which you can read from start to finish to understand the scope of the book's lessons. The next section, the bulk of the book, is a detailed reference to the patterns themselves. Each pattern provides usage and implementation information, as well as detailed code examples in Java or C#.
10. Working Effectively with Legacy code by Michael C. Feathers
Get more out of your legacy systems: more performance, functionality, reliability, and manageability. In this book, Michael Feathers offers start-to-finish strategies for working more effectively with large, untested legacy code bases. This book also includes a catalog of dependency-breaking techniques that help you work with program elements in isolation and make safer changes.