For novice programmers, finding an interesting, practical Java programming reference that doesn't overwhelm them with details and complexity is difficult. "Simply Java: An Introduction to Java Programming" is an easy-to-follow textbook that guides the beginning programmer step-by-step through the process of learning Java. The main obstacle to learning object-oriented programming is the volume of interdependent detail that needs to be learned before even the simplest program can be created. Using a spiral approach, this text eliminates extraneous details early on and stresses object concepts that will provide a basis for students to become expert programmers. Classes, objects, and working programs are introduced at the outset, and programming is presented as extended problem solving, making it easier to understand. Class design and graphical user interfaces are introduced early, but most of the detail is postponed until after the student has a better grasp of objects, classes, and inheritance. "Simply Java: An Introduction to Java Programming" is the perfect text for anyone new to Java who wants a comprehensive, easy-to-comprehend reference.
Review By: Greg Feldman-Hill 06/28/2010While I don't consider myself old, I did learn programming on mainframes (that is, pre-object-oriented programming). I was never really comfortable with the concepts of object, method, and class. So, can you teach an "old" dog a new trick? You can with James R. Levenick's book, "Simply Java: An Introduction to Java Programming." And if you're new to programming, you can certainly learn a lot from this fine book as well.
At its simplest, “Simply Java” is written as a textbook to accompany a class for students who are new to programming. It comes with a CD containing a copy of the NetBeans development environment (for Mac and Windows) as well as copies of the sample programs. It teaches basic programming principles while explaining the Java language. As with many beginning programming books, “Simply Java” starts with easy programming constructs (e.g., a “greeter” applet, known to many programmers as a “Hello World” program), and adds more concepts and complexity chapter by chapter. Concepts include constructors, conditional statements, iterative statements, file access, and data structures.
As for the Java language itself, “Simply Java” covers all the necessary elements including classes, methods, and inheritance, as well as more advanced elements such as composition (composite objects) and abstract classes.
But there are many aspects of “Simply Java” that set it apart from other beginning programming books. Most importantly, it teaches basic problem solving and the creation of algorithms. It is one thing to teach someone how to use a tool, such as a programming language, but quite another to instruct one to use the tool to build something correctly and efficiently. “Simply Java” does both with patience and humor.
Levenick compares programming to juggling, stressing that hands-on work is necessary to learn how to program and that it takes time, practice, and serious attention to detail just to write that first, simple program.
Throughout the book, the reader is introduced to problem solving and prototyping techniques, as well as exercises to practice these techniques. Levenick patiently guides the reader through understanding the programming environment (NetBeans), typing in code, compiling, finding and correcting errors, and seeing results. After introducing a new topic, each chapter suggests trying the new material. Most chapters also include a “What Could Go Wrong” section to help the student consider problems caused by common mistakes.
Although called an “introduction” to Java programming, “Simply Java” covers a very wide variety of skills and techniques through the example programs in each chapter, even including graphics manipulation and animation while keeping the concepts clear, concise, and simple enough for the beginner. As a text for a classroom or even learning on your own, “Simply Java” is an excellent guide to both Java and the problem solving skills a programmer needs.