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


Learn dbatools in a Month of Lunches

Author: Chrissy LeMaire et al
Publisher: Manning
Pages: 400
ISBN: 978-1617296703
Print: 1617296708
Kindle: B0B39PCHL8
Audience: SQL Server DBAs
Rating: 5
Reviewer: Ian Stirk 

This book aims to make it easier to manage your SQL Server estate, how does it fare? 



Reliable Source: Lessons from a Life in Software Engineering

Author: James Bonang
Date: January 2022
Pages: 608
Kindle: B09QCBVJ9V
Audience: General interest
Rating: 5
Reviewer: Kay Ewbank

This book combines a fun read with interesting insights into how to write reliable programs.


More Reviews

Last Updated ( Tuesday, 21 May 2019 )