This book is awesome. I think I liked it even more that it was written in 1993 because we got a peek into 1993 Microsoft. I feel that this was the turning point where they were saying "We have to start making our stuff not crash"
I couldn't put the book down. There's so much useful information mixed in with the war stories. Almost every guideline he puts forward is useful today. "This is what happened" and exactly shows the reasons why Microsoft 1993 was so crashy. They did all of their features up-front and encouraged them not to fix them until the end of project. The business saw the finished features and say "Why is the program at this state for so long? By golly, it looks complete, so we should release!"
You also got to read about things he did in DOS, the Macintosh, and the 16-bit to 32-bit transition. That was my favorite part. Microsoft was one of the first companies out there to release Macintosh software
If you are the top 10-25% of programmers, you probably don't need a book like this. Then again, a lot of them would read the book anyways to find out how to be better. The detractors of this book are usually the kind of people that need to read it.
Also, the C code can disorient readers just because of the nature of C code.
I would have paid 300 times more for this book. Okay, I bought it used for $0.07, but still, it was great
Writing Solid Code (Microsoft Programming Series) 1st Edition
by
Steve Maguire
(Author)
| Steve Maguire (Author) Find all the books, read about the author, and more. See search results for this author |
ISBN-13: 978-1556155512
ISBN-10: 1556155514
Why is ISBN important? ISBN
Scan an ISBN with your phone
Use the Amazon App to scan ISBNs and compare prices.
This bar-code number lets you verify that you're getting exactly the right version or edition of a book. The 13-digit and 10-digit formats both work.
Use the Amazon App to scan ISBNs and compare prices.
Add to book club
Loading your book clubs
There was a problem loading your book clubs. Please try again.
Not in a club? Learn more
Join or create book clubs
Choose books together
Track your books
Bring your club to Amazon Book Clubs, start a new book club and invite your friends to join, or find a club that’s right for you for free.
More Buying Choices
There is a newer edition of this item:
For professional intermediates to advanced C programmers who develop software, here is a focused and practical book based on writing bug-free programs in C. Includes practical solutions to detect mistakes before they become a costly problem.
Customers who viewed this item also viewed
Page 1 of 1 Start overPage 1 of 1
Customers who bought this item also bought
Page 1 of 1 Start overPage 1 of 1
Editorial Reviews
Amazon.com Review
Any programmer worth their silicon knows that it is wiser to invest time preventing bugs from hatching than to try to exterminate them afterwards. And this is one of the best books for developing a proactive attitude towards electronic entomology. Follow Maguire's advice, and your testers, supervisors and customers will love you. Recommended.
Tell the Publisher!
I'd like to read this book on Kindle
Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.
I'd like to read this book on Kindle
Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.
Explore together: Save with group virtual tours
Amazon Explore Browse now
Product details
- Publisher : Microsoft Press; 1st edition (January 1, 1993)
- Language : English
- Paperback : 256 pages
- ISBN-10 : 1556155514
- ISBN-13 : 978-1556155512
- Item Weight : 1.46 pounds
- Dimensions : 7.37 x 0.85 x 9.07 inches
- Best Sellers Rank: #1,197,484 in Books (See Top 100 in Books)
- #51 in Computer Programming Debugging
- #1,061 in Software Design & Engineering
- #2,295 in Software Development (Books)
- Customer Reviews:
About the author
Follow authors to get new release updates, plus improved recommendations.

Discover more of the author’s books, see similar authors, read author blogs and more
Customer reviews
4.1 out of 5 stars
4.1 out of 5
46 global ratings
How customer reviews and ratings work
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on Amazon
Top reviews
Top reviews from the United States
There was a problem filtering reviews right now. Please try again later.
Reviewed in the United States on March 24, 2013
3 people found this helpful
Report abuse
Reviewed in the United States on August 29, 2000
I also decided to review this book after I saw many negative reviews about it on this site. I will recommend this book to anyone who does software programming for a living. The book is not about any particular programming language, it is about the attitude about programming that every software engineer should have.
The fact that this book gives examples in C or it uses Hungarian notations is completely irrelevant. I think 80% of the software bugs can be avoided with the attitude described in this book.
The fact that this book gives examples in C or it uses Hungarian notations is completely irrelevant. I think 80% of the software bugs can be avoided with the attitude described in this book.
6 people found this helpful
Report abuse
Reviewed in the United States on January 9, 2016
A must read. You can master coding syntax, but can you write code that is maintainable and less prone to bugs? This book has many good insights into what coding styles work and what don't. One of the best books I've used.
Reviewed in the United States on January 28, 2008
This book quickly reminded me that the "old school" rules to software development will always apply, no matter how many new labels you put on it (e.g. Agile). It was recommended to me by a college professor aside from the regular classroom reading we had to complete. And I was more than happy I purchased it and added it to my bookshelf.
One person found this helpful
Report abuse
Reviewed in the United States on April 20, 2015
I'm a Linux software developer that uses the C programming language daily, but even when this book is written by Microsoft guys from a long long time ago, many of the advise and suggestions are still applicable.
2 people found this helpful
Report abuse
Reviewed in the United States on May 25, 2018
I ended up returning it. I found it superficial.
Reviewed in the United States on September 15, 2008
Certainly no book can cover all the best practices to write best code but this book has done good attempt. Must read for all the fresh grads and developers before they start writing production code!
Reviewed in the United States on November 30, 2011
Very good book to build core concepts for programming in C. Learned a lot of new things about writing secure, 'solid' code.
Top reviews from other countries
embedeo
5.0 out of 5 stars
The actual context is outdated, but it gives you valuable thinking directions
Reviewed in the United Kingdom on December 5, 2017
When I first read the Bulgarian translated edition of this book, back in 1997, I concluded it is very helpful, yet very interesting and so easy to read. Then in 2014, I bought this original 1993 (English) edition, I read it again and I still support my initial impression -- helpful, yet easy to read.
However, since the context, which the book is written for, is outdated, you should not take it as a bunch of recipes, but you should rather take it as a direction of your thinking process. For example, instead of using specific methods for capturing memory leaks described in the book, you should think of using some contemporary measures or something that is already adopted by your management or R&D team. The important point of the book is that you should not miss or ignore the potential source of problems; you should think carefully (and pessimistically) in advance and it will pay off later.
Besides, in the world of embedded systems and plain C programming, the essential teaching of this book is more applicable than in other areas.
However, since the context, which the book is written for, is outdated, you should not take it as a bunch of recipes, but you should rather take it as a direction of your thinking process. For example, instead of using specific methods for capturing memory leaks described in the book, you should think of using some contemporary measures or something that is already adopted by your management or R&D team. The important point of the book is that you should not miss or ignore the potential source of problems; you should think carefully (and pessimistically) in advance and it will pay off later.
Besides, in the world of embedded systems and plain C programming, the essential teaching of this book is more applicable than in other areas.
2 people found this helpful
Report abuse
Sohnee
3.0 out of 5 stars
Old But Still Good
Reviewed in the United Kingdom on October 25, 2015
This is a great book. It is a little dated now and requires the reader to sort the still-valuable information from the now-dated. In the hands of a software professional this is a valuable read.
One person found this helpful
Report abuse
Fuzzbox
5.0 out of 5 stars
great
Reviewed in the United Kingdom on April 10, 2018
great Some great info here
One person found this helpful
Report abuse
Eddy Young
3.0 out of 5 stars
This book is mostly relevant if you code in C ...
Reviewed in the United Kingdom on August 16, 2016
This book is mostly relevant if you code in C. Having said this, I bought this to get more details about a few citations (from the book) that I read in blog posts.
C. Jack
4.0 out of 5 stars
Still Relevant
Reviewed in the United Kingdom on November 23, 2004
I'm a .NET developer and am just re-reading this now and I have to say its still quite relevant, your hearing great great advice on how to look at things and that cant be bad.
2 people found this helpful
Report abuse





