As an introduction to Java, I think this book is really fantastic. The reason is that Horstmann does go in to a lot of effort to explain things and generally his exposition is pretty good. The book has a lot of examples and exercises to do and worked example code can be accessed from the companion website.
So who is this book aimed at? I would say definitely novice or infrequent programmers. If you are, say, an expert C/C++ programmer and wanted to learn Java, you would find the pace of the book far too slow and dealing with concepts that you are already familiar with. I mean, you wouldn't want to learn about pseudocode would you? However, if like me you've dabbled a bit over the years but wouldn't really class yourself as a programmer (or you're a total beginner), then this book will introduce you to Java and also to some simple ideas about programming.
The other good thing in my opinion is the liberal use of colour. If you've ever been presented with a 4 inch thick computer book with text in various shades of grey and are then expected to learn from it, you'll know what I mean. Horstmann uses colour liberally, the book is large format A4 size and there is a companion website with some instructional videos too. There also a lot of pictures, as one other reviewer has pointed out. The author explains in the introduction that he feels that a picture is worth a thousand words so lots of pictures and drawings is what you get. Occasionally, these can seem rather obvious. For example, do I really need a picture of two children standing at a fork in a road to illustrate that software can take different paths using if…then…else? I suppose what is obvious to one person is as clear as mud to another so perhaps they are necessary and I don't think they distract from the overall information in the book. Some people learn better visually anyway.
Horstmann takes the late objects approach so object orientation isn't introduced until Chapter 8 (and there are only 10 chapters in the book). So you get a good grounding in data types, loops, decision making, input/output, arrays etc long before you hit objects. This seems targeted at the neophyte programmer - teach general programming stuff first and then get to object orientation. Chapters 8 & 9 then take you into objects, inheritance and interfaces. Finally, Chapter 10 introduces you to GUIs.
There are actually a further 5 chapters to the book but these have to be downloaded as PDF files from the companion website. I assume this was done to keep costs down and to also conveniently split the book into two parts as these other chapters tackle more advanced subjects like advanced GUIs, object oriented design, recursion, sorting and searching and the Java Collections Framework. So if you want to dip into more advanced stuff you can or you can stick to the basics in the book itself.
There are no doubt other books out there that will cover Java more comprehensively but as a good introduction for beginners I think this book is hard to beat.
- Buy this item and get 90 days Free Amazon Music Unlimited. After purchase you will receive an email with further information. Offer valid for a limited time only. Terms and Conditions apply.” Learn more here.