Thursday, December 16, 2010

Head First Java - What a way to learn Java and OO programming

I occasionally teach Java programming at a local university and I am always on the lookout for books that can easily explain the necessary concepts to students.  In addition, (like most people in the technical field) I have purchased literally hundreds of books over the years to explore new topic and to keep up on trends.

Most programming books are very formulaic -- Basic overview; Hello World; each chapter takes a concept and shows some coding samples etc... these books are text heavy and proceed with some esoteric examples that do not transfer well to student/reader experience.

Wow what a difference when I stumbled upon Head First Java; A Brain Friendly Guide by Kathy Sierra and Bert Bates.   As I was browsing this book on Amazon I thought what kind of programming book is this -- cute pictures from the 1950's; strange graphics; not much text per page -- this can't be any good; does not appear serious enough.  Was I wrong!  The creators of the series and the authors have created an incredible way to make learning a new and technical topic easy, fun, and engaging; all without loosing touch with the material.  A huge amount of serious technical material is covered.  I actually found myself reading the book cover to cover and learning a few new things along the way.


What I Really Liked

  1. Examples that are easy to understand - when explaining inheritance they use common household items and animals for their examples.  This makes it easy to understand and explain to students.  Many other books use the concept of shapes to explain inheritance -- from my experience this does not translate well to student's experience.
  2. Making it Visual - actually help the reader remember concepts and puts the new material into a familiar "schema" so recall is easier.
  3. Conversational - it's written in a conversational style free of jargon to help comprehension.  Then the computer speak is added - now the reader understands the concept and is buzz word compliant.
This book is a bit dated; the 2nd edition was published in 2005; up to Java 5.0.  This does not affect the quality of the work or detract from its value as a teaching aid.

I could go on because I love this book; but I will close by saying this book Rocks -- buy it for anyone interested in leaning Java and OO concepts; you won't regret it.

Good reading...

-npv

4 comments:

Jazzie Casas said...

Java and to some degree .Net are the main choices because they have been consistently pegged as the “safe” choice to go with for mid-level project managers in the corporate world. No one was ever fired for choosing Java or Microsoft.

However, there are many large distributed applications these days that run primarily with technologies like Python, PHP, et al. Even companies like Google and Yahoo are heavily invested in these technologies. Java may be the main choice for enterprise development now, but it’s days are numbered as the only stalwart option to go with.

Let’s face it, many of these so called “enterprise applications” could easily have been written much faster and with less overhead using technologies like Python, PHP, et al.








ruby training

Nick said...

as Jazzie pointed out there are other technologies... Python is hardly new - a late 80's creation so it has had some time to take over the world... and I am a fan of it. Just as I am a big fan of Small Talk and Eiffel

I try not to get into too may "religious" debates about technology. Technology choice of an organization is influenced by many factors not just the technology itself... so while you can say an application could be written faster or even better using application X - what if there are integration issues; what if the skill set to support it not part of your core strength; what if all your other products are written in something else...

life is full of trade offs.

Anonymous said...

+1 to nick's comment on technology choices. new tech stuff is great but companies cant just chase the next thing -- there is a little something called investment and you placed your bet and you have to stay with it at least for a while. I have seen companies with 5 to 7 major investments in platforms and that spreads resouces too thin and support is a nightmare.

also funny comment about python i had to look that up - damn it has been around a long time LOL

Anonymous said...

what is a technologists job if not to push the envelop a bit -- driving the group to a better place. if you allow the old way of doing things to remain -- you nver grow and change.