Every coder and wannabe programmer should read these five ‘must have’ books
Books, which was once considered as a great source of knowledge and wisdom are hardly been read by people these days. To add to that, it is an even fewer occurrence a programmer reading books, as they mostly depend on the internet search results to get their answers.
With the technology moving forward at a speed quicker than anytime in the history of mankind, there are new programming languages and tools every few months, seeking to be the silver bullet for all deficiencies of existing languages, tools and practices.
Even the great minds of yesteryears have faced the same problems and worked out the best possible solutions to solve them. The strategies to approach and solve the problems have been caught in some great books.
Provided below is a list of wonderful books that every developer in the industry should read.
The Pragmatic Programmer
The Pragmatic Programmer is a gem of a book about software engineering by Andrew Hunt and David Thomas. The knowledge in this book applies to all programming languages, as this book is not about any particular programming language. It covers topics ranging from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse.
The visions in this book extend across a number of interesting areas such as “tracer bullets”, fighting software decay, expensive tools do not produce better designs, avoiding duplicate knowledge, writing flexible, dynamic, and adaptable code, avoid programming by coincidence, bullet-proof your code with contracts, assertions, and exceptions, capture real requirements, test cruelly and efficiently, build teams of pragmatic programmers, writing code that writes code, separating views from models and make your developments more precise with automation.
Written as a series of self-contained sections and filled with entertaining anecdotes, thoughtful examples, and interesting analogies, The Pragmatic Programmer demonstrates the best practices and major drawbacks of many different aspects of software development.
This book will not only change your coding habits, but it will also change your personality as a Programmer. It is complete with practical advice on getting the best of both you and your code. It also includes a guide that sums up the tips and checklists.
Clean Code: A Handbook of Agile Software Craftsmanship
Written by Robert C. Martin, this is an classic book on software craftsmanship. Ever looked at someone’s code and went “Oh My God, What is this?” Rest assured, that someone hasn’t read Clean Code.
An epic book on software craftsmanship, which not only the book tells you how to write good code, but also an effective way to develop and approach software development. It will instil within you the values of a software craftsman and make you a better programmer but only if you work at it.
“Clean Code” is divided into three parts. The first describes the principles, patterns, and practices of writing clean code. The second part consists of several case studies of increasing complexity. Each case study is an exercise in cleaning up code of transforming a code base that has some problems into one that is sound and efficient. The third part is the payoff: a single chapter containing a list of heuristics and smells gathered while creating the case studies. The result is a knowledge base that describes the way we think when we write, read, and clean code.
While all the examples in this book are in Java, the learnings can be applied to any programming language. This book is a must for any developer, software engineer, project manager, team lead, or systems analyst with an interest in producing better code.
The Clean Coder: A Code of Conduct for Professional Programmers
Again, this is another programming book from Robert C. Martin. It is recommended that you read this book after “Clean Code”. While “Clean Code” is about the code, this is about the “Coder”.
In this book, Martin introduces the disciplines, techniques, tools, and practices of true software craftsmanship. This book is packed with practical advice about everything from estimating and coding to refactoring and testing. It covers much more than technique: It is about attitude. Martin shows how to approach software development with honor, self-respect, and pride; work well and work clean; communicate and estimate faithfully; face difficult decisions with clarity and honesty; and understand that deep knowledge comes with a responsibility to act.
The book also explores topics that programmers often overlook.
• What does being professional programmer mean?
• How to carry yourself as a true software craftsman?
• How to manage your skills?
• How to deal with conflict, tight schedules, and unreasonable managers?
• How to handle unrelenting pressure and avoid burnout?
• How to manage your time, and avoid blind alleys, marshes, bogs, and swamps?
• When to say No and how to say it?
• When to say Yes and what yes really means?
• ..and more.
You may not always agree with certain sections given by the author but it does provide good food for thought. It may be not what you expect, but may just be what you need.
Code Complete: A Practical Handbook of Software Construction
Written by Steve McConnell and published in 1993, Code Complete is a software development book that urges developers to get past code-and-fix programming and the big design up front waterfall model. It is also a compendium of software construction techniques, from naming variables to deciding when to write a subroutine and a must read.
This mammoth book is a must read that synthesizes the most effective techniques and must-know principles into clear, pragmatic guidance. This book will inform and stimulate your thinking and help you build the highest quality code no matter what your experience level, development environment, or project size.
Every aspect of software development is included in the book ranging from code structure, code formatting, variable method and class naming, right up to how to manage a team. Also, included in the book are riches of references and additional materials covering specific topics.
You surely do have an advantage if you read this book, as only a small percentage of software developers’ end up reading this book.
The Mythical Man-month: Essays on Software Engineering
The Mythical Man-Month: Essays on Software Engineering is a book on software engineering and project management by Fred Brooks, whose central theme is that “adding manpower to a late software project makes it later”.
This classic book was first published in 1975, which included Brooks’ observations based on his experiences at IBM while managing the development of OS/360. This book was called “The Bible of Software Engineering”, because “everybody quotes it, some people read it, and a few people go by it.” The book is widely regarded as a classic on the human elements of software engineering.
It is surprising to know that the quotes below all came from the book.
“All programmers are optimists: All will go well”
“Adding manpower to a late software project makes it later”
“Bearing of a child takes nine months, no matter how many women are assigned”
“An omelette, promised in two minutes, when not ready in two minutes, the customer has two choices – wait or eat it half-cooked. Software customers also have the same choices.”
It is disastrous that year after year, we are making the same mistakes in software development. This is a must read for every project manager and developer.
While the book has an excellent selection of essays, the only flipside to the book is the references to 25-year-old technologies. But that doesn’t lessen the worth of the book.