Bruce Eckel's Thinking in C++, 2nd Ed Contents | Prev | Next

Goals

My goals in this book are to:

  1. Present the material a simple step at a time, so the reader can easily digest each concept before moving on.
  2. Use examples that are as simple and short as possible. This sometimes prevents me from tackling “real-world” problems,

    but I’ve found that beginners are usually happier when they can understand every detail of an example rather than being impressed by the scope of the problem it solves. Also, there’s a severe limit to the amount of code that can be absorbed in a classroom situation. For this I will no doubt receive criticism for using “toy examples,” but I’m willing to accept that in favor of producing something pedagogically useful. Those who want more complex examples can refer to the later chapters of C++ Inside & Out .[4]

  3. Carefully sequence the presentation of features so that you aren’t seeing something you haven’t been exposed to. Of course, this isn’t always possible; in those situations, a brief introductory description will be given.
  4. Give you what I think is important for you to understand about the language, rather than everything I know. I believe there is an “information importance hierarchy,” and there are some facts that 95% of programmers will never need to know, but would just confuse people and add to their perception of the complexity of the language – and C++ is now considered to be more complex than ADA! To take an example from C, if you memorize the operator precedence table (I never did) you can write clever code. But if you have to think about it, it will confuse the reader/maintainer of that code. So forget about precedence, and use parentheses when things aren’t clear. This same attitude will be taken with some information in the C++ language, which I think is more important for compiler writers than for programmers.
  5. Keep each section focused enough so the lecture time – and the time between exercise periods – is small. Not only does this keep the audience’ minds more active and involved during a hands-on seminar, but it gives the reader a greater sense of accomplishment.
  6. Provide the reader with a solid foundation so they can understand the issues well enough to move on to more difficult coursework and books.
  7. I’ve endeavored not to use any particular vendor’s version of C++ because, for learning the language, I don’t feel like the details of a particular implementation are as important as the language itself. Most vendors’ documentation concerning their own implementation specifics is adequate.

[4] Ibid.

Contents | Prev | Next


Contact: webmaster@codeguru.com
CodeGuru - the website for developers.
[an error occurred while processing this directive]