Return to Home Page
      Blog     Consulting     Seminars     Calendar     Books     CD-ROMS     Newsletter     About     FAQ      Search

Books by Bruce Eckel

Thinking in Java

This is the Thinking in C++ approach applied to the Java language, except that the book doesn't expect you to know C or C++. In fact, even if you've only programmed in macro languages you should be able to tackle Java with this book.

The primary emphasis is on the understanding of the language fundamentals, which are introduced a step at a time using small, simple examples. You're taught one feature at a time, and only when you understand the programming language are the abstract window toolkit and applets introduced.

My public Java seminar is based on the book. For details the free electronic version of the book, and ordering information for the printed version of the book, click here.

Thinking in C++

This book won the Software Development Magazine Jolt Award for best book published in 1995. Downloadable and printed books available here). You can't just look at C++ as a collection of features; some of the features make no sense in isolation. You can only use the sum of the parts if you are thinking about design, not simply coding. And to understand C++ in this way, you must understand the problems with C and with programming in general. This book discusses programming problems, why they are problems, and the approach C++ has taken to solve such problems. Thus, the set of features I explain in each chapter will be based on the way I see a particular type of problem being solved with the language. In this way I hope to move you, a little at a time, from understanding C (the book assumes you already program in C) to the point where the C++ mindset becomes your native tongue. My goals in this book are to:

  • Present the material a simple step at a time, so the reader can easily digest each concept before moving on.

  • Use examples that are as simple and short as possible.

  • 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.

  • 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.

  • 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.

  • Provide the reader with a solid foundation so they can understand the issues well enough to move on to more difficult coursework and books.

What they say:

"This book is a tremendous achievement. You owe it to yourself to have a copy on your shelf. The chapter on iostreams is the most comprehensive and understandable treatment of that subject I've seen to date."

Al Stevens
Contributing Editor, Doctor Dobbs Journal

"Eckel's book is the only one to so clearly explain how to rethink program construction for object orientation. That the book is also an excellent tutorial on the ins and outs of C++ is an added bonus."

Andrew Binstock
Editor, Unix Review

"Bruce continues to amaze me with his insight into C++, and Thinking in C++ is his best collection of ideas yet. If you want clear answers to difficult questions about C++, buy this outstanding book."

Gary Entsminger
Author, The Tao of Objects

"Thinking in C++ patiently and methodically explores the issues of when and how to use inlines, references, operator overloading, inheritance and dynamic objects, as well as advanced topics such as the proper use of templates, exceptions and multiple inheritance. The entire effort is woven in a fabric that includes Eckel's own philosophy of object and program design. A must for every C++ developer's bookshelf, Thinking in C++ is the one C++ book you must have if you're doing serious development with C++."

Richard Hale Shaw
Contributing Editor, PC Magazine

C++ Inside & Out

(Osborne/McGraw-Hill 1993, ISBN: 0-07-881809-5. Order directly from its page on

Click here for book source code

Although C++ is easily taught to C programmers, the audience of this book is intended to be simply those who have programmed in another language. The closer your language is to C, the easier time you'll have; for example, a Pascal programmer will have an easy transition. However, it should also be possible for a Fortran (or even BASIC, my own first language) programmer to learn C++ from this book. The ANSI C language (supported by virtually all commercial compilers) is taught along with C++ in the early parts of the book and as the book progresses. Elements which are part of ANSI C are clearly specified, and any incompatibilities are shown.

From the success of the first edition of this book (Using C++, 1989) and the comments I've gotten from readers, I think I took the right path. That is, C++ cannot effectively be treated as just an extension to C. You cannot take a C book and add a couple of chapters on classes and inheritance and have a C++ book. C++ is a different language.

This may seem confusing at first, because C++ is indeed a superset of C, and a C programmer can begin using a C compiler with virtually no effort. Much of the value of C++ to C programmers, at least initially, is that C++ is pickier and will find numerous errors that a C compiler allows (for this reason, a C++ compiler is even a better way to learn C!). However, C++ is an entirely different approach to programming. The beauty of it is that, as a procedural programmer, you'll have a much easier time adapting to the new features since the old features are familiar.

Note the C++ in this book is reasonably accurate, but it's circa 1992. You may want to consider following this book with the more recent Thinking in C++.

Description of Chapters in "C++ Inside & Out"

Black Belt C++, The Master's Collection

Edited by Bruce Eckel. M&T Books 1994, ISBN: 1-55851-334-5. (This book is out of print, but sometimes copies can be located through its page on (No source code for this book)

When I took over the C track for the Software Development Conference in 1991, it was clear (in my imagination only) that everyone wanted it to become the C++ track - why else would they want me to do it? Since SD had started as a C conference, there was some surprise when the change came about but it soon turned to pleasant surprise, since the track became the largest draw in the conference (sometimes eclipsed by its companion track on Windows programming, also heavily C++ oriented). In this book you'll see what makes the track so popular.

I believe that people (or rather, their companies) don't pay a lot of money to come to a conference to see things they can find in books. The pre-conference tutorials provide a grounding in the language, but for the conference proper I strive to have topics that fill the gaps in your knowledge using novel and well-crafted approaches. In addition, I feel that most of the talks should push you beyond the boundaries of what you normally think about in programming. I've personally found that if I exceed my boundaries, I learn techniques that give even the most mundane of tasks an elegant solution. When you come to a conference like SD, you shouldn't return just "trained," but instead lifted to a whole new programming plane. While this book won't produce the same experience you get from attending the conference (especially the hallway conversations) it draws you into deeper thinking about the language just as the conference does.

The authors in this book are all experts in their subjects. They share my lack of tolerance for inaccuracy. But these authors are more than just technical experts: they're good presenters. I believe a good conference - and a good book - should be entertaining. One thing you'll notice is that the voice of each author is distinct: I've made a point to leave the personality in their writing. So you won't be bored in these pages.

Although I've met many of the people in this book through conferences, some I've come to know under more interesting circumstances. I worked with Tom Keffer for a year as a researcher while he was at the University of Washington School of Oceanography where both of us did our original C++ work. His company Rogue Wave (referring to an oceanographic phenomenon) continues to lure scientists and engineers away from FORTRAN by providing useful C++ class libraries. Scott Meyers and I have climbed Half Dome (not the face, the backside) in Yosemite together. I first met Dan Saks at the organizational meeting for the ANSI/ISO C++ committee in Washington DC where he volunteered to be secretary. At the time I thought it was insane, and I'm regularly amazed at his endurance in the position. Tim Gooch first appeared in one of my presentations, embarrassing me by asking very intelligent questions (that boomed from the back of the room, carried on his actor-trained voice) that I couldn't answer. Steven Sheetz appeared at an entrepreneur's conference for Midnight Engineering magazine, looking for guinea pigs for his doctoral dissertation. And as you'll discover through their writing, each of the authors in this book is unique.

Description of Chapters in "Black Belt C++"

Using C++

(Osborne/McGraw-Hill 1989. ISBN: 0-07-881522-3). One of the first books out on C++. This is replaced by its second edition, the renamed C++ Inside & Out (described above). If you want a copy of this book you may be able to get it through its page on

Computer Interfacing with Pascal & C

(Eisys 1988. ISBN 0-89716-211-0). $30, includes shipping (via Priority Mail) and handling within the US.

Click Here to order Computer Interfacing with Pascal & C within the US.

Contact to find out the total cost to ship outside the US.

My very first book, self-published from my Hardware+Software columns in the now-defunct Micro Cornucopia Magazine. Some of the material is dated (early chapters use CP/M, switching about midway through the book to the IBM PC bus), but you can still get some pretty good ideas. The book was given a favorable review in Dr. Dobb's Journal by Jeff Duntemann. Quotes from Micro Cornucopia editors:

"Quite simply the best microcomputer electronics book I've read. If you're at all interested in basic electronics applied to microcomputers then buy this book!" Larry Fogg, Technical Editor, Micro Cornucopia Magazine. "Bruce writes about his discoveries with an enthusiasm and clarity that have made him probably the best-read Micro C writer." From the foreword by David Thompson, Editor & Publisher, Micro Cornucopia Magazine.

Chapters are:

  1. Connecting a Stepper Motor to your Computer

  2. Concise Computer Electronics

  3. A Simple Digital Oscilloscope

  4. A Scanning Temperature Measurement System

  5. Digital-to-Analog Conversion

  6. Controlling AC Power

  7. Tools for Quick System Construction

  8. Controlling Synchronous Serial Chips

  9. The Mysteries of RS-232

  10. A/D Conversion through the Printer Port

  11. Build a PC Adapter Card

Videos. Bruce is also the author of:

  • Borland's World of C++. An alternately serious and whimsical introduction to C++, hosted by David Intersimone. Bruce was responsible for the technical part of this tape (not the silly bits) but you won't see him on screen. Order directly from Borland.

  • Borland's Beyond the World of C++. Here you'll get to spend a couple of hours with Bruce in a live presentation of more intermediate C++ material. A lot of editing was performed to tighten the presentation, so it's reasonably dense. Order directly from Borland.

  • C++ Inside & Out: Note that the video promised in the book has never been made, so it's not available.

Search     Home     WebLog     Consulting     Seminars     Calendar     Books     CD-ROMS     Newsletter     About     Contact     Site Design     Server Maintenance     Powered by Zope
©2007 MindView, Inc.