Programming Books C Java PHP Python Learn more Browse Programming Books
C++ Without Fear and over one million other books are available for Amazon Kindle. Learn more
Buy Used
FREE Shipping on orders over $35.
Used: Very Good | Details
Condition: Used: Very Good
Comment: Crisp, attractive copy with no markings to text. Ships directly to you with tracking from Amazon's warehouse - fast, secure and FREE WITH AMAZON PRIME.
Access codes and supplements are not guaranteed with used items.
Add to Cart
Have one to sell? Sell on Amazon
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See this image

C++ Without Fear: A Beginner's Guide That Makes You Feel Smart Paperback – September 24, 2004

ISBN-13: 078-5342246957 ISBN-10: 0321246950

Price: $6.62
19 New from $12.50 65 Used from $0.01
Amazon Price New from Used from
"Please retry"
"Please retry"
$12.50 $0.01
Unknown Binding
"Please retry"

There is a newer edition of this item:



Shop the new
New! Introducing the, a hub for Software Developers and Architects, Networking Administrators, TPMs, and other technology professionals to find highly-rated and highly-relevant career resources. Shop books on programming and big data, or read this week's blog posts by authors and thought-leaders in the tech industry. > Shop now

Product Details

  • Paperback: 486 pages
  • Publisher: Prentice Hall (September 24, 2004)
  • Language: English
  • ISBN-10: 0321246950
  • ISBN-13: 978-0321246950
  • Product Dimensions: 1.1 x 6.9 x 9.1 inches
  • Shipping Weight: 1.9 pounds
  • Average Customer Review: 4.0 out of 5 stars  See all reviews (45 customer reviews)
  • Amazon Best Sellers Rank: #820,711 in Books (See Top 100 in Books)

Editorial Reviews

About the Author

Brian Overland has considerable experience programming with C++ and teaching basic techniques to others. For ten years at Microsoft, he worked as a C++ programmer and writer, as well as project leader--a unique combination that prepared him well to write lucid, accurate programming books. He is the author of six programming books in all, including C++ in Plain English, Third Edition John Wiley & Sons, 2001. Brian currently is the CEO of Storage Tech LLC, a pioneer in the area of digital record storage.

Excerpt. © Reprinted by permission. All rights reserved.

In my ten years at Microsoft, I found the top-level programmers ("software development engineers," we called them) to be an interesting breed. Once you got them to open up and talk about their projects, they could be an articulate and passionate group.

The trick was to get beyond the initial barrier, to convince them that you spoke their language. Experienced programmers sometimes divide the world into two groups: those who are "technical" and those who are not. At times a yawning gap seems to exist between them, like that between people with perfect pitch and those without.

For programmers, the dividing line these days is most often the ability to program in C++. This attitude stems from the perception of C++ as difficult to learn.

This book is dedicated to the idea that C++ need not be difficult. It's often a more challenging language than Basic, to be sure, but with the right kind of help,you can master the tricks of C++.

Why a New C++ Book?

Introductory programming books for C++ exist aplenty. But many--probably the great majority--are "introductory" only in the sense that they don't assume knowledge of C++ specifically. They usually assume that you've programmed in another language before, preferably in several.

This book does not make that assumption. All that's required is that you're comfortable with a computer and that you've run applications such as a word processor or e-mail reader.

Once you narrow the available C++ texts down to those that require no programming experience at all, there's a much smaller group of books from which to choose.

What Else Is New about This Book?

The book you hold in your hand stresses the fundamentals of programming. Yet even if you have programmed before (maybe you've taken a basic course in high school or college), you may find this a useful review. This book delves into thetopic of how to think like a programmer . . . and why specific language features matter. The why is as important as the how.

People learn best when they get the benefit of several learning methods reinforcing one another. Therefore, every topic in this book is introduced by a general discussion with short program-code examples, accompanied by the following:

  • A complete program example. Usually I provide a complete example that can be run and tested. The emphasis in this book is on short examples that do something interesting and useful and, when possible, something fun.
  • Programming exercises. Each example has a series of accompanying exercises, in which I encourage you to modify the example or write similar programs, so that from the beginning you're writing C++ code. Answers to these exercises provided on the accompanying CD in the folder "Example Code and Answers to Exercises."
  • Generous use of illustrations. Many so-called beginning texts don't use this approach at all. But I often find that the right figures can clarify an abstract concept. One picture is worth a thousand lectures, sometimes.
  • A special "How It Works" section for every major example in the book. How-to program texts are notorious for giving you a long example followed by a couple of paragraphs of text. That's not the approach of this book. Complete examples are listed so that you can see everything in context. But after each example, I go back and dissect the program a couple of lines at a time, explaining how and why each bit of the program does what it does.

Multiple Learning Paths: What Fits You Best

In addition to the multiple learning techniques just described, this book contains frequent Interludes, where the more curious reader will find additional background and explanations why C++ features work the way they do. If you're eager to just get C++ programs working, you may want to skip the Interludes and return to them later. One of the advantages of this book is that it accommodates multiple learning paths.

Unlike some texts, this book does not start with an exhaustive description of all language features such as data types, control structures, and operators. That would be like learning French by spending months memorizing nouns ratherthan learning to speak a complete sentence. This book focuses on getting real programs to work, right away.

At the same time, it's helpful to have access to a thorough-but-concise summary of language features. This book provides that summary in a series of convenient appendixes.

What If You Already Have a Programming Background?

If you already know another programming language but are new to C++, that's not a problem. Certain ideas in programming never get old: what it means to think like a programmer, what's going on just beneath the surface, why the language is constructed the way it is. This review of programming fundamentals may be of interest anyway. But if not, you can speed through the first chapter or two. C++ gets challenging quickly enough.

What Is Not Covered?

The goal of this book is to make you comfortable and conversant in C++, including objected-oriented programming features (classes and objects) that, although a relatively advanced topic, are at the heart of C++. The goal is not to teach every last bit of language syntax or to describe how every statement is translated into machine behavior (that is, how it is implemented), although in some places I do discuss that.

In my view, the good majority of beginning texts make the mistake of trying to cover every obscure corner of the language, even though there is ample room in intermediate to advanced books to handle those topics.

In case you are a C++ expert or otherwise a guru perusing this book, or you have some familiarity with the scope of the language, here is a summary of what's in C++ but is not covered in this book. (Consider this a "truth in advertising"disclaimer.)

  • Bit fields and bit operations. Bit operations can occasionally be useful for programs that must make extreme use of compact space, but in general, bit operations are rarely necessary. This is a good advanced topic. Likewise, I don't cover the union keyword (another feature used for compaction).
  • Windows and GUI programming. These are difficult subjects, deserving of their own book (or three). Visual C++ requires understanding of a complex architecture and thorough knowledge of object-oriented programming systems (OOPS). Reading this book first will give you a background in OOPS.
  • Templates and STL (Standard Template Library). This is another good topic for an advanced book. A template is a way of creating a generalized data structure in which an abstract mechanism can be combined with any number of specific data types. The template-defining capability was not originally in the C++ specification, although it is now standard.

Although this book does cover exception handling--a way to respond to runtime errors--I don't stress it, because it is most appropriate in complex programsand not likely to be as useful to a beginner.

Why Should Anyone Start with C++?

Some people will tell you that C++ is unsuitable for beginners; therefore, unless you're in the elite of talented and experienced programmers, you shouldn't bother. I don't agree with that.

There are some good reasons for learning C++ early in your programming career. People used to spend a lot of time mastering the C language first. Yet C is rarely used for real work anymore. Now students learn it primarily as a stepping-stone to C++. But this makes little sense. You can pick up some bad habits learning C. It's better to go directly to C++. C++ is now the language of choice for systems programmers as well as for writing commercial software--including games, graphics, and business-oriented programs.

Some other languages (notably Microsoft's Visual Basic) are more forgiving. But as with C, Basic can encourage bad habits. C++ offers any learner some unique rewards.

  • Like the C language, C++ is a systems-programming language. In learning about C++ (at least in this book) you'll learn a lot about how things work in the computer and why they do.
  • Unlike C, C++ is a good implementation of object-oriented programming. This is an approach to programming in which you create intelligent data structures, especially well suited to things such as graphics programming. Object-oriented programming also lets you define new types that in effect expand the capabilities of the language itself. In learning object-oriented programming, you'll learn more about the current state of software design and where it's going.

The first half of this book focuses on the fundamentals of C++: how to get a program to work and accomplish basic tasks. From the beginning, however, it does get you to start using and understanding objects.

The second half focuses more completely on object-oriented programming, with special emphasis on how you can use it to write useful--and reusable--program code.

To Get Started . . .

This book provides an added bonus: an accompanying CD with a free compiler, which is the language translator needed to write and execute programs in C++. All the programming examples in this book have been tested and retested with this compiler. The examples also work with compilers such as C++ in Microsoft Visual Studio.NET, although you'll need to follow the special instructions in Chapter 1 for use with that environment.

To install the free C++ compiler, just insert the CD into a PC and follow the instructions in the README.TXT file in the root directory.

This compiler is a free shareware version of GNU C++. You are free to use it to build and distribute your own programs. It also comes with a free development environment, so (as described in Chapter 1), you can write programs and then build them (translate them into executable form) at the touch of a single keystroke.

Tips and Tricks: What Do I Watch Out For?

Perhaps what gives C-based languages their repu...

More About the Author

Discover books, learn about writers, read author blogs, and more.

Customer Reviews

IT WAS A GREAT BOOK for C++ Programming beginners.
The CD contains GCC, the GNU Compiler Collection C++ compiler.
Paul M. Dubuc
It is well written, easy to understand, and not boring at all.
J. Ramirez

Most Helpful Customer Reviews

64 of 66 people found the following review helpful By Paul M. Dubuc on December 26, 2004
Format: Paperback
There are many "beginner" books on C++, but many of them assume some proficiency in C or another programming language. If you're new to programming (or have some background in C) and want to learn C++, you will do well with this book. The author doesn't make you learn all the features and syntax of C++ before getting started. He starts you writing useful programs right away and explains how things work in simple language and with the help of very good illustrations. The book also focuses on the core language, the basics of C++ that will not only get you writing useful programs, but will prepare you well for the more advanced features that this book doesn't cover (templates, STL, generic programming). Don't have a compiler? The CD contains GCC, the GNU Compiler Collection C++ compiler. This compiler is standard for Linux and Mac OS X and is available free for MS Windows and many other computing environments. This book doesn't lock you in to writing Windows-only software. Overall this is a very good beginner book for learning C++. There may be more comprehensive books (Bruce Eckel's "Thinking in C++ is very good, but it comprises 2 volumes each with twice as many pages as this one.) but this one is a very good way to get your feet wet before going on to others.

Why should a beginner learn C++ instead of another language that is supposedly "easier" to learn or more popular? There are several good reasons, but here are a few: First, C++ isn't really that hard to learn. C++ was build upon the C language. It adds many advanced features to C and was first adopted by programmers who were already experts in C. For a long time it was thought that it was best to learn C first before moving on to C++. But that's just the C programmer's bias.
Read more ›
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
25 of 26 people found the following review helpful By J. Ramirez on February 7, 2006
Format: Paperback Verified Purchase
This book is a terrific start for someone interested in computer programming. It is well written, easy to understand, and not boring at all. It took me about two weeks to get through it (part time in the evenings). If you work through each tutorial step by step, you'll get a basic understanding of C++. Once you've done that, then you'll be able to move on to more challenging material. This is NOT a book for someone with previous programming experience. All in all, I was very happy with it.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
26 of 29 people found the following review helpful By J. L. Y. Bing on March 1, 2005
Format: Paperback
I actually learned programming in general and C++ in particular using this book. From my experience:


1. I think this book do acheive its target of imparting programming knowledge using C++ to someone that know how to basically do email and stuff. However, I hold a MSc Fin and use spreadsheet frequently (but my macro skill is close to none :).

2. If you use this book, drill through all the examples and practice all the exercises (answers are in cd at the back of cover), you will build up a good base to tackle other higher level C++ books. Overland explain the basic concepts in pragramming and C++ quite succintly for the target audience.

3. Try to teach proper coding styles and practices along the way, ie. the use of {} braces, etc.


1. Overland employ the traditional bottom-up approach of teaching C++, eg. teach you to build class first instead of introducing the feature in C++ standard library right away. I'm currently reading Koening's "Accelerated C++" and Eckel's "Thinking in C++" and using Lippman's "C++ Primer 4ed" as reference. I find the top-down approach used in Koening's and Lippman's more appealing as I learn to write more powerful code quicker.

2. The coding style may not be standard compliant or up to date. Being a total novice when I read this book I did not know better. But things like: return 0; in main() when it's no longer required under the standard, use stdlib.h math.h instead of cstdlib cmath, etc. (This book is copyrighted 2004)

3. Examples may not be the most interesting for total novice. And some mistakes in the answers for exercises, which is however easy to notice if you follow the book properly.

Overall, I'm satisfied with this book. Learn the basic and move on.
Read more ›
3 Comments Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
8 of 8 people found the following review helpful By talos72 on December 22, 2004
Format: Paperback
I am a digital/fx artist, and wanted to actually advance my skills in computer graphics. What I learned is many scripting and expression languages in animation software packages are derived heavily from C and C++ languages. Hence my interest to learn about C++.

If you are a newbie to programming, specifically C++, then this may be a helpfull book. It is not meant to be an endall intro book to C++, but it does explane the basic logics in C++ fairly well. It includes decent diagrams, which are helpfull for those who tend to be more visual.

That said, the accompanying CD has issues with labeling where the solutions to the exercises in the book do not match...kinda confusing. In addition, so far, few of the samples seem to be buggy with syntax errors.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
7 of 7 people found the following review helpful By T. Harris on February 18, 2005
Format: Paperback
The thing I like most is not that the book presents an easy way to learn. It's that it is receptive to the fact that different people learn in different ways, and it presents a very hands on way that is applicable as an adult learning model. The best way to learn programming in any language is to do it, and it lets you get your hands dirty without getting overwhelmed.

It's not a perfect book (if that exists) but I think it exceeds in what it tries to do. Also,you may have problems with different compilers. This is not uncommon and you may have to do a little research and explore the code to get it to work properly. This isn't really a bad thing. I use Bloodshed's DevC++ and it provided a small extra learning experience in getting some of the programs to run. but if in doubt, use the compiler on the CD.

And last but not least, it's not very many books on programming that flow like this one. It's well written and doesn't make me yawn or sleepy.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again

Customer Images

Most Recent Customer Reviews


What Other Items Do Customers Buy After Viewing This Item?