Author: Joel Murach & Michael Urban
Publisher: Mike Murach & Associates
Reviewer: Alex Armstrong
A book that teaches you Java using a specific IDE is a good idea.
If you know other Murach books you will already know that they tend to be aimed at the education market. They teach what you might want to call the "proper" way of doing things and so it is with this book on Java.
Section 1 is all about getting started with installing NetBeans and writing your first program. From here it moves on to consider code, classes and methods, creating your own classes and methods and using object oriented approaches to programming. The final chapter in the section explains how to debug. Overall this is quite a good approach that does make use of NetBeans. So many books start off with telling you how to write Hello World with their particular choice of IDE and then tend to ignore it and just tell you about the language. In this case the way NetBeans can help you to work is also explained. In particular the chapter on debugging really does make use of the NetBeans debugger to step though and inspect variables.
The explanations are fairly dry and there are no gimmicks or tricks to soften the presentation. You might find it hard going if you are working on your own. There are also asides to topics like UML and how to organize an object oriented program. These could be left until later and only make the going tougher for the complete beginner.
Section 2 is more focused on the details of using Java and is probably more like the information that the beginner needs. It goes over primitive types, operators, flow of control, loops, if statement, strings and arrays. At the end of this section you have more or less covered the basics of writing Java code and all that is left is how to organize that code using object-oriented programming - which is what section 3 is all about.
Section 3 is a fairly traditional introduction to the ideas of using objects; inheritance, interfaces, polymorphism, virtual classes, inner classes and so on. It is mostly done via examples, but there is lots of discussion of why you are doing things.
Section 4: More essential skills as you need them, is a collection of topics that didn't really fit anywhere else. This is where we learn about some of the new things in Java, like lambdas, and some old things, like exceptions, file I/O, generics, collections and so on. This is probably the section that you dip into "when you need them" as its title suggests.
The final section, called "Real "World Skills", ventures beyond the core Java language topic. It take a number of tasks and shows you how they would be done in Java. For example database, MySQL and JDBC and the last two chapters are devoted to creating a GUI in Swing. It is a shame that Swing is left so late in the book because it really does provide a lot of good material for developing object-oriented ideas and asynchronous programming. There is also the small matter that NetBeans has a nice GUI editor that makes using Swing even easier. A book written from the ground up using NetBeans probably would make more of this.
This is a big book that covers a lot of ground. It is very complete and if you can stick with it then it will take you from a beginner to a reasonable Java programmer.
To keep up with our coverage of books for programmers, follow @bookwatchiprog on Twitter or subscribe to I Programmer's Books RSS feed for each day's new addition to Book Watch and for new reviews.