Java. [Source](http://www.sxc.hu/photo/104272)

Java Beginner's Guide 3rd Edition by Herbert Schildt can be found here.

As I mentioned in another post, I've been brushing up on my Java knowledge. I was looking for books and I stumbled upon this one at the local library. I thought I'd give my 2 cents on some of the things about the book and other things.

Books/E-books vs Online Articles
I don't like reading books. I'm not a book lover or book worm. Also, I don't read other types of books much (Fiction, etc). I like to read and learn but books aren't just my thing. Growing up with the web, I was relying on  the vast information freely available online for my reading fix. Now, everything seems to be online and learning from a book would seem something primitive in the digital information age.

When I was researching some information on this article, I was surprised that a lot of programmers/developers don't actually read that much technical books. I was thinking there was still a percentage that relied on the traditional approach (if you could call it that). It seems technical books have been declining the past few years. (Wonderful article from coding horror here and here).

There are tons of information in the web on learning a new programming language. There would be a question then on why someone would prefer to learn through a book. I've thought about a few reasons on why it's better to learn in a book rather than on the web. First, an article or blog post can be written by anyone but not everyone can teach a particular topic very well. In addition, blogs in their nature are short and usually straight to the point compared to books that discuss a topic more in-depth. (There are more but that is just what I can come up with right now)

Dreaded Textbooks. [Source.](http://www.sxc.hu/photo/1275249)
**Not Every Book is Created Equal** Just because it's a book doesn't mean it's a good learning tool. Some books do not discuss a topic in-depth. Some books are boring to read while some are crafted with a little humor here and there. Authors would also have certain styles in how they convey their idea towards the reader. It's similar to how there are good and bad professors. Even though they know a lot, the better question is can they convey their ideas well. Before choosing a technical book, it would be beneficial to ask yourself a few possible questions like: How does the author write? Can I easily understand his explanations? Is it straight to the point? Does it have clear explanations on the code examples? Can the code be understood by a monkey? Or similar questions. As the Coding Horror site also mentioned, in choosing a book, choose a timeless one. Choose a book that covers fundamental concepts rather than those that exist only to give you a bit of information and skill. The last paragraph maybe a counter concept for me to choosing "Java Beginner's Guide". It is and is not. Java as a language will eventually get replaced as most programming languages eventually do. What you can learn from this book is the concepts that are found in most object oriented language. **Explaining the Why of Java Features** This book does a very good job in explaining not just the features of Java but on why it exists. Most topics has some information on why this feature was brought-in and what particular problem did it need to solve. Of course, it also has code examples that do a good job of giving you and idea on the structure of implementing a concept. ** ** **Is This Book For You** This book is not for everyone. Do not be fooled by the title. It is for someone beginning Java but not beginning programming. This will not teach you the general programming concepts. If you approach this book with some previous knowledge of programming in general, you can benefit a lot. I think this book is also a must read for those students after getting through (or maybe while learning) the Java subject. It's there to solidify your understanding.
Picture of code (PHP). [Source.](http://www.sxc.hu/photo/995000)

Comparison to Other Books
When I was learning Java in school, I had a book (hope memory serves me right) "Java How to Program". Comparing these two books, in teaching you core Java concepts "Java Beginner's Guide" is my preference. I don't like the teaching method on the previous book. The content "Java How to Program" (code-wise) is better found online. It's a decent dive into building Java applications but then the explanations of the core concepts of Java and OOP is lacking.

Where to Next
Initially, I was planing to read "Java. The Complete Reference" from the same author. This book is suggested by a lot of professionals and even James Gosling himself. I was curious to read through it. I just stumbled upon "Java Beginners Guide" when I was looking for "The Complete Reference" but I enjoyed reading the former and went through reading all of the topics.

Java, Complete Reference covers more advanced topics on the Java language. It's the next step if you want to go in-depth with Java. For me, I might try to fiddle around with a review on coding and algorithms before I dive in to this book (but it's the next one I'll read).

Android Mobile development is also a topic I also wanted to just experiment with. The idea of using knowledge I already have and the idea of being able to release a usable application to an audience is very intriguing. By audience, I do not expect to make a million-dollar app or make the next Angry Birds. I just find it pretty satisfying already if I worked on something and someone out there finds it useful.