<< 1 >>
Rating:  Summary: Bad examples, worse descriptions, unorganized concepts... Review: I had to use this book for my high school's senior Java programming class, an independent study style class where we had to teach ourselves Java through reading the book. Out of seven people in the class, I was the only one who was just barely able to figure out how to actually create and execute the programs that the book had us do - and I consider myself a rather good programmer. I was barely able to get myself through the book's terrible examples and descriptions through the use of another Java programming book that I had, online resources, and an uncle who works for Sun. Everyone else had no clue what to do, so I ended up teaching them how to program in Java.The examples that this book uses first consist of copying a program out of the book and compiling it and watching it run, and later they change to copying a program off of the included disk and compiling it and watching it run. Furthermore, concepts that you need to complete some of the problems aren't covered until a chapter or two later; we had to create a program that would get characters out of a string in Chapter 9, and the book doesn't cover the charAt() function that the program needed until Chapter 11! It was just by luck that I flipped ahead in the book and discovered it there. I don't think that I would have minded the deficiencies this book contains if we didn't have to pay so much for it. I told our teacher about this and he put me in charge of finding something else to use for next year's class when I'm gone. Do what I'm doing: find a different book to use.
Rating:  Summary: Content is out of order and out of control Review: The most remarkable job of "hand waving" I've ever read. Practically every code example uses features that haven't been discussed yet. "Pay no attention to that wizard behind the curtain!" Fundamental constructs like if, while, and for are in chapters 7 and 8, but advanced features like I/O and exceptions are in chapter 6. Primitive and user-defined data types are in chapter 4, but arrays are in chapter 11. Chapter 6 is titled "I/O and Exception Handling" but byte streams and character streams are in chapter 9. Relational and boolean operators are two chapters after all the other operators. Spent 2 pages in chapter 2 talking about the tag, then didn't even mention getParameter() in chapter 12 when writing applets is covered. Inheritance is glossed over in 4 pages. AWT visual components have 6 pages waved at them. The author is able to explain FlowLayout, GridLayout, and BorderLayout in less than a page each. Even more amazing, is his ability to explain GridBagLayout in the same amount of space. Discussed Events before Components, and the very first example of an event listener is an anonymous class (with no attempt at an explanation). Likes using variable names that start with a capital letter. Likes intermixing two different styles of curly brace instanceof, event adapter classes, inner classes, anonymous classes, overriding, overloading, Java's character data type, character literals, "functions" in Java (as a flow-of-control construct), repaint(), protected, abstract, command line arguments, parameter passing modes, the default/implicit toString(), polymorphism. In spite of the author's very limited success at covering legitimate introductory topics, he tackles many buffering, measuring fonts, threads, exceptions, GridBagLayout, deprecated event handling. Quotable quotes - "Everything in Java is an object" [p39] "Be careful when using the >= and <= operators. The order of the symbols is critical. Switching the symbols will result in an error." [p105] "In almost all cases, your last element [in an array] will have a subscript one less than the real total." [p184] "Interfaces are class-like groups of methods that work with your own program much like an 'assistant program'". [p211] "You should recognize that no book can approach covering the talents and abilities of this programming language." [p253
<< 1 >>
|