Sunday 26 February 2012

A Book Sequence: From C++ Beginner To C++ Expert


Do you really want to learn C++ and learn it well? If you put in the time to go really through this books series, you will learn C++. 

1. Jumping into C++

 You'll learn all the basics, including
  • Variables, loops and functions -- the basic building blocks of programming
  • Pointers, arrays and references -- more advanced low-level concepts
  • Strings, file I/O and other advanced topics
  • Classes and object-oriented programming -- learn to build more powerful programs that are easier to modify
You also get
  • detailed instructions on setting up a free compiler
  • over 70 practice problems to hone your skills
  • and 75 sample source code files to adapt to your own programs


2. Practical C++ Programming

topics include
  • Understanding how to write better code
  • Writing code for others
  • Anecdotes and experiences
  • Performance tuning tips, learn to make your code faster
  • Learn to take advantage of the tools of programmers
  • Coverage of advanced topics like templates (write less code to do more)
  • Debugging tips and bug prevention
  • an explanation of how floating point numbers work

3. Programming Pearls

So you've got some basic skills and learned to think like a programmer. Now it's time to test yourself.Programming Pearls will throw fifteen challenging scenarios at you. Moreover, this is one of my absolute favorite books on programming: it's just a lot of fun.

Fun aside, you'll learn
  • how to reformulate problems to write cleaner solutions
  • more performance tips and a length performance tuning reference
  • powerful techniques for estimating performance and the limits of your programs
  • how to demonstrate that your programs work
  • a host of powerful algorithms and creative ways of applying them.
  • a variety of simple tricks to write cleaner, shorter code
You also get an enormous collection of programming puzzles that commonly show up at job interviews. This is a great book both to equip yourself with an understanding of a variety of important algorithms and to learn




4. Effective C++ : 55 Specific Ways to Improve Your Programs and Designs 

This is the first book that really sets you apart. Once you've read it, you'll have an arsenal of tools to throw at any programming problem. Although you probably won't find yourself using all 50 tips, you'll learn many of the nuances of C++ and avoid numerous pitfalls--shortly after I read this book the first time, I found myself catching bugs merely from the material gleaned from a few of the tips.

Among the things you'll learn:
  • what functions are always part of a class and why it matters to you
  • how to write code designed for others to use
  • what to watch out for when writing an assignment operator
  • simple techniques that can lead to huge performance improvements
  • advanced C++ techniques, including use of the STL (with lots of examples)


5. More Effective C++: 35 New Ways to Improve Your Programs and Designs

. You'll learn about specific design problems including
  • How to build a smart pointer using reference counting
  • A variety of ways to implement double-dispatching, and which ones are best
  • Ways to write classes that work almost the same as regular variables
and a host of other issues. You also get coverage of powerful language features and issues like
  • const-correctness and mutability
  • the explicit keyword and why it's useful
  • advanced use of templates, including specialization and partial specialization
This book teems with practical advice and wisdom, along with a healthy dose of clear explanations of powerful designs.



6. The C++ Programming Language

By the man who invented C++The C++ Programming Language is the bible of C++. It covers an enormous range of topics (heck, the whole language!) Even better, you'll understand how to use the language features. Stroustrup's writing is dense at times, and parts of this book can often stand to be read multiple times to get the full impact. Nevertheless, the breadth of coverage is astonishing.

This book also serves as an excellent reference, and I keep it handy whenever I'm working with C++. If you have a question about the language, it's almost certainly answered here.

Although this book is so enormously comprehensive it's difficult to pull out a small list of what you'll learn, here are a few things you can get from this book
  • Incredible depth and breadth of coverage
  • Nuanced explanations of the language and its features
  • Descriptions of the corner cases of the language
  • Detailed explanations of the lesser-known language features--become a true expert in the details of C++


No comments: