Head First Java
The Good
Of course, you can't learn Java without a good understanding of object-oriented languages. I made fairly heavy going with 'Learning Java' until I decided to dive in head first. Head First Java, that is -- a new book from O'Reilly that has a totally different attitude to teaching than I've seen before in computer books. It also looks like this might be the start of a series from O'Reilly, the website an introduction seem to assume that there will be more 'Head First' titles and I hope so. The style is humorous, full of graphics, cartoons, puzzles, quizzes and crosswords. It reminds me of the textbooks that used to try and teach me geometry and algebra in high school or my daughter's elementary books on Roman and Greek history I purchased for her at the British Museum. The style didn't work to teach me much algebra and geometry, but I wasn't anywhere near as motivated. This time, it worked. In a couple of weeks I worked through the book and finally have Java skills where I can branch off and start coding the projects I had in mind (though something more advanced will be required soon.)
In the introduction the authors examine learning and explain why they designed the book as they did. To quote from one section: "Some of the Head First learning principles. Make it visual. Put the words within or near the graphics. Use a conversational and personalized style. Get the learner to think more deeply. Get -- and keep -- the reader's attention. Touch their emotions." They argue that our brain is tuned to novelty, and that their style provides the novelty to keep your brain turned on. They also provide ten tips for good learning. That's one thing that seems to set this book apart from most other computer books, they say they think of their reader as a learner and indeed that's the way you are treated by the book. You can start to get a feel for their ideas by visiting headfirst.oreilly.com, a site devoted to the series. You can also grab a couple of example chapters from the books web page, which also has the usual marketing info, table of contents and errata.
The BadWhen compared to Learning Java the coverage is not as good. Head First really only covers the basics, up to and including creating a GUI with SWING and then touches a number of others; Learning Java goes on to explore, with a fair depth, network programming, web programming, servlets, applets, Java Beans, XML and other topics that are only touched on briefly in Head First. If the style of learning does not suit you then this will be an incredibly irritating and useless book, I'd give it a try first, though. If it isn't for you then the style of Learning Java might be better.
ConclusionWhen you get down to it, though, the only way to really decide on the worth of a tutorial is to decide how well it teaches. Head First Java excels at teaching. OK, I thought it was silly, I had a hard time making myself do the exercises, fill out the crosswords and solve the puzzles. Then I realized that I was thoroughly learning the topics as I went through the book. Learning Java was doing the same job, but the dry traditional method wasn't doing as well. Both books are well written, designed and constructed -- the style of Headfirst Java just made learning, well, easier.
It would seem to me that the 'Head First' approach is going to work wonderfully for the more 'beginner' topics, books for introducing you to a new style of programming, a new language or a radically different operating system or application. So if you're looking for a book to introduce you to Java then I can recommend Head First Java. Now if I could only find a book as good to introduce me to Common Lisp.
You can purchase Head First Java from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
..."Mr Bunny's First Cup o' Java"
668: Neighbour of the Beast
!= means "Really really is equivalent to", right?
It is almost like somebody saying - I wanted to study cartography because I already know something about cars.
...a language so strongly committed to OO as Java...
.. hahahaahaha... okay I hahahahhahhahahaah... shit, sorry.. ahahahahahahahaha... what were you saying?
Hahahahahhhahahahaha... wait
I'm going to send a memo to the top 300 US companies (any index, take your pick) and inform them that all this time they were wrong about implementing business solutions in Java. Why? Because you (mallocchio) took the "oppertunity" to say that it "sux". Instead they should be using something light, like C, or maybe even assembly if they're hardcore enough. I mean, all these hundreds of corporations can't possibly be right. Their projects obviously have all failed because they used Java.
I mean the only reason Java is popular in the enterprise world is because of Sun's wonderful marketing department. Those sneaky bastard marketers ... they got the best of us. I mean they totally did their jedi mind trick on me -- I'm gonna have to cut off my head now because it's now known after your esteemed declaration that "Java sux".
P.S. I know you're trolling.
This is the first time I've tried to look at a story with 63 comments with my threshold set to 5, no comments showed up!
Somehow I knew though, when the article starts with I decided to learn Java because Javascript wasn't good enough., that there would be trouble!
Begun, the Javascript != Java flamewars have.
You are checking your backups, aren't you?
Kid 1: Whos that guy in the bushes staring at us?
Kid 2: I think hes touching his weiner
Kid 1: Yeah grosss
Kid 2: He's waving a candy bar at you
Kid 1: Naw he's waving it at you
Kid 2: Lets go find mommy or a policeman
Shut the hell up! You don't see anyone else "working" do you? Stop being so damn selfish and get back to posting.
About them Java Coders,
codin' here and there.
Just like Gosling's Keynote said,
Java's Everywhere!
Them platform neutral Java Coders,
runnin' hotspot mode.
Keep them classes nice and neat,
'til it turns bytecode.
Multi-threaded Runnables,
and Serialization,
keeps those members all in line,
avoiding race condition.
How to be a Java Coder,
here's thee easy way:
Go to sun.com's web site
and get the SDK.
A programmer is a machine for converting coffee into code.
!"JavaScript".equals("Java")
668: Neighbour of the Beast
Right, and by that logic Python is related to Java 'cause you can instantiate Java objects in Jython. And C is nearly the same as lotsa languages, 'cause lotsa languages have C extensions which allow you to instantiate C objects in the language. Javascript and Java have only the notion of being roughly C-looking languages which came out at roughly the same time, and were both championed by Netscape.
Instead of being a prick, you could have just reminded me that what I'm remembering is actually a feature of LiveConnect.
Java has now been renamed to ECMA so we are back at square one.