reviews/ground-up-java.xml
<?xml version="1.0"?>
<page title="Ground Up Java" keywords="">
<item>
<p>Author: Philip Heller</p>
<p>ISBN: <isbn>0782141900</isbn></p>
<p>Publisher: <a href="http://www.sybex.com/">Sybex</a></p>
<p>Reviewed by: Ben Evans</p>
</item><item>
<p><em>[Caveat: Throughout the book, mention is made of the Illustrated Exercises.
These are java programs designed to act as online labs or 'magic workbooks'.
The screenshots look enticing and similar tools have proved to be very useful
as teaching aids in other circumstances. Unfortunately, the disc with my copy
failed to mount on any of the Linux or Windows machines I tried it on so I am
unable to comment on their suitability or effectiveness].</em></p>
<p>This book purports to be an introductory programming text, to teach the
complete beginner how to program through the vehicle of the Java language. It
makes a number of claims about being the only such book, and about having a
unique approach to the subject.</p>
<p>Unfortunately, there are already a large number of books that occupy this
space, and I have read more than a few that treat the subject in the same way
that Heller claims is unique. It will be painfully familiar to anyone who has
tried to teach beginners -- the text makes no real attempt made to discuss the
subject in anything other than the standard pedagogical way and the average
student will quickly be lost or bored or both.</p>
<p>The early chapters, in particular, are not good. The introductory chapter
introduces an imaginary virtual machine called SimCom and its associated
assembly language. In no way is this material suitable for the first chapter
of a book which is supposed to be for absolute beginnners. The very reason
high-level languages were developed in the first place was to prevent the
typical programmer from having to deal with the actual nature of the machine.</p>
<p>In later chapters the precedence given to the material is somewhat bizarre.
Java's features which prevent pointer arithmetic (at least by the casual user)
are dismissed in a couple of paragraphs (without so much as a mention of why
this is an important security feature as compared to C/C++, or even using the
word 'overflow') whereas five pages of Chapter 3 are devoted to bitwise
operations. A strange choice for a beginners book on Java. Equally, discussion
of the formats used internally for numbers seems irrelevant to the average
beginner, except those poor souls doomed to program early versions of J2ME.</p>
<p>The treatment of operator precedence is also substandard. I found myself
having to read the discussion several times, as the sense was unclear. I'm
sure a beginner would have been confused by it. There are numerous other
problems - that post and pre-increment are treated as entirely equivalent is
just one example.</p>
<p>Another low point is the treatment of exceptions. The opening, oversimplified
treatment seems to imply that exceptions are preferable to error codes because
the former allow the programmer to write less code or do less work. It is this
kind of attitude which encourages programmers to write coarse-grained handlers
and other bad habits in their dealings with exceptions. The statement that
runtime exceptions should never be caught in production code is laudable but
laughably unrealistic. In practice, beginning and intermediate Java
programmers will need (or worse, be told to) catch these due to a whole host
of possible factors (integration with shoddy binary-only 3rd party code,
desire to never display error screens to the end user, management hubris,
etc.). Far better to discuss these cases, and explain that while a proper
usage of exceptions is a pain in the neck, failure to do so will ultimately
lead to bad and broken code.</p>
<p>The typesetting also lets the book down -- the sections are too long and not
broken up with breakout boxes, key facts are not highlighted and it is very
hard to see which concepts are the important ones and which simply supporting
material.</p>
<p>If this really represents the state of the art in beginners Java books then
the market is clearly still wide open for a text which attempts to teach
proper practice as well as syntax and which brings to the fore the design
patterns principles which underlie so much of Java's design and theory. Most
importantly (and this is perhaps the biggest failing of Heller's book) a book
is needed which discourages beginners from developing the bad habits
responsible for the bloated, inelegant, antipattern-ridden systems which are
sadly all too familiar to working programmers in the field.</p>
</item>
</page>
reviews/ground-up-java.xml
<?xml version="1.0"?>
<page title="Ground Up Java" keywords="">
<item>
<p>Author: Philip Heller</p>
<p>ISBN: <isbn>0782141900</isbn></p>
<p>Publisher: <a href="http://www.sybex.com/">Sybex</a></p>
<p>Reviewed by: Ben Evans</p>
</item><item>
<p><em>[Caveat: Throughout the book, mention is made of the Illustrated Exercises.
These are java programs designed to act as online labs or 'magic workbooks'.
The screenshots look enticing and similar tools have proved to be very useful
as teaching aids in other circumstances. Unfortunately, the disc with my copy
failed to mount on any of the Linux or Windows machines I tried it on so I am
unable to comment on their suitability or effectiveness].</em></p>
<p>This book purports to be an introductory programming text, to teach the
complete beginner how to program through the vehicle of the Java language. It
makes a number of claims about being the only such book, and about having a
unique approach to the subject.</p>
<p>Unfortunately, there are already a large number of books that occupy this
space, and I have read more than a few that treat the subject in the same way
that Heller claims is unique. It will be painfully familiar to anyone who has
tried to teach beginners -- the text makes no real attempt made to discuss the
subject in anything other than the standard pedagogical way and the average
student will quickly be lost or bored or both.</p>
<p>The early chapters, in particular, are not good. The introductory chapter
introduces an imaginary virtual machine called SimCom and its associated
assembly language. In no way is this material suitable for the first chapter
of a book which is supposed to be for absolute beginnners. The very reason
high-level languages were developed in the first place was to prevent the
typical programmer from having to deal with the actual nature of the machine.</p>
<p>In later chapters the precedence given to the material is somewhat bizarre.
Java's features which prevent pointer arithmetic (at least by the casual user)
are dismissed in a couple of paragraphs (without so much as a mention of why
this is an important security feature as compared to C/C++, or even using the
word 'overflow') whereas five pages of Chapter 3 are devoted to bitwise
operations. A strange choice for a beginners book on Java. Equally, discussion
of the formats used internally for numbers seems irrelevant to the average
beginner, except those poor souls doomed to program early versions of J2ME.</p>
<p>The treatment of operator precedence is also substandard. I found myself
having to read the discussion several times, as the sense was unclear. I'm
sure a beginner would have been confused by it. There are numerous other
problems - that post and pre-increment are treated as entirely equivalent is
just one example.</p>
<p>Another low point is the treatment of exceptions. The opening, oversimplified
treatment seems to imply that exceptions are preferable to error codes because
the former allow the programmer to write less code or do less work. It is this
kind of attitude which encourages programmers to write coarse-grained handlers
and other bad habits in their dealings with exceptions. The statement that
runtime exceptions should never be caught in production code is laudable but
laughably unrealistic. In practice, beginning and intermediate Java
programmers will need (or worse, be told to) catch these due to a whole host
of possible factors (integration with shoddy binary-only 3rd party code,
desire to never display error screens to the end user, management hubris,
etc.). Far better to discuss these cases, and explain that while a proper
usage of exceptions is a pain in the neck, failure to do so will ultimately
lead to bad and broken code.</p>
<p>The typesetting also lets the book down -- the sections are too long and not
broken up with breakout boxes, key facts are not highlighted and it is very
hard to see which concepts are the important ones and which simply supporting
material.</p>
<p>If this really represents the state of the art in beginners Java books then
the market is clearly still wide open for a text which attempts to teach
proper practice as well as syntax and which brings to the fore the design
patterns principles which underlie so much of Java's design and theory. Most
importantly (and this is perhaps the biggest failing of Heller's book) a book
is needed which discourages beginners from developing the bad habits
responsible for the bloated, inelegant, antipattern-ridden systems which are
sadly all too familiar to working programmers in the field.</p>
</item>
</page>