Every coder and wannabe programmer should read these five ‘must have’ books – Part IIRefactoring: Improving the Design of Existing CodeWorking Effectively with Legacy CodePeopleware: Productive Projects and TeamsHead First Design PatternsSoft Skills: The software developer’s life manual
In this article, we present the second part of five top books that every coder or programmer should read. To know about the first list of top five books, click here.
Refactoring: Improving the Design of Existing Code
Written by object expert Martin Fowler, this book shows how refactoring can make object-oriented code simpler and easier to maintain. Today, refactoring requires significant design know-how, but once tools become available, all programmers should be able to improve their code using refactoring techniques. This book demystifies these master practices and demonstrates how software practitioners can realize the significant benefits of this new process.
The book begins with general principles of refactoring: why and when to refactor, how to approach management about refactoring etc. The book then takes you through a tour of how make the improvements happen. • What are the indicator of bad smells in the code? • How to structure classes, methods and other logical pieces? • Unit tests for your code • How to move features from one object to another? • Refactoring tools • ..and more Refactoring: Improving the Design of Existing Code (Addison-Wesley Object Technology Series) Even though all code examples given in the book are in Java, this is a must read book for those who want to know how to improve your existing code. Refactoring is sure to be essential reading for anyone who writes or maintains object-oriented software.
Working Effectively with Legacy Code
In this book, author Michael Feathers offers start-to-finish strategies for working more effectively with large, untested legacy code bases.
The material Michael used in this book are from works created for his renowned Object Mentor seminars, the techniques he has used in mentoring to help hundreds of developers, technical managers, and testers to bring their legacy systems under control. The topics covered include: • Understanding the process of software change, adding features, fixing bugs, improving design, enhancing performance • Getting legacy code into a test harness • Writing tests that safeguard you against introducing new problems • Techniques that can be used with any language or platform, with examples in Java, C++, C, and C# • Accurately identifying where code changes need to be made • Coping with legacy systems that are not object-oriented • Handling applications that don’t appear to have any structure Working Effectively with Legacy Code This book also includes a catalogue of twenty-four dependency-breaking methods that help you work with program elements in isolation and make safer changes.
Peopleware: Productive Projects and Teams
Written by Tom DeMarco and Timothy R. Lister, this book is not about programming but about managing and motivating programmers. It should be read by developers too. With humor and wisdom drawn from years of management and consulting experience, the authors demonstrate that the major issues of software development are human, not technical — and that managers ignore them at their risk.
Software development is a creative process. But most managers treat it as assembly line process. Developers are seen as substitutable devices in the machine. Generally, managers see giving tight deadlines as the only way to increase motivation. They do not take interest in the work developers do and miserably, not try to understand the developers or their craft. Peopleware: Productive Projects and Teams Peopleware shows you how to cultivate teams that are healthy and productive.
Head First Design Patterns
This is perhaps the most non-technical looking book on programming that has a woman on the cover page. Each page contains doodles, pictures and other eye-catching stuff. The book covers a core topic about programming, which is “design patterns”
While the book only covers every pattern that you might need to solve real world problems, it also helps you create functional, graceful, reusable, and flexible software. The trade-off for each patterns have been clearly pointed out. Also, the authors of this book also explain the why and the how. Using the latest research in cognitive science and learning theory to craft a multi-sensory learning experience, Head First Design Patterns uses a visually rich format designed for the way your brain works, not a text-heavy approach that puts you to sleep. This book lets you put patterns to work immediately. In a way that makes you better at solving software design problems, and better at speaking the language of patterns with others on your team Head First Design Patterns The latest edition of the book now includes updates for Java 8 – mainly the Lambda.
Soft Skills: The software developer’s life manual
This book is a unique guide to a well-rounded, satisfying life as a technology professional. It’s about your career, life, body, mind, and soul as well.
In this book, 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. Soft Skills: The software developer’s life manual The author himself has followed these methods and is quite successful at that. His website says that he was able to quit his day job in his early 30’s. The author has concluded his life’s experiences in neatly divided short chapters on Career, Marketing Yourself, Learning, Productivity, Finances, Fitness and Spirit. Arranged as a collection of 71 short chapters, this fun-to-read book invites you to dip in wherever you like. If you follow the suggestions in this book, not just as a programmer, but as your whole self, it will help make you a better programmer, a more valuable employee, and a happier, healthier person.