Part of the Practical IDL Programming
Web
Code
Complete: A Practical Handbook of Software Construction, by Steve McConnell
Code Complete is about building well-crafted software, and it contains
the kind of wisdom that usually takes 10 years or more on the job (not
in school) to accumulate. When you have a question such as "What are some
guidelines for naming variables?", or "How do I decide if this section
of code should be separated into a function?", McConnell offers clear and
sensible advice, backed up by hard data accumulated from numerous studies
of software development projects. If I could only recommend one programming
book to someone just starting out, this would be it.
Programming
Pearls, 2nd Ed., by Jon Bentley
First published in 1985, this book gets the mental cogs turning as
it explores the process of solving problems via computer programming. There
are many classic stories about breaking down a problem into it's fundamental
components; when and when not to optimize (what about getting the right
answers first?); and how to decide if a computer is even the appropriate
tool to fix a problem. Bentley encourages the reader to think first
before diving in to start coding.
The
Underground Guide to Unix, by John Montgomery
This book is designed for those of us who want to know enough about
Unix to get the job done, and that's all. It's not a 'dummies' book. It
assumes you know enough about Unix to log in and do some simple things,
and that you'd like to move to the next level. Numerous tables are included
(e.g. top 10 shell customizations, the 12 loveliest vi commands) to distill
crucial information. The section on using rsh to control remote tape drives
made the purchase worthwhile for me. Montgomery doesn't try to tell you
everything there is to know about Unix; he just tells you what you really
need to know.
About
Face: The Essentials of User Interface Design, by Alan Cooper
When I wrote my first graphical user interface, I was much more concerned
with the mechanics of widget creation and event management than whether
the application was easy to use. Reading Cooper's book gives the bigger
picture, the essence of which is this: the user matters most. We've
all been insulted by rude applications which interrupt our work flow with
idiotic dialog boxes and error messages. Cooper gives numerous examples
of ways to make users feel stupid, and presents a strong case that the
top priority of a GUI application should be to not make the user
feel stupid. This book is essential reading for anyone building GUI applications.
Visual
Explanations: Images and Quantities, Evidence and Narrative, by Edward
R. Tufte
The third volume in Tufte's legendary series is highly relevant to
the kinds of information displays that can be created in IDL. You can look
to this book for inspiration or for real world ideas. I found the section
on color shading of topographic maps to be very useful when creating global
displays of satellite data that emphasize real trends, rather than artifacts
of a particular color scale.
Visual
Revelations: Graphical Tales of Fate and Deception from Napoleon Bonaparte
to Ross Perot, by Howard Wainer
This book discusses the myriad ways that charts and graphs can be done
poorly or done well. In particular, it shows how graphs can be used intentionally
or inadvertantly to muddy the facts. I guarantee you'll never look at a
pie chart the same way after reading this book. Required reading for those
intending to produce legible and informative graphs.