Book 1/50 – Hardcore Java
I’ve decided to read 50 books this year, to make me look really smart, or something. I dunno, people seem to adopt this as a challenge to themselves, when reading one book a week can’t be that difficult. However, I’m not going to limit myself to novels. Perhaps next year. Perhaps if I get through 50 non-fiction books by the end of June, I’ll switch.
My first book this year was ‘Hardcore Java’ from O’Reilly – it’s a great intermediate Java book, for when you’re done learning the basics, you know most of the details of OO, but want to improve upon your initial knowledge. One way of doing this is to read lots of good code – but good code is in short supply, worldwide, sadly. So, O’Reilly to the rescue.
A certain amount of the book comes down to coding standards – there’s a whole chapter on the use of the ‘final’ keyword, for instance. It’s this kind of rigour which is difficult to get from anywhere else – best practices that would take years of pain and experience to pick up any other way. Not the boring coding standards like where to put the braces, and so on – but good habits that let you catch errors early. Converting as many potential logic errors into compiler errors can only be a good thing. There was also a particularly good chapter on the use of exceptions, and one on nested classes (the tricky bits of object orientation).
My only complaint is that the book was written with Java 1.4 in mind – while there is a final chapter on 1.5, the chapter on constants surely needs updating. Even so, it was a good read. At the same time, reviews elsewhere on the web have been less than great – I’d argue that the book was aimed at a very specific ability level (less than ‘hardcore’, perhaps… although, perhaps code that is more difficult to understand than this level will be bad code, difficult to maintain). Still, I don’t agree with the silly anonymous reviewers – it was pitched at the right level for me, and that’s what matters.