Thinking in Java: The definitive introduction to object-oriented programming in the language of the world wide web

Thinking in Java: The definitive introduction to object-oriented programming in the language of the world wide web by Bruce Eckel

Thinking in Java: The definitive introduction to object-oriented programming in the language of the world wide web

Binding:
Paperback
Number of Pages:
1150
ISBN:
0131872486
Product Group:
book
Publisher:
Prentice Hall
Publication Date:
March 2, 2006
BooksForGeeks.com ID:
1251

Intended for Java programmers, this book explains the why of Java. From the fundamentals of Java syntax to its advanced features, it is designed to teach, one step at a time. Design patterns are shown with multiple examples throughout: Adapter, Bridge, Chain of Responsibility, Command, Decorator, Facade, Factory Method, Flyweight, and more.

Reviews for Thinking in Java: The definitive introduction to object-oriented programming in the language of the world wide web

  1. Thinking anew

    Rated 5 out of 5 stars, July 12th, 2009

    When you have been coding for many years, you forget the difficulty and the abstractions. Now when you have to teach programming to beginners that is a problem. Bruce has a fantastic way of dealing with this.
    Nothing less than ideal? Well, the sheer size of the book is a bit intimidating.
  2. A love-hate relationship

    Rated 3 out of 5 stars, July 12th, 2008

    When you learn to program you should try and answer your problems against the compiler. Write small little programs that test your thesis. That's how you remember and that's such a brilliant way of getting to know the language. Bruce Eckel has done the same thing. Unfortunately he has filled his 1500 page book with these small little programs. They are terse and take FOR-EVAR to read through and follow, often only to prove a corner case features of the language.

    Now don't get me wrong; reading TIJ cover to cover WILL make you a good junior programmer, but seriously evaluate how much time you have on your hands or this book could unfortunately end up only partly read on your bookshelf. It takes a year to read if you are starting from ground zero and you WILL find yourself swearing at Bruce Eckel's convoluted chapters time and time again.

    Overall the structure of TIJ is good in terms of what it covers etc (look forward to 200 pages on parallel programming for instance), but you tend to get lost in all the pages. You're on page 690 with another 600 to go, full of small programs that prove less essential aspects of the language. You get lost in all the pages. The program examples are hard to skim through to get an overview when you don't know the subject area and you are forced to read it all as a tutorial. This is where I think TIJ fails the beginner.

    Another personality trait of TIJ is it's offset in C/C++. While sort of relevant enough, it still shows it age. Im sure the C-to-Java move was prevalent around the time Bruce wrote the 1st edition, but in 2008 i doubt that's where most of the java-learning audience are coming from.

    I have spent a lot of time with this book and certainly have developed a love-hate relationship with it. While it probably is the most thorough introduction to the language, it probably also is a lot more than you'd wanna ask for. That's why I don't recommend TIJ as your first Java book. Albeit it's good parts it is still too much of a braindump. It takes too long to work through it, and I don't think the time spend pays off on a adequate scale. There is a limit to how many hours there is in the day, no matter how keen a beginning programmer you are. There are other books that take a more pedagogical approach to learning the Language. Kathy Sierra's books come to mind.

    My recommended path is to start with Head First Java, then either TIJ or otherwise Kathy Sierra's SCJP book, that one really gets into the nitty gritty in an time-efficient manner - In fact TIJ and SCJP have complemented each other nicely. I've read the SCJP chapter on a subject first, then gone back to TIJ and worked through it more carefully.

  3. Crystal clear

    Rated 5 out of 5 stars, September 12th, 2006

    If you are already an experienced software engineer, but have no formal knowledge of proper object-oriented languages (or know only C and/or C++), this is the best book I know of to learn JAVA. Eckel dispels the mysteries of all the OO jargon, and the examples he gives are presented at a manageable pace - just right to keep you interested enough to wonder 'what happens next'. I would recommend that readers also buy the slightly more 'reference-y' "JAVA in a Nutshell" by David Flanagan, which covers the syntax from a more traditional angle and has the J2SE API. If it is J2ME you are interested in, you will also need "J2ME in a Nutshell" by Kim Topley; Eckel's book is a thorough treatment of the philosophy and practice of JAVA but has no API sections. It's also very neatly laid out, with decent sized text for all us 'round-the-clock' programmers!
  4. Comprehensive and great coverage of Java 5.0 features

    Rated 4 out of 5 stars, April 12st, 2006

    I will preface my comments by saying that this is not a suitable book for those seeking to learn Java. Java novices should seek out Head First Java, and follow up with the excellent Agile Java. You are then ready to take on this book.

    Widely regarded as one of the best books on Java, the 4th edition of Thinking in Java, covering Java 5.0, was a long time coming. It was well worth the wait, however.

    Admittedly, it starts slowly. The first couple of hundred pages are somewhat uninspired (10 pages devoted to a program that exhaustively evaluates operations on all primitives, for example), but it picks up. And when it hits its stride it is comprehensive.

    Traditionally tricky areas of Java like the I/O classes and inner classes are well-covered, and the coverage of the new features in Java 5.0 are second to none, in particular annotations and generics, the latter going well beyond their use for type-safe containers, and actually making self-bounded types understandable. Nearly two hundred pages are devoted to the new threading and concurrency classes. If you really want to know what's going on with these core classes, this is the go-to book.

    The coverage of Swing is uninspiring, particularly as apart from a smattering of pseudo-UML class diagrams, there is only one illustration in the entire book (and it's 1400 pages long) - a picture of a Flash component, and it's a text box! However, there are plenty of other books out there that cover Swing in depth, so it's easy to overlook this. Personally, I didn't see the need for the introduction to Flash in a Java book, although the discussion of the SWT classes was useful.

    The other downside to the book is that the example code can be long. On the one hand, they have the advantage of being complete and runnable. On the other, it can be hard to spot the pertinent parts, and although the code is copiously commented, the Head First series of books have ably demonstrated the value of a more in-depth annotation, coupled more closely to the main text.

    Additionally, especially early on, the code examples are often dull and abstract, with method names like f(), which obfuscate rather than clarify. Later on, however, there are several witty and imaginative examples, so I can only assume that Bruce Eckel got a bit bored trying to make bitshifting entertaining. Finally, people new to Java and without a C background, could find the early references to how things are different in Java to C and C++ unnecessarily confusing, although one is assumed to have downloaded the flash-based 'Thinking in C' e-seminar from the author's website.

    These are minor disappointments, however, compared to the breadth and depth on offer here. You will need to be pretty expert at Java not to pick up any new tips on performance or idiomatic usage from the material here, and I will be using this as my first stop for reference purposes, particularly for the new Java 5.0 features.

    If you do any Java programming, this is well worth your money and pretty essential.

  5. A bit more special than other JAVA tutorials

    Rated 5 out of 5 stars, April 12th, 2003

    If you search for Java books on Amazon you will notice that there are hundreds of Java tutorials available, and most of them will adequately teach you how to program in Java. Thinking in JAVA stands head and shoulders above the rest because it explains the why as well as the how . Once you understand why Java is structured like it is then you will have the edge over most other coders.

    Note: Although this book can be used as a reference guide, there are other books that are better suited to a quick dip style of reading; e.g. JAVA in a nutshell.

Our Network

BooksForGeeks.com is a participant in the Amazon Europe S.à r.l. Associates Programme, an affiliate advertising programme designed to provide a means for sites to earn advertising fees by advertising and linking to amazon.co.uk