Programming Essentials Using Java

Author: William McAllister and S. Jane Fritz
Publisher: Mercury
Pages: 540
ISBN: 978-1683920373
Print: 1683920376
Kindle: B06WWFW2HB
Audience: Would-be Java programmers
Rating: 3
Reviewer: Alex Armstrong
It's not too late to learn Java!

This is a large format, heavy book, well the paper version is. It is lavish and full color but it is also more like a school book than anything else. This isn't necessarily a bad thing as it maybe what you are looking for. As its subtitle, "A Game Application Approach" indicates, it teaches Java using a game-based approach and there is a DVD bound into the back with the code ready for you to run.

Banner

Chapter 1 is a strange and almost out of place history of computing. If you know about this you can skip it, but make sure you read the part about the game environment.

Chapter 2 is where learning Java starts. It takes a very conventional approach and introduces variables, output and arithmetic. The descriptions are detailed and the beginner isn't spared the deeper concepts for the sake of getting started. For example, the distinction between "primitive variables" and "reference variables" is introduced. I can't say I've ever heard of "primitive" being used to describe a variable that obeys value semantics.

Chapter 3 jumps into the deep water with a the idea of classes, methods and object. For me, even though this is billed as a "first look" is too much too soon. If the reader really is a beginner then they have little idea what a variable is and even less what flow of control is all about. To raise the idea of objects, classes and methods before flow of control and functions is likely to be confusing. 

Chatpter 4 starts to look at flow of control but via Boolean expressions and if statements. Loops are introduced in Chapter 5 and we study for loops and while loops. Chapter 6 introduces arrays and the for loop really comes into its own. Another odd topic is the use of passing arrays of "primitives" and objects to a "worker" method. I found this all very confusing. Apparently arrays are "stored" in objects - personally I think it's more realistic to recognize that a Java array is an object. The chapter ends with  collection of "array" algorithms - searching, sorting, maximum, minimum, selection sort and so on. Most of these would be well beyond a beginner at the stage that the book has reached.

Chapter 7 dives deep into methods, classes and objects. It doesn't go the usual route, though, as it starts with static methods, comparing objects, aggregation and inner classes. For inheritance you have to move on to Chapter 8, where the basics are again postponed to look at UML diagrams. Overall this isn't a simple introduction to inheritance - it is a detailed dissection of all of the variations of polymorphism and inheritance possible. You can guess what Chapter 9 is about? Recursion! Yes this marks the book as an academic exercise rather than a practical introduction to Java. Recursion is an important topic for any programmer, but putting a whole chapter on it in an introductory book is a mistake.

The final chapter is on the collections framework, and this does deserve inclusion since, after the array, collections are what you end up using the most. This is where we meet the idea of generics - but really it should have a chapter to itself.

You may remember that I said that this was a game-motivated approach and yet so far I haven't mentioned any games. The reason is that the book isn't structured around creating a game but more the needs of the Java language. Constructing a game comes into the discussion whenever some code is needed. The problem is that the listings are presented as fairly long chunks and they aren't particularly effective in explaining the concepts in the chapter. The examples are more like interludes than amplifications.

Conclusion

This is a big book with lots of color illustrations that make you feel that the material is easy. However, the explanations aren't particularly progressive and you meet some advanced ideas almost along the way. The biggest problem is a lack of theoretical clarity - are we talking about machine addresses, references or something else. The idea that in Java everything is an object isn't emphasized strongly enough.

Overall it reads more like a stream-of-consciousness attempt to explain topics where what is needed is plucked from the air and presented as a logical step in learning, but without being given an importance of it own.

Not a great book but I've read worse. 

 

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.

Banner


ASP.NET Core in Action, 2nd Ed (Manning)

Author: Andrew Lock
Publisher: Manning
Date:April 2021
Pages: 832
ISBN: 978-1617298301
Print: 1617298301
Audience: Developers interested in ASP.NET
Rating: 4
Reviewer: Ian Elliot
One big book to cover the one big alternative web tech.



Teach Yourself Java in 21 Days, 8th Ed (Sams)

Author:  Rogers Cadenhead
Publisher: Sams
Pages: 672
ISBN:  978-0672337956
Print: 0672337959
Kindle:B082J486LS
Audience: Beginning Java Programmers
Rating: 4
Reviewer: Mike James
Java! Its still more than relevant and at edition 8 this must be a classic?


More Reviews

Last Updated ( Tuesday, 21 May 2019 )