This book discusses practical software engineering in a simple to read, but useful style. It is only a little over 300 pages, so it isn't a long read and it is well illustrated.
While nothing in the book was earthshattering, it does a very good job of reviewing the basic principles that apply to software projects. It covers a variety of programming practices from code generation to source code control to unit testing. While they aren't discussed in great depth, each one is given a well rounded overview showing what part it plays in a software project and why it is useful.
Most formal education in software construction focuses on the code and not on the processes used to create and manage the code. This book helps focus on the latter. It isn't an all inclusive reference, but it makes a good launching point to decide which tools and practices are worth investing time into learning.
Table of contents:
Some of the authors' nuggets of pragmatism are concrete, and the path to their implementation is clear. They advise readers to learn one text editor, for example, and use it for everything. They also recommend the use of version-tracking software for even the smallest projects, and promote the merits of learning regular expression syntax and a text-manipulation language. Other (perhaps more valuable) advice is more light-hearted. In the debugging section, it is noted that, "if you see hoof prints think horses, not zebras." That is, suspect everything, but start looking for problems in the most obvious places. There are recommendations for making estimates of time and expense, and for integrating testing into the development process. You'll want a copy of The Pragmatic Programmer for two reasons: it displays your own accumulated wisdom more cleanly than you ever bothered to state it, and it introduces you to methods of work that you may not yet have considered. Working programmers will enjoy this book. --David Wall
Topics covered: A useful approach to software design and construction that allows for efficient, profitable development of high-quality products. Elements of the approach include specification development, customer relations, team management, design practices, development tools, and testing procedures. This approach is presented with the help of anecdotes and technical problems.
should be required reading for all computer science students
This is the best book that I have read thus far on the practice of programming. The pragmatic programmer provides invaluable advice to those who are just starting to program, and those who have been programing for years. By following the authors' simple rules you should have gained some programming wisdom that a programmer would realize in a decade.
There are a couple of things that I think the book has done right:
1) The book is supplemented with code and examples that let the author present the topics better. So it is not just an essay, it is a programming guide
2) There are questions at the end of each chapter that ask you what would you have done in some situation; better yet all the questions have been answered
3) The book has been written and was organized in such a way that you would not need to read the entire book to understand what you want to understand. There is also little cruft
4) The book's key points are listed in the end so you would have the book's wisdom on one page at all times
Invaluable nuggets
A collaborative work worthy of a top-ten ranking for software development "bible".
This book distills everything pertinent to real-world "rubber-hits-the-road" software development. Given that there isn't really another type, save that which is embraced in the dank halls of academia, go to this book first. Yes, even before "Code Complete".
The style is refreshingly unassuming and devoid of religious side-taking (bar a modest but controlled bent towards a unixy philosophy). All sides are presented, and a final "we feel ..." proffering a very soundly backed up opinion on the subject in discussion. It's written for the reader--easy-going and coloured with industry anecdotes and graceful humour.
References are ubiquitous, indicating a well-balanced text from true field professionals.
Andy and Dave regularly re-inforce their modus operandi, that of pragmatic professional. Especially noteworthy is the no-nonsense style--unlike other books in this category, lip-service to the "fashion of the day" is avoided--accepted norms are questioned, but done so gracefully, and with respect.
The entire book resonated with me, and I regularly found myself nodding in silent agreement. I would have to say that the most significant thing I got out of this book though was the relentless philosophy of "do it right", from uncomprisingly implementing "don't-repeat-yourself" to choosing the most appropriate tool for the job (rid yourself of those emotional attachments), all communicated in a wonderfully modest manner.
A concise and practical book
I like how concise this book is. It hits important points in two pages. It's like a cliff a notes to good programming practices. You will need deeper resources to implement the recomendations in this book but it is full of very good practices. I recomend it for any programmer.