Now Available: Atomic Scala eBook & Print Book
Hands-On Java eSeminar
Thinking in Java 4e Electronic Book  and Solutions Guide
Thinking in C++ Volume 1 Solutions Guide
             Home Blog Books eSeminars Letter Consulting Seminars About FAQ Search

Frequently-Asked Questions


I can't find the source code for your book XXX, or some part of the code

The code is included with the HTML versions of downloads. The main download page for MindView is here.

All the packages that begin with "com.sun.java" are part of the JDK that you must first download and install from java.sun.com. The JDK is what you use to build and execute Java programs - this is described in the early chapters of "Thinking in Java," so keep reading.

The code packaged with the HTML downloads includes all the code from the respective book. Some people have difficulty finding things like the com.bruceeckel.util package. If this is your question, it's because you haven't read far enough in the book to understand how packages are structured as directories in Java. Once you unpack the code, look in the code's root directory: you'll see a subdirectory called com, and below that bruceeckel, and below that util, where the file will be found.


I bought Thinking in Java/Thinking in C++ and the CD is cracked. Can you replace it?

The book is published by Prentice Hall, who will replace the CDs. If you send an email to disc_exchange@prenhall.com they will tell you how to get a replacement.

However, the essence of the CD (the reason I put it into the book) is now available as a download (in an improved delivery format over the CD version here. Also, you can download the source code and the electronic version of the book (which were also on the CD) here.


I bought the 2nd edition of Thinking in Java/Thinking in C++. When I took out the CD-Rom, the name on the CD-ROM is "Thinking is C" and it contains nothing about Java/C++. Shouldn't the CD be about C++ or Java?

We really did mean to put Thinking in C in those books. Look at the artwork on the CD, and you'll see it matches the cover of the respective book. Also see the back cover of the book, which specifically describes the Thinking in C CD. On page 19 of Thinking in Java, 2nd Edition and page 15 of Thinking in C++, 2nd Edition, Volume 1 you'll find more thorough descriptions of the CD.

Both books were designed for people who understand the syntax of the C language. We found that many people came to the books and/or the seminars with the attitude that they didn't want to learn C, but rather C++ or Java, without knowing that the C language contains the fundamental syntax for both C++ and Java. Thus, they were unprepared for the book or seminar. The reason that the "Thinking in C" CD was created was to help these people gain just enough of the fundamentals of C so they could move on to the C++ or Java covered in the books or seminars.

Thinking in C (foundations for Java & C++) is a seminar-on- CD, with approximately 8 hours of lectures and slides along with exercises, to bring you up to speed on C if you don't already understand the syntax well enough to move into Thinking in Java or Thinking in C++. When you go through it I think you'll realize that it's unlike most any CD you've seen packaged in the back of a book.

The CD also includes the electronic versions of Thinking in Java, 2nd edition and Thinking in C++, 2nd edition, volume one, along with source code - look for TIJsource.zip and TIC2Vone-code.zip, respectively. Please note that most CDs packaged with books only contain the source code for the book. On this CD, you're getting the source code for both books as well as the electronic text for both books, and a seminar-on-CD, for effectively no added price for the book. If you still think this is a bad deal, I'm sorry. This is the only book that I know of that contains a seminar-on-CD.

Originally the books had no CD, and when I decided to include the CD with the books I wanted to make sure that the publisher didn't increase the price for the inclusion of the CD. Thus, you're effectively getting this seminar-on-CD for free when you purchase the book. In addition, you get a preview of what our other seminars-on-CD are like, in case you like the way that they work and want to purchase another one (currently, Hands-On Java is the only CD available, but we're working on others).

Originally, MindView sold Thinking in C as a separate product (a seminar-on-CD - there has never been a "Thinking in C" book), but in the 2nd edition, the only way to get the CD was to purchase a book (we were selling the CD for more than what it now costs to get the book and the CD together, so this is a distinctly better deal).

Note: In subsequent editions of the book, the CD was taken out of the book and put online.


I think it is unfair that you didn't include answers to the exercises in the book.

After spending money on a book, I would expect to have the answers (which to me make the book complete) included. Second, the fact that I can't buy the answers on your website is really frustrating. I don't imagine it would take very long for you or one of your cohorts to put the answers together.

I've gotten a couple of comments like this, and I felt it would be worth some research to address the issue.

First, you're right about the delay. It took me almost 1.5 years to get started on the solution guide (for the 2nd edition; the third also ended up being a very big job), and that's far too long. It would have been much better to have had it available when the book came out, but that would have delayed the book (background sounds of publishers gnashing teeth). Since then, I seem to have a plate full and have also been procrastinating because it looked like a big job.

I certainly apologize for the delay. I've only started to get good at coming up with exercises in the last couple of years. Inventing good exercises is hard enough, but now I'm learning about solutions. I'm sure I'll get better at this with experience.

To address the last sentence of the question, it has turned out to be a very big job, about 2.5 months of work. It's like writing another, albeit smaller, book. In print, it looks like it would end up being over 400 pages. So no, it's not a trivial project.

The number of pages explains why it isn't part of the book. As it stands, I was trying to cut the book down and the publisher was squealing about the size. Adding over 400 pages wouldn't have flown -- the book would have been enormous.

So one option would be to publish a separate solution guide, which would almost certainly cost you more than what it will cost via the web, and I suspect you wouldn't prefer that. I think the electronic version is the best approach; if there's a big enough demand for a separate printed book I'll consider that, but right now I don't think it would be justified.

There's often an illusion about how much an author gets for the book that you buy. For a US author, if the book is sold in the US, roughly half the cover price goes to the bookseller, the other half goes to the publisher. Of the amount that goes to the publisher, roughly 10% of that goes to the author -- if the book ever pays back its advance, which the great majority of books don't. If the book is published outside of the US, then the foreign rights have typically been sold for a flat fee (usually not a very impressive amount, since foreign publishing is very risky), and there's no connection with the amount you pay and any royalties paid to the author. I point out all of this so that you can be aware of the incentives (or lack thereof) involved in creating and maintaining a separate solution guide. As it turns out, it has taken a long time for the time and money I've put into the solution guide to begin to pay for itself.

I agree, everything should be available to everyone for free, like in that "Star Trek Next Generation" episode where they go back in time to San Francsico and see Guinan and Data's head and bring Mark Twain onto the ship and explain to him how they don't need money anymore and that everyone just tries to fulfill their potential. Someday that may happen, but in the meantime I feel pretty good about giving away more than the majority of computer book authors and publishers. I hear from people all over the world in countries where it's too expensive to buy books, about how they are able to learn from the free electronic books whereas otherwise they wouldn't be able to. I work very hard to produce quality work, and to go the extra mile to provide explanations, and supplements, yes, and exercises that you don't get other places, and it is wearying to hear "but you should give me this for free, too!" The fact that you don't have to buy the book at all seems to me to be a nice gift, so if you must have it in convenient print form because "you could never read it on screen," then remember that what you're primarily paying for is exactly that convenience, and the paper, printing, and distribution that is required for it.

Finally, I decided to look and see how many books (1) Even had exercises and (2) Included solutions. My Java shelf includes a lot of books, and I've gotten rid of the ones that aren't so good, so I think I have pretty good coverage of the better Java books. I found only several that even had exercises. Then I decided to look back at the C++ books. The most popular two C++ books were Bjarne Stroustrup's The C++ Programming Language and Stan Lippman's C++ Primer. Both had exercises (these are the only ones I found that did, besides my own C++ book), but neither had solutions. In fact, both had separate solution guide books written by separate authors (supporting my assertion that it's a big job), each costing 30$.

So according to my bookshelf, it doesn't appear to be so unusual that solutions are a separate item from the book. What does appear unusual is to have exercises at all. So if you still feel it's unfair to have a book without exercise solutions, then look at the alternative, which you'll find in most books: no exercises at all.


How do I find out more about makefiles?

Information about Gnu Make

I use Gnu make for many projects, both internal and those published on the web.


What do you mean by "mentoring?"

Consulting guidance on a project - that is, a team is working on an actual project and the mentor comes on site periodically and helps "steer the boat," which includes reviews and walkthroughs of design, code, and/or process. You could think of it as "someone to watch over you."


How about a book on Delphi? (or insert your favorite language here)

I have a long history with Delphi. I remember being in my friend Zack Urlocker's office at Borland when he showed it to me for the first time. I told him that I liked the name, and that he should keep it (it was originally a code name for the project; I suspect many others told him they liked the name as well, but I like to think I had some influence...). Every once in awhile I would take a dive into it, and create the odd program. The summer of 2000, after the Borland conference, I sponsored Marco Cantu to give an advanced Delphi seminar. The best equivalent for a "Thinking in Delphi" is Marco's collection of books.

Even though Pascal, and Turbo Pascal, were my first languages, I have had so much experience in C-ish languages that it's awfully difficult for me to go back to Pascal syntax. So if I did need to create a Windows-specific program and I couldn't use Python (my favorite language, which I use all the time) then I would probably use C++ Builder, since I am much more fluent in that syntax.

And books, well. They're getting harder to do, and taking longer, so I get very careful about what I think I can do. I suspect it has to do with what I want from a book, which is based on all the feedback I get about the books I put up on the Web. I'm sure my process could be improved but in general I'm getting slower rather than faster at producing books (and of course I'm slowed down by all the other things I do - but somehow Martin Fowler is able to pull it off...).

As far as a book on a specific language, I carefully consider the languages that are out there and which ones seem likely to become interesting enough to justify a book. Although there are many languages that have contributed to computing, many of them have had their shot at glory and didn't take. Typically, this means there was a big marketing push at some point, a lot of buzz for awhile (sometimes quite awhile, as in the case of SmallTalk), and then the language faded from the scene for one reason or another. Examples of this in the OO realm are Eiffel and Objective-C, both of which tried to be commercial languages and are, long after the fact, now available in free versions, but too late to really do anyone any good. (Python is different -- it's always been grassroots and has never had any big marketing push behind it, so it's more like Linux. Slow and steady increments). Yes, Squeak is the most interesting implementation of Smalltalk and there's a book or two out about it, but I still don't see Smalltalk making a big recovery. Ruby still looks to me like a language that was invented because you couldn't (rationally) use objects or references in Perl, so it has Perl-ish syntax, which I don't think is very helpful (someday I may learn it, but Python continues to be far more compelling to me). Long ago I used Lisp, but probably won't again. So no, I'm probably not going to write books on any of those languages except for Python. One of the important things about being a programmer is learning to make good use of your time, and choosing the right languages is an essential aspect of that.


I'm thinking of publishing/been approached by a publisher. Do you have any advice?

I could probably go on and on about this, but it turns out someone else already has. Scott Meyers has a pretty good description of the book writing process here. Also look at Philip Greenspun's comments.


Where are the "Why I Love Python" slides from the keynote you gave at the Python conference?

http://www.mindviewinc.com/downloads/pub/eckel/LovePython.zip


How did you get started in programming?

Here's a blog on that very subject.
Search Home Books eSeminars Letter Consulting Seminars About Contact Site Design
©2014 MindView LLC