Personally, I've delivered a fair share of Java programming courses in my time, and for those who are in the early stages of picking up the language, the question always arises as to which introductory programming book is the best. There are a plethora of impressive offerings in this space, from tomes like the Deitel book, to the best selling Head First Java, but for me, hands down, the best book to put into the hands of a developer who is just starting to learn the language is far and away Beginning Programming with Java for Dummies by Barry Burd.
One of the most difficult things when I write is to decide exactly what I have to remind readers of, or tell readers anew, and what I don't, so as not to bore them or insult them.
Barry Burd, PhD
I actually wrote a Java certification guide of my own a few years back, and as part of my research, I went out and bought a number of introductory books on the subject. After a quick read, there were always things about each title that I didn't like, and there was always a list of things I was hubristically sure I could do better. Of course, all of that hubris ended after going through this Dummies book. Reading Beginning Programming with Java for Dummies was actually a humbling experience. Rather than reading it and thinking about all of the things I'd like to change, I questioned whether I'd ever be capable of penning something equally good.
The hallmarks of a well laid out technical book
The flow of the book is perfect. It is a real challenge to present a programming language like Java, and all of its pertinent topics, in a simple and sensible way. As software developers know, each new concept leads to three or four others, and if a writer can't keep those multitude of channels under control, the reader suffers. Any time an author says something like 'don't worry, because we'll cover that later', something you read quite often in technical books, the author had essentially admitted failure, conceding that they simply couldn't lay out the concepts in a simple and linear fashion. That type of acquiescing simply doesn't happen here.
The flow of topics follows a natural and sensible order, and for each topic, the author provides precisely the amount of information a new learner would need. In an introductory book, providing too much information will overwhelm and discourage the reader. Not going in depth enough leaves the learner confused, feeling as though they are being cheated. "I guess one of the most difficult things is to decide exactly what I have to remind readers of, or tell readers anew, and what I don't, so as not to bore them or insult them." says Burd, who manages to strike exactly the right balance, explaining difficult concepts well, but not going so deep that the reader is left shaking their head, wondering what on earth it was that they just read.
From Java to Android with Barry Burd
The latest, fourth edition of Beginning Programming with Java for Dummies was just released in June, so if you know of anyone interested in learning to program, this is one of the most up to date books you're going to find, with Java 8 being the target platform. Of course, this is a beginners book, a book I would recommend before guiding someone towards something like Head First Java. Of course, for those interested in going deeper into more complicated Java topics, there is also Barry's updated Java for Dummies, which deals with more advanced topics such as functional programming with Lambda expressions. And of course, if Android is what you're interested in, there's always Barry's Android Application Development for Dummies, but you'll probably want to get the concepts from his Beginning Programming with Java book down pat first before jumping into that one.
As developers, we always have friends and acquaintances asking whether they should go into software development, and what steps the should take if they want to learn how to program. The next time you get that question, remember that picking up and reading through Barry Burd's Beginning Programming with Java for Dummies is a big part of the right answer to that question.
What is your favorite resource to recommend to new developers? Let us know.
Books penned by Barry Burd: