您的位置:首页 > 编程语言 > C语言/C++

10 Books that could Make you a Better C++ Programmer

2014-03-12 09:40 651 查看

10 Books that could Make you a Better C++ Programmer



gclassy
3 Aug 2011 12:12 PM

7

I just recently read a post by Programming Zen on 10 recent books that will make you a better developer. I have a few books to add to the list although these may not be as recent
and that are focused to C++... making my list really 10 classic books that will make you a better C++ developer J. Some of these books have multiple editions and the older ones can be bought cheaper and usually don’t have significant revisions. There’s one
exception that I can think of,Deitel and Deitel (D&D). My copy was the 5th edition of the Deitel and Deitel book but from what I’ve heard, it fixed some voice issues and they have introduced lots of new material with each edition to address C++
and STL updates. Finally, if you’re looking for our list of Microsoft Press books for C++ developers, we have a great one on the developer center and
I’ll exclude those from this list as this one is more personal and focused to books that have influenced me along the way as a developer. Here’s my list, in no particular order with exception for The Pragmatic Programmer, my dog-eared copy still serves as
my developer mantra.

The Pragmatic Programmer: From Journeyman to Master by Andrew Hunt and David Thomas



While I was a Java developer at a startup (my pre-Microsoft times), my manager/mentor gave me this book and it was a great read that I have revisited over the course of my career. This book is the kind of book that applies in one way while you are developing
as a new programmer and in a completely different way as you become more seasoned. For this reason, this book makes the top of my list and I’m surprised it didn’t make the top of the Programming Zen list.

Effective C++ and More Effective C++ by Scott Meyers



Scott Meyers has created some amazing books about development in C++. These books have taught me many techniques to create much better code that is cleaner and less buggy. Meyers’ best practices will help to turn a rookie into a much more seasoned developer
and learning and understanding the reasoning behind why Meyers makes the book an effective tool for stepping up your C++. The other thing about Meyers’ books is that following his guidance will reduce defects in your code immediately.

Practical Programming in C++ by Steve Oualline



This book was a great read. The voice that comes through makes it easier togrok the concepts that Oualine covers in the text. O’Reilly does an amazing job of editing and I love all their books, but this one really sticks out as a go-to text for the 80%
foundation of what makes a good C++ programmer.

The C++ Cookbook by D. Ryan Stephens, Christopher Diggins, Jonathan Turkanis, and Jeff Cogswell



I’ll start off admitting that I have a slight bias for the C++ cookbook because I had the pleasure of working with one of its authors, Christopher Diggins, a few years ago and he was a brilliant programmer. Disclosures aside, this book is primarily a collection
of techniques and shortcuts that will reduce your time to completion. As with the rest of O’Reilly books, the editors do a fantastic job of controlling the writer’s voice making this book also a very pleasant read.

C++ How to Program by Deitel and Deitel



Many readers may scoff that this book is really a beginner’s book because it was probably the first book they picked up on C++ programming. There’s a reason it’s so popular: the authors do an amazing job communicating concepts and this is probably the best
book hands down on foundational C++ skills. This book makes my list because it creates good programmers from beginners.

Design Patterns: Elements of Reusable Object-Oriented Software by Gamma et. All



Design patterns are the apex of thinking for creating code that is reusable and familiar to other developers. The 23 patterns shared in the text, also known as the “Gang of Four” book, have been talked about for decades now and will be talked about by architects
and seasoned developers for the foreseeable future. This is a book that brings intermediate developers into the ranks of masters and helps them to understand their language and reflect on elegant solutions to software problems. Read this book when you are
ready for it.

Code Complete by Steve McConnell



Steve McConnell’s book, the first Microsoft Press book on my list, sits on the desk of many engineers at Microsoft and in some circles serves as an employee handbook for coding style. Required reading for coders in some of our teams, it serves as a great
example for how to create legible code that in the long run will save developers time.

Writing Secure Code by Michael Howard and Steve Lipner



Security is a best practice, right? For those engineers with Code Complete, this book oftentimes sits right next to it. In many ways, this book is a complimentary book to another title, Thread Modeling, but in my experience does a better to illustrate
security from the developer’s perspective. Writing secure code addresses the ways to STRIDE model and thinking about security from an engineering and coding perspective makes this book essential for developers coding anything that can have an attack surface.

The Art of Computer Programming - Donald Knuth





This book series is probably the most famous CS book series of all time – if you ask developers who learned at the dawn of modern CS. I was handed down my copy (copies? it’s like 4 giant books) from an older programmer while I was still learning and college
and the theories were way over my head. Knuth invented his own machine language for the series and demonstrates classic algorithms in it, an amazing feat in itself. If you are looking for a quick way to become a better programmer, this is not the series
you are looking for. However, if you want to gain a better understanding of computer science theory and can bear through the hardcore, the Knuth series is all you need. The Knuth books are very scientific but at their core is the foundation for solving complex
problems with algorithms and for this reason it can transform your thinking about programming.

The C++ Programming Language and by Bjarne Stroustrup



I can’t in good conscious give a list of C++ programming books without including the C++ creator’s manual. This book is a very interesting reflection on the choices that were made in the creation of the language and also serves as a reference for the C++
programming language and STL and also reveals the reasons that you should use the language as intended. This book can transform a person from a C++ coder into an individual who really uses and chooses the C++ language for its strengths. If nothing else, this
is a fascinating look at C++ from the 10,000 foot to microscopic perspective.

Here's the list from Programming Zen, with exception to debugging with DDD/Eclipse and the Agile books, these books introduce many great best practices and will help you become a better developer regardless of which language you are coding in:

1. Introduction to Algorithms, Third Edition



OK,
this is cheating a little. “Introduction to Algorithms” is both a classic and a book on everyone’s list. However, I opted to include it because not everyone knows that it was recently (September 2009) released in its third edition. The book received a major
upgrade to the existing content and exercises, as well as including new, modern algorithms. Any programmer working through this book, or revisiting it, will learn valuable, foundational knowledge.

2. The Annotated Turing



Alan
Turing wrote a classic paper in 1936 with the title: “On Computable Numbers, with an Application to
the Entscheidungsproblem“. It was a paper on Turing machines and the limits of computability, which had a major impact on computer science and the development of the computer you are reading this post on. Every programmer/computer scientist should get
ahold of this paper and read it. Unfortunately, it isn’t exactly easy to grasp if you are not used to reading research papers. In “The Annotated Turing”, Petzold does a marvelous job of dissecting the paper (and its errata), providing ample explanations and
background information over 18 chapters (360 pages vs 36 of the original paper). It manages to be rigorous while still being accessible. If this book doesn’t arouse your interest in computer science, chances are nothing will.

3. Growing Object-Oriented Software, Guided by Tests



This
book takes two fundamental pillars of modern software development, Object-Oriented Design and Test-Driven Development, and clearly illustrates how to apply the best practices of each to build and maintain complex software. I don’t know of many developers who
couldn’t learn something new about TDD in the context of OOP from this book. A must read.

4. Clean Code



While
on the subject of Agile development, I can’t help but recommend “Clean Code” by Uncle Bob. It compliments “Growing Object-Oriented Software, Guided by Tests” perfectly by focusing on how to improve and refractor code to get rid of code smells. You can think
of it as a very succinct version of Code Complete 2, with a strong focus on Agile craftsmanship. The examples, as per the previous book, are in Java but that shouldn’t be much of an issue for the open-minded developer.

5. Leading Lean Software Development: Results Are not the Point



Lean
principles deriving from the Lean manufacturing world have been effectively translated and adapted to the field of software development. This book explains how to lead a team to success through lean software development in detail to team leaders and mentors.
Having obtained a Lean Six Sigma yellow belt many years ago, this book definitely gave me a few flashbacks. If you are not familiar with the concepts presented, you’ll definitely find it food for thought. Building software requires far more than just writing
quality code, and the techniques presented here are valuable, even if you don’t fully buy into this methodology.

6. Growing Software



While
on the subject of leadership, if you are in charge of software development at a small company or startup, you want to read this book. My interest in this title came from the fact that its author (Louis Testa) works as a Senior Engineering Manager at Galois,
a company that uses Haskell as their technological advantage (and hired Don Stewart of Haskell fame). “Growing Software” delivered on my expectations and is full of hands-on advice on how to deal with the whole workflow surrounding the creation of software
from the idea all the way to the sale and support of a product.

7. The Art of Debugging with GDB, DDD, and Eclipse



Debugging
is an invaluable skill and one that is often left out from introductory programming books. Being able to effectively debug code is what separate professionals from beginners, and productive programmers from frustrated ones. This book is ruthlessly practical
with many advanced techniques for debugging on Linux/Unix. It’s well worth its price in my opinion.

8. Applied Mathematics for Database Professionals



Assuming
you already have a decent understanding of relational databases, and are not too scared of mathematics, this book will really bring your knowledge of how databases work to the next level, in turn improving the design, schema evolution, and SQL queries you’ll
create afterwards.

9. Programming Collective Intelligence



If
you are building web applications that do more than simply CRUD operations on your data, you’ll want to read this book (with examples in Python). The motivated, intermediate developer will learn how to efficiently solve complex problems related to machine
learning and intelligent web algorithms from this book. It’s a very accessible introduction to tough subjects and one of the most interesting books I’ve read in some time.

10. Coders at work



To
conclude this list, I wanted to include a book that’s aimed at showing programmers how some of the best programmers and computer scientists do their work. I previously enjoyedFounders
at Work, and this version about programming is just as good. It’s inspiring, fun to read, and rich in insight and advice.

from:http://blogs.msdn.com/b/seealso/archive/2011/08/03/10-books-that-will-make-you-a-better-c-programmer.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: