This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
Thanks for joining us this week Peter. Althought I have been programming in Java for about 4 years now I have never owned a book specific to Java basics. I have a lot of API specific books (Swing, JDBC, JSP, Servlets, etc) but nothing that is a general Java Book. I don't do Java for a living so I consider myself an intermediate java developer.
Would you recommend your book to someone like me? How many chapters are going to possibly bore me (no offense) with things like "This is what a class is"? Should I even consider a book like yours considering my level of experience?
Also, how do you think your book stacks up against Head First Java? I realize the strategies are different between the 2 books, but the goal is the same; learning Java.
Great series of questions! And it gives me the opportunity to get on my soapbox, and throw a few opinions up in the air! (Always appreciated!)
If you are teaching yourself by buying API-specific books, like a book on Swing, a book on JDBC, then I would certainly agree that you are at least an intermediate level Java programmer. Many of those books are very good indeed, and some of them were written by people who designed the APIs (I am thinking of the Swing and JDBC books from Sun here - those volumes are just crammed with relevant knowledge).
My own text, Just Java was originally written all the way back in 1995, before the first release JDK 1.0 release of Java. At that time, I could see that Java was a really important development in the world of software, and I wanted to get information about it in front of busy software professionals in a form they could easily and quickly assimilate.
Java has had 5 more major releases since 1995, and for each of them, I have completely revised and updated Just Java. I track changes in both the language and the libraries, and pull them together in one place for readers. My aim has always been to present a single volume that is not overwhelming, and that covers the language and the most popular libraries. There is a reason this text has been in print nearly 10 years when so many other Java books have come and gone. I take a lot of care to keep the book up-to-date with the fast-evolving Java world.
Over the years, the concept of "the most popular libraries" has changed. Early on, I dropped coverage of applets to make room for JDBC (databases) and that was a very good call. Later I added Collection classes, and in the latest edition I expanded that to a full chapter on its own. The current edition has a new chapter on Web Services, which I think is going to be a very important technology in the years ahead. It is being built into many online systems of the past 2 years, but it still has a low profile because of the simplicity of the basic technique.
Of course, enumerated types, and generic types get their own chapter. These chapters were read by a large number of programmers before I committed them to print. I was able to improve them significantly with this feedback, and I think you'll find they set the standard for describing enums and generics. You probably haven't seen much of these new features yet, nor other ones I explain, like variable-arity methods, and covariant return types.
In addition, I try to share experiences that practising programmers and computer science students can relate to - amazing bugs, pitfalls, bad design choices (Java certainly has its share of those), war stories and the like. Each chapter ends with a kind of war story that I call "Light Relief". Some readers send me email and ask for a whole book of Light Relief! As an example, one Light Relief concerns the web competition I ran to sponsor the creation of a programmable Furby (animated doll of a few years ago) - how the competition was won with an Intel 8051 mod, and how I subsequently did the FCC part A and B testing on the result.
What I am saying here is that, unlike many other texts, Just Java takes a wide-ranging look at Java, and has a great deal of new and original material that you won't find anywhere else. And that changes in each edition. If you like that kind of style, then this will be a good book for you. Some people don't like that kind of style. and they might be happier with the language reference manual (if there was a fully up-to-date one), or even no book at all. There is the beginner material, because I don't want to leave anyone behind on classes, objects and inheritance. But there also a lot of more sophisticated material that you will find useful.
Since Amazon now offers a very easy way for people to sell books online, I never have any hesitation in buying a book. Just buy it, read it, and if it wasn't quite what I was looking for, I can re-sell it and re-coup almost all my investment, less postage! After all, we are IT professionals, and we live and die by the quality of our knowledge. Time spent learning new things that are relevant to our profession is a very good investment.
Let me close by saying that I just received the humbling news that Just Java, 6th Ed has been nominated (along with a dozen other texts) for the "Best Java Book of 2004". In 2002, the 5th edition of Just Java was similarly nominated, and in that case I was nudged out by Josh Bloch's excellent "Effective Java" book, which fully deserved the top slot. Josh was the chief Java API designer for several years at Sun, and has now moved on to work at Google. So maybe [B]Just Java, 6th Ed[B] will have a shot at Java Book of the Year this time round!
This suggestion wouldn't be complete without me pointing out that the 5th edition had a light relief story in the Networking chapter that explained how to write Java code to rig an online poll! However, I dropped that from the sixth edition in favor of a story about "The 500 mile limit on email". Maybe I should put the "poll rigging" Java code online at my web site at http://afu.com ...
Author of <a href="http://www.amazon.com/exec/obidos/ASIN/0131482114/ref=jranch-20" target="_blank" rel="nofollow">Just Java(TM) 2 (6th Edition)</a>
Originally posted by Gregg Bolinger: Also, how do you think your book stacks up against Head First Java? I realize the strategies are different between the 2 books, but the goal is the same; learning Java.
I'm also eager to read the Peter's opinion about Head First Java. Since the second edition of HF Java is coming soon. Will it be some kind of competition between the two books, which are commonly based on Tiger in general?
ASAIK, people are willing to read the technical books non-technically as HF approach... How do u think about that approach, comparing the approach that you have been using, since your Just Java first edition?
OK, folks are asking me my opinion on "Head First Java", and so let me share my thoughts.
Of course, I should emphasize that these are just my opinions. Everyone should look at these texts from their own point of view and make their own mind up. All too often people overlook that each book has its own style, its own voice, its own rhythm. What works for one person, another may find somewhat grating.
That's why Amazon has started putting extensive parts of books online, so you can read a chapter or a substantial part of a chapter, and answer the question "is this giving me information that I can readily absorb?" A text book is like a piece of music in some ways - different people will perceive the same piece of music differently; some will love it, some will hate it, some will not be moved either way. There is no piece of music that is perfect to all people, and there is no Java book that is perfect for all readers. You have to expose yourself to many different kinds and choose the ones that work for you personally.
The two authors, Kathy Sierra and Bert Bates, are both incredibly talented people individually, and together form a team with deep software insights and communication expertise. Kathy also has a committment to Java Ranch, and is no stranger to this forum (whereas, although I am a big time supporter and cheerleader for the Java Ranch and have been for some years, I am also a somewhat infrequent visitor -- this is due to my committment to a "Introducing Linux to Windows Users" book that I am currently preparing).
So having said all that, I think that "Head First Java" is a wildly original book in the programming language space. It could only have come from a small, confident publisher like O'Reilly - you would never see one of the big publishing houses take a risk like this. And it *was* a risk. In the week it came out, I was chatting with a couple of O'Reilly marketing managers about "Head First Java" and its prospects. They were very anxious to know what I thought of it, and what my friends thought of it.
Basically, people love originality. The publishing world loves fresh ideas (as long as someone else takes the risk). The risk with Head First Java was that people would discount the very carefully thought-out underlying syllabus. It is cleverly thought-out - most books are a solid wall of text, and it takes real effort to plough through a chapter. HFJ breaks that mold, and aims to engage people with images, jokes, icons, handwriting.
We now know that HFJ has succeeded brilliantly. Kathy was able to prepare a "HF EJB", and soon there will be a second edition of HFJava. I think this is great news for everyone: it makes Java more accessible to a wider group of people, and it expands the pool of acceptable ideas for book design. Plus it's a win for clever, creative, original authors.
Now, it's an incredible amount of work to create a book like HFJ. Because the format avoids a dense wall of text, you have to choose carefully what you will put in and what you will leave out. You can't cover as much ground as you can in a traditionally-styled 600 page book. So HFJ does not have the depth of coverage that most other Java books do. On the other hand, if a book is so dull that the poor reader falls asleep halfway through every chapter, then what good does it do to have "in-depth coverage"? You will never fall asleep reading HFJ!
So here's the bottom line (only my opinion, remember. Yours is equally valid for you)... Head First Java is a genuinely original text and a real accomplishment on the part of the authors for thinking of it and O'Reilly for having the guts to publish it. The success of the book and follow-ons has handily proven that that was the right decision! Head First Java makes a nearly-perfect first book on Java for some large number of people. In this way it is a win/win situation: it increases people's skill level by giving them something they will actually read. And it raises the number of Java-knowledgeable people in the world.
The "Head First Java" style isn't for everyone; some people in programming really like quiet, ordered, numbered lists of data. They love to know every last detail and minute point. But for people who want to dive in, swim around, and still come up for air, HFJ is a great first book. With that under your belt you can easily go on to fill out and extend your knowledge with other books.
And you should read other books. I have probably 40 feet of shelving devoted to Java books of the last ten years. If you want to become an expert in a topic, you have to put in that kind of effort. People do it because they are genuinely interested, so they don't think of it as effort. HFJ is a great place to start, and don't forget to go on and read other texts, too. I loved it!
The best way I can think of it, from the perspective of this forum is that Peter's book has something for beginners AND intermediate (and potentially beyond) readers, where ours is almost *exclusively* for beginners. I think that both Peter's book and ours are somewhat rare for tech books in that they have not sucked the life and joy out of the topic and that we care about both your ability to learn *and* the quality of the experience you have. In other words, for both Peter and us -- there is more to this than just getting the technical information right!
Again, not everyone likes this. And certainly the HF style is more extreme. Very few people would ever *hate* Peter's book, but there are certainly people who hate HF books--with a passion.
But Gregg, because of your level, you'd probably get VERY little from our book, yet you *would* benefit from Peter's book, in many different ways.
Both are clearly targeted at the non-dummy smart person, but Peter's book has cool things for multiple levels of readers, where ours (we believe) is extremely focused on taking absolute beginners and letting them completely nail the foundation topics.
I suppose on a venn diagram, our books technically overlap *somewhat* in the market, but in reality, they're not trying to do the exact same things. But in our ideal world, people with almost no experience in Java would buy BOTH books, while people with experience in Java would buy Peter's, not HF Java.
No, let me change that-- in my PERFECT world, everyone on the planet would buy multiple copies of both books
So to put this in movie terms, and again, this is my opinion only--if you have some Java experience and you can buy only one general Java book, buy Peter's.
If you can buy TWO, it won't hurt to add ours
If you have zero experience, try very very hard to get your hands on BOTH, but I'll lean slightly toward ours, but *only* if you have seen and are comfortable with the style.
As I said in my earlier post --Peter was a major inspiration for us. Anyone who has benefitted from a HF book can be thankful for him, because without Peter's work, I'm not sure the HF books would even be here. That "Clear only if already known" has been our main mantra.
Sheesh, I better stop before I get all mushy about him
Peter, thanks so much for your encouraging words!!
Ko Ko Naing
Joined: Jun 08, 2002
Originally posted by Gregg Bolinger: Thanks for the wonderful answers Peter. If you had to state it, would you consider your book to be beginner to intermediate, or beginner to advanced?
Hi Gregg, I just would like to guess the range of level on Peter's book as beginner to intermediate... As far as I've been through the book-related threads in this forum and Peter's replies, I think the book does not cover the topics that are in advance level...
And moreover as u said above, the book emphasize on Java in general, which I guess it's impossible to get into details on each API... So IMO, the book should be for beginner to intermediate...