We have debated the value of getting certified many times. Critics say the exams don't cover things that you really use in the real world; they contain obscure code snippets and trivia that don't really relate to the issues that professional Java programmers most need to understand.
The other day we had a debate about what the results of "i = i++" would be. We all agree that it would be silly to use the code "i = i++", yet we debated the results anyway. We waste a lot of time on minutia like that.
So when I saw "Java Puzzlers" in the bookstore, I couldn't help but to wonder if this is more of the same. Does the book make the reader a better programmer, or it a fun book about trivia?
I think books like this one make your concepts much more clearer and prevents lots of mistakes you generally make and then waste lots of time. I really learned a lot while preparing for SCJP and SCWCD and I am really happy that I took these certifications.
Joined: Dec 17, 2002
I am too. I also found getting certified a valuable experience. I don't agree with the critics, for the most part. But I must admit that a couple of the question on the exams did fall into the "idle trivia" category.
I am just wondering if the puzzles in this particular book are valuable when applied to real-life situations.
Originally posted by Rick Portugal: We have debated the value of getting certified many times. Critics say the exams don't cover things that you really use in the real world; they contain obscure code snippets and trivia that don't really relate to the issues that professional Java programmers most need to understand.
The problem I have with certification exams is that they demonstrate Java pitfalls through deliberately poorly coded programs. If I knew someone purposely programmed that way, I wouldn't hire them. Java Puzzlers, on the other hand, shows you how it's easy to hit these pitfalls even with code that looks like it should work. The code in Java Puzzlers is similar to code that I come across all the time. Bloch tells you "don't do that," and patiently explains how to improve your approach.
I really enjoyed Java Puzzlers, and along with Effective Java (and of course Agile Java), it's one of the few Java books I can universally recommend. It will definitely make you a better professional programmer if you take its lessons to heart.
The book is a very enjoyable read, and there are some very interesting "wow" moments. The optical illusions (and the brief discussion of them in the back of the book) add to the attractiveness of this book.
Most of the coding errors demonstrated in the book should never see the light of production day; unfortunately, many of them do. My only suggestion for the book would've been to include a bit of emphasis on how comprehensive unit testing would help eliminate these defects as soon as they're introduced.
-Jeff- [ August 09, 2005: Message edited by: Jeff Langr ]
That's the real prize, isn't it, to deepen your understanding of the language?
Almost all the books I prize take so-called corner cases and puzzlers and expand on their meanning for great profit. I found Programming Pearls, More Programming Pearls[/i[, [i]Deep C Programming Secrets, and a few others instructive and entertaining. And, as any HF author will be quick to remind, if you can engage the brain's intellect and sense of delight at the same time, you'll open the most powerful paths to learning the brain has to offer.
I think it's a shame to call this approach a "waste of time." It brings to mind for me some grave, utilitarian exercise in receiving and judging information only if one knows first it will be worth something. Sounds risk-free, and joyless.
You can find an obituary out there that says "so-n-so loved learning and prized it above all else." I hope we never see one that says "so-n-so found an extraordinary amount of useful information and tirelessly applied it to advantage." Ick.
Make visible what, without you, might perhaps never have been seen. - Robert Bresson