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)|
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)|
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.