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
| ||
Effective C++ and More Effective C++ by Scott Meyers
| ||
Practical Programming in C++ by Steve Oualline
| ||
The C++ Cookbook by D. Ryan Stephens, Christopher Diggins, Jonathan Turkanis, and Jeff Cogswell
| ||
C++ How to Program by Deitel and Deitel
| ||
Design Patterns: Elements of Reusable Object-Oriented Software by Gamma et. All
| ||
Code Complete by Steve McConnell
| ||
Writing Secure Code by Michael Howard and Steve Lipner
| ||
The Art of Computer Programming - Donald Knuth | ||
The C++ Programming Language and by Bjarne Stroustrup
|
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. |
相关文章推荐
- 6 Harsh Truths That Will Make You a Better Person
- 转载:The Essential List of JavaScript, jQuery, HTML & CSS Books to Make You a Better Web Developer
- 10 New STL Algorithms That Will Make You A More Productive Developer
- 6 Harsh Truths That Will Make You a Better Person
- ERROR: Could not extract package's data directory. Are you sure that your installed application is d
- linux下安装vmware Could not open /dev/vmmon: No such file or directory. Please make sure that the kerne
- Top 10 Mistakes that Python Programmers Make
- You Can Program in C++: A Programmer's Introduction
- Could not extract package's data directory. Are you sure that your installed application is debuggab
- This version of Visual Studio .NET does not support source controlled projects. Any changes that you make to this project will n
- You could be better
- Signs that you are a bad programmer
- C# 程序员最常犯的 10 个错误http://www.oschina.net/translate/top-10-mistakes-that-c-sharp-programmers-make
- Top 10 Mistakes that Python Programmers Make
- Top 10 jQuery Mobile Code Snippets that you need to know
- 10 methods make you positive.
- 10 things to make your desktop database apps better
- What can I learn right now in just 10 minutes that could be useful for the rest of my life?
- 10 rules to make better diagrams
- Top 10 Mistakes that Python Programmers Make