Top Choice C and C++ Books
Written by Kay Ewbank   
Monday, 24 September 2018
Article Index
Top Choice C and C++ Books
C++ Top Books
C/C++ Put To Work

Test Driven Development for Embedded C 

Author:James W. Grenning
Publisher: Pragmatic Bookshelf
Pages: 310 
ISBN: 978-1934356623

Describing this book as clear and persuasive, Harry Fairhead gave this book 4.5 stars, and wished all of the programming books he has to read were as straight to the point as this one, saying:

"Even if you don't write embedded code this is a great introduction to Test-Driven Development in C. In fact you might even complain that there isn't enough about embedded development but I don't think this matters too much. The orientation of the book is towards small resource limited systems." 

Overall this is a book that puts a convincing case for TDD - and succeeds in making it seem reasonable in an embedded environment. It is well written with plenty of well formatted code illustrating the ideas. Harry had some reservations about the elements the book doesn't cover on working with embedded systems, but decided that overall, what you think of the book does depend on the sort of embedded code you are creating. Personally, he was prepared to overlook the defects and recommend it to any C programmer even if they aren't specifically designing embedded code. 

Secure Coding in C and C++ 2nd Edition

Author: Robert C. Seacord
Publisher: Addison-Wesley
Pages: 600
ISBN: 978-0321822130

This book is an attempt to make C/C++ programmers more aware of just how vulnerable their code is. Most of the exploits are at the C level because its more direct approach to memory use. Awarding the book 4.5 stars, reviewer Mike James points out that C and C++ are particularly prone to program-induced problems because both languages give you enough freedom to make really big mistakes.  

In conclusion, Mike says that it's shocking that we need such attention to detail to ensure that our C, and to a lesser extent C++, programmers don't commit the sort of errors that have been in circulation for a very long time - but we do. He describes this as a very good book and highly recommended as long as you mostly want to know about flaws that arise in C. It doesn't really cover the security implications of working in C++ without dropping down to write some pure C. 

C++ Concurrency in Action

Author: Anthony Williams
Publisher: Manning
Pages: 528
ISBN: 978-1933988771 

Mike James said this is not an easy book to read, but it is one that can increase your understanding of practical multi-threading. Awarding it 4.5 stars, he said he could do no better than quote a reader's comment from the back jacket:

"Reading this made my brain hurt. But it's a good hurt."

Mike reviewed the first edition of the book, which aims to explain how to do multi-threading using C++11, but many of the ideas are general and would help you no matter what language you are working in.

A new release is due in December 2018 that has been updated and revised to cover all the latest changes to C++ 14 and 17.


Mike found that all of the ideas were well described and there are lots of examples to make things clear. However, he emphasized that if you have no background in concurrent programming at all, you will still find it hard work because concurrent programming is a tough challenge.

Overall, this is a good introduction in the sense that it helps you see why the techniques are needed and how to avoid misusing them. Occasionally you might need to look things up elsewhere to complete an explanation. If you want to get involved in concurrency in C++11 then this is an excellent place to start.

Parallel Programming with Microsoft Visual C++ 

Author: Colin Campbell & Ade Miller
Publisher: Microsoft Press
Pages: 208
ISBN: 978-0735651753 

The subtitle of this book is: Design Patterns for Decomposition and Coordination on Multicore Architectures, but reviewer Mike James said that if you are worried that this book might be just a collection of vague recommendations about having the right attitude, he can tell you now that it is a fairly practical, if not exactly hands-on, introduction to parallel programming. Mike awarded it 4.5 stars, and says that the most important things to know is that it uses Microsoft C++ and the Parallel Patterns Library (PPL) - you also need to know how to use the Standard Template Library (STL).


Overall Mike considered this a really good book, though he points out that there is no point in reading this book if you are not programming in C++ and you probably have to have achieved a reasonable mastery C++ to make good use of it. Now for the real shock - you can also read this book for free at: Parallel Programming with Microsoft Visual C++

Of course, the paper print version is easier to read and personally Mike says he'll keep his on a shelf ready to help when he next needs a refresher on parallel programming. Highly recommended.

Game Coding: Complete

Author: Mike McShaffrey
Publisher: Paraglyph Press
Pages: 850
ISBN: 978-1932111910

This is a popular book that has gone through several editions; we looked at the second edition but the comments stand for the current fourth edition (published in 2012) which has been updated to use more recent versions of DirectX and Visual Studio. 


Giving the second edition five stars, Mike James described it as not really being a “this is how you do it book”. Mike said the author Mike McShaffrey has been up against the real problems of creating  games –real and very big games. The book has code examples that show how to do things and there are discussions of the basics but this isn’t really a beginner’s book. You already need to know how to program in C++ amd have some ideas about creating a 2D/3D game, in particular sprites, meshes, textures and so on. Surprisingly you don’t have to be interested in creating a game to get something from the book. The stories are sufficiently scary to appeal to anyone working on a large project.

Mike James' conclusion is that as this is a huge work, a brick of a book, you are unlikely to read it all. However if you want to share the thoughts of someone who has been there and done it then this is a hugely enjoyable book and deserves a top rating. 





More C and C++ books

If you think we've missed your favorite C or C++ title there's a chance we have reviewed it but just not included it in this round up. The complete, and ever increasing, list of our C and C++ book reviews can be found here. However, we do know there are more C and C++ titles out there - and as new editions of them come out we will try to cover them.

Meanwhile if you want to give our reviewers reading recommendations then email Bookwatch.

Also on Programmer's Bookshelf

Pick Of The Shelf - SQL Server

Java Books For Beginners

Python Books For Beginners

JavaScript Beginners Book Choice

C# Books - Pick of the Shelf Revisited

Cloud Computing Books Pick Of The Bunch

Reading Your Way To Agile 

Advanced Java - Books Outside the Core

Java Books For Going Further

Advanced JavaScript Book Choices

Reading Your Way Into Big Data

Books for Pythonistas

HTML5 Books

Gems Amongst Ruby Books

All About Android Books

SharePoint Book Choice

To be informed about new articles on I Programmer, subscribe to the RSS feed, follow us on Google+, Twitter, Linkedin or Facebook or sign up for our weekly newsletter.

<ASIN: 193435662X>


<ASIN: 0321822137>


<ASIN: 0735651752>

<ASIN: 1933988770>

<ASIN: 1133776574 >


Last Updated ( Monday, 24 September 2018 )