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


Introduction to Machine Learning with Python

Author: Andreas C. Müller and Sarah Guido
Publisher: O'Reilly
Pages: 394
ISBN: 978-1449369415
Print:1449369413
Kindle: B01M0LNE8C
Audience: Python programmers
Rating: 4
Reviewer: Mike James

What exactly is machine learning? 



Programmed Inequality

Author: Marie Hicks
Publisher: MIT Press
Pages: 352
ISBN:  978-0262535182
Print: 0262535181
Kindle: B01MV05ABA
Audience: General interest
Rating: 4.5
Reviewer: Sue Gee

Subtitled "How Britain Discarded Women Technologists and Lost Its Edge in Computing" this sounds like a fasci [ ... ]


More Reviews

Last Updated ( Tuesday, 21 May 2019 )