Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your email address or mobile phone number.
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.
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++.
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.
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:
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.
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.
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.)
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.
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.
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.
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.
Perhaps what gives C-based languages their reputation for being more difficult than some others is that they have some "gotchas"--things that will catch you offguard if you don't have a friendly mentor standing next to you to steer you around the pitfalls.
As much as anything, this book is about keeping you safe from the gotchas. For too many people, the ability to program is gained only after making the same unnecessary mistakes over and over.
Above all, I hope to communicate some of what makes the subject, at least at times, so interesting. Software development can test your patience as you track down elusive bugs. But the concepts can be fascinating. In our new century, programming computers has become the new kind of craftsmanship, the new mode of fashioning fine tools, for a world that runs on information.
My god, this thing does't help me out in my C++ class. It helps me learn the basics, but never the harder problems that my professor gives me. If only it was a lot more helpful.Published 11 months ago by Jeff Cloud Juarez
I am not sure who this book makes feel smart, but it sure wasn't me. Out of the 5 c++ books I have, this one was the least helpful and most technical. Beginners need not apply.Published 18 months ago by B. Beauvais
This book was needed for school it is good quality easy to read has a lot of good information and was useful.Published 20 months ago by Adam
Ridiculous gibberish. It is easy to see why the author worked for Microsoft. He can not give simple instructions. The CD does not workPublished on April 19, 2013 by clan
Good book for getting down the fundamentals of C++ as well as object oriented programming (OOP). Lots of example code to look through to further your understanding also.Published on February 3, 2013 by KD
Our instructor introduced us to this amazing book. It's good for beginners and also people who are slightly familiar with C++ and OOP paradigm. Read morePublished on October 16, 2012 by Chobin
"...the first and important part is where its difficult. Setting up the compiler is very poorly explained you get virtually no help from the read me."... Read morePublished on October 10, 2011 by chilly777
I really didn't expect this book to be so simple in presentation. It was so easy to understand. The book samples started off from simple ones and as yo go along it adds up new... Read morePublished on April 25, 2011 by flas1359