Thinking In Java 3rd Edition Available Online
slothdog writes "Bruce Eckel has made the new 3rd edition of Thinking in Java (and other books) available online. This is a more introductory-level book, although there is a work in progress on Thinking in Patterns and one on the way entitled Thinking in Enterprise Java. All in all, an excellent book for someone not yet familiar with Java. Kudos to Bruce for making it available for download!"
This is a great book for those who already have a background in C or C++ and anyone who already knows Java and wants to understand the language and it's history a bit better. It's easy to read and explains more about how to wrap your mind around Java than how to program in it.
For this reason I DO NOT recommend this book to beginning programmers, programmers transitioning from COBOL and 4th gen languages or anyone who wants to start writing Java tomorrow. This is a book about understanding Java... it's not good for those who want to learn syntax or jump in to their first program.
Our company was making a transition from an old character based system to a Swing/J2EE system. I made the mistake of suggesting this book for use in the classroom. Our programmers were simply too impatient for it. All of our advanced programmers loved it and recommend it, but those who just wanted to join the project quickly (most of them, in our case) preferred Sun's Java Tutorial series.
Correct me if I'm wrong, but SWT isn't part of Java; It's an add on from IBM. Bruce Eckel's book is to teach you the Java language as it comes from Sun.
Actually, in the third edition he covers Ant and JUnit in addition to the standard libraries. In the preface, Eckel describes the book as an explanation of the fundamentals of Java. I think it's fair to say that SWT was left out because it is far from being a fundamental part of the language.
The addition of Ant to the book, IMHO is absolutely necessary (event if it isn't part of the standard). Understanding Ant should be every bit as important as some of the other topics in this book (I won't choose any examples, so not to start a flame war).I bought this when I decided to learn Java, on the advice of numerous online recommendations, and dutifully slogged through it for a few months. Finally I gave up, and later bought The Java Programming Language and learned everything I needed to know in a couple of weeks. For those who understand basic OO principles, and have at least one language under their belt already, TiJ is extremely slow going. The book is cluttered up with lengthy, tedious, contrived examples that sometimes take up several pages of often highly repetative code. Rather than use code snippets to illustrate new concepts, this book tends to repeat entire programs over and over again with just a few lines changed. Combine this with an enourmous font that causes the code to actually be less readable because so many lines have to be truncated and you have a book that's far thicker than it needs to be.
Bruce himself is a somewhat dubious source for programming know-how, having something of a reputation for jumping onto each passing development fad with a passion and then discarding it with a sniff when the next shiny object comes along. He's also notorious in the Ruby community for publishing a scathing, and completely innaccurate, critique of the Ruby language despite admitting that he hadn't bothered to learn much about it. This is highly unproffessional behavior IMHO, and has colored my perception of anything he's said since.
I do recommend TiJ for a casual programmer who has decided that Java is going to be their introduction to OO programming. It does a good job of explaining OO principles and demonstrating how they can be implemented in Java.
--
CPAN rules. - Guido van Rossum
But seriously, this is a great book! Not just about java, but OO techniques in general.
After a few weeks of this I made a CD with the JavaDocs and Thinking in Java v2 on it. When they came with a question I would give them the CD and told them to copy it onto their computer. I showed them what the JavaDocs were useful for and showed them how Thinking in Java not only had great examples but explained the hows and whys of the language. This helped them understand how what they were doing made sense in a deeper way than if they had just read the example code.
The book was a big hit. It saved me a ton of time having to explain things and helped those guys become better programmers.
That said, v2 was much better than the beta version that I cut my teeth on way back when. Since it wasn't available in printed form at the time the professor made everbody buy a version she had printed out. Too bad she had repaginated it such that the page numbers in the index no longer mapped to the pages in the book.
Lasers Controlled Games!