|Learn Java the Easy Way
Author: Dr. Bryson Payne
Who could resist an easy way to learn anything?
Java is still an important language, even though there are alternatives such as Kotlin snapping at it heels. It is a good language for the beginner to learn because it is the archetypal object-oriented language and most other languages copy it to a greater or lesser degree. A book that promises to teach to Java in an easy way seems attractive.
Chapter 1 explains how to set up Eclipse and Android Studio. I was glad to find that an IDE featured in the book. It might not be my favourite - which is NetBeans - but it is better than nothing. The only problem is that for a beginners book one IDE is great but two are a potential disaster, especially when one of them is for a complex system like Android. This doesn't bode well.
Chapter 2 gets started with an application - the well known number guessing game. This is a simple application, but to implement it you have to know about loops, conditionals and data types, plus a lot of other things. For a first "get to grips with Java" chapter this is the deep end and if you don't already know a fair bit of Java, and indeed how to program, you probably aren't going to get much out of it. Ideas are introduced as the need arises to implement the program in hand. There is no logical progression through language features - in fact this first chapter sets the tone for the rest of the book - "task-oriented".
Chapter 3 upgrades the example by adding a GUI using Swing and a designer add-in for Eclipse. This is a good way to create a GUI, but this is just chapter 3 of a book that is supposed to teach you Java the easy way. Not many language features have been discussed, but we are already tackling putting a GUI together.
The next chapter does something completely crazy - it goes off into Android development. I usually say that you need to know some Java, or at least a Java-like language, before tackling Android and this makes Android quite unsuitable as an introduction to programming and certainly not a way to learn Java. The Android theme continues in Chapter 5 which is more about Android than Java.
Chapter 6 starts a new program - a Caesar cipher program. This is an opportunity to learn more about strings but again Java takes a back seat to getting the program implemented. In the next chapter you add a GUI and then in Chapter 8 you port the program to Android.
Chapter 9 starts Bubbledraw, a program to let users draw bubbles on the screen. This isn't a trivial or a simple example; it is a fairly sophisticated program which is extended in the next chapter with animation. As you can probably guess, Chapter 11 converts the program into a multi-touch Android app which is advanced even for an intermediate level programmer.
This book really isn't about teaching you a language, it is about taking you through a range of things you need to know to implement Swing and Android apps. At the end of the book you will not know enough about either topic to do very much. At best you might decide to learn more Swing or its modern replacement, JavaFX, or you might choose to specialize in Android.
There is surprisingly little about Java in the book. There is a lot about APIs and library routines that you need to call to get the job done, but basic Java is strangely absent. For example, the few pages on the Java for loop are motivated by the need to step through a string, but the for loop isn't emphasised enough as an essential concept and part of Java. It's just a tool to get the job done and has no wider context or purpose explained.
If you like a task-oriented approach you might like this book. Personally I found the tasks and the environments chosen for the tasks made it much harder to see the wood for the trees. The involvement of the Swing library to construct a GUI and Android as an alternative just complicates things to the point where any simplicity in the language is just lost in the details of the implementation of the libraries and APIs.
As a result I can't recommend it to you if you are a complete beginner at programming or Java. This isn't an easy introduction to Java because it isn't really an introduction to Java at all.
Mike James is the author of Android Programming In Java: Starting with an App 3rd Ed (I/O Press) which will be of interest for going further with Android Programming.
|Last Updated ( Saturday, 13 January 2018 )