© Copyright 1998 All Rights Reserved
The information on these pages is copyrighted by the author with all rights reserved. Reproduction of anything other than actual URL addresses without the author's permission is in violation of copyright laws.
I've seen several posts in newsgroups asking for reference books.
Here's a list of some of my favorite reference books and magazine articles.
Table of Contents:
This is a list of some of the algorithms books I've found useful
- Practical Algorithms For Programmers,
by Andrew Binstock and John Rex, ISBN 0-201-63208-X.
This is one of the only books I've found that shows you practical
implementations of useful algorithms. If you're more interested in
practical applications than theory, this book is for you. Some theory
is covered too and in a very easy to understand manner.
- Dr. Dobb's Journal, Algorithms issue, #246, April 1996.
This magazine issue includes an article by Andrew Binstock called
Hashing Rehashed. The article contains a fix to some
hashing code used in both Practical Algorithms For Programmers
and Compiler Design in C.
- Computer Algorithms: String Pattern Matching
Strategies, edited by Jun-ichi Aoe, ISBN 0-8186-5462-7.
If you're interested in pattern matching, this book contains several
papers on the topic. It includes descriptions of Boyer Moore and other
useful string searching techniques. Was available from the
IEEE Computer Society Online Catalog.
- Computer Algorithms: Key Search Strategies, edited
by Jun-ichi Aoe, ISBN 0-8186-9123-9. Contains new and classic papers
on trees and hashing. It includes a copy of the definitive article on
B-Trees. Was available from the
IEEE Computer Society Online Catalog.
If you want to learn C++, these are the books to read. Also, if you want
a good reference for STL, check out the Rogue Wave reference materials on the
Standard C++ Library (available at various sites on the web).
- The C++ Programming Language,
2nd Edition, by Bjarne Stroustrup, ISBN 0-201-53992-6.
I learned C++ with this one. It's been replaced by a third edition, but there's
still some good information in here that isn't covered in the later edition.
- The Design and Evolution of C++,
by Bjarne Stroustrup, ISBN 0-201-54330-3.
This book is useful if you need to know anything about programming language
design in general and C++ in particular. It covered some of the
later additions to C++ not mentioned in The C++ Programming Language, 2nd
- The C++ Programming Language, 3rd Edition, by Bjarne Stroustrup,
This book covers many of the new C++ language features including STL.
If you're just learning or want to keep up with the latest C++ language
additions, this is the book to look for.
I'm always collecting books on various file formats. There's some
good online references such as Wotsits.
However, if you're interested in a printed copy of information
on various graphics file formats, Steve Rimmer has written some
wonderful books to explain not only common formats, but how to write
code to view them. I've listed a few of them.
- Bitmapped Graphics by Steve Rimmer
- More Bitmapped Graphics by Steve Rimmer
A lot of the best information on web sites and programming for them is online.
See my Resource Page for Web Designers for some of them.
Once in a while, you want a text reference in book form. Here are a few good ones.
across different types of browsers.
- Web Developer.com Guide to Building Intelligent Web Sites with
tried a CBT and even bought other books. This is the best book I've located
a programmer with experience who wants to know how to start writing code as
Here are the books and articles I found most useful when learning
and working with Java. The first two should be enough to get programmers
new to Java up and running.
- Java in a Nutshell,
second edition, by David Flanagan, ISBN 1-56592-262-X.
This book makes a very handy reference. Not only does it give an overview of
Java classes and methods, you can also look up classes by knowing the name of a
method or the object returned by a method. It has helpful examples of how to
make your own components and how AWT events work. It doesn't go into the
details of what each method does. You need to look this up in the API
documentation or another book. However, it does list all the methods and makes
a useful quick reference book.
- Core Java,
by Gary Cornell and Cay S. Horstmann, ISBN
This book makes a good introduction to the Java language, especially if you already
program. It has lots of useful examples. It shows how to write your own layout
manager, how to create an application that is also an applet, and provides several
helpful classes such as those for formatting and reading in strings. If you
just need a reference for the Java API look elsewhere, but if you want to learn
the ins and outs of programming, this is a very good starting point.
- Developing Professional Java Applets,
by K.C. Hopson and Stephen E. Ingram, ISBN 1-57521-083-5.
This book gives several practical
applet examples including a spreadsheet and online catalog. The part I liked
best was the explanation on how to read, write and display other graphics file
formats such as the Windows BMP format.
- Java Report, July/August 1996, Volume 1, Number 3. This
magazine issue has an informative article on how layout managers work.
I have at least three books on Perl in my personal library, including some
of the more popular ones, but don't find them great for reference
or learning. There are some very nice tutorials on the web for
learning Perl that are much more self explanatory.
- Perl Tutorial
A very good overall tutorial for learning Perl. Great for beginners.
- Perl CGI tutorial
A tutorial that covers Perl CGI related issues. It gives
examples of useful Perl CGI code for web sites and explains how to write your own.
- Repetitive Strain Injury, ISBN 0-471-59533-0,
has useful material on preventing or minimizing repetitive strain injuries. I can't stress enough
how important this type of information is to programmers.
- Compiler Design in C, by Allen I. Holub, ISBN 0-13-155045-4.
If you're trying to make sense of Compilers - Principles, Techniques and Tools
by Aho, Sethi and Ullman or if you're taking a class on compilers,
this is the book to see. It explains and gives code for compiler
creation in a straight forward, easier to understand format.
- The Mythical Man-Month, ISBN 0201835959,
is a classical software engineering reference with information and anecdotes to learn from for any type of creative or business endeavour.
For books on multimedia programming, I've worked with and
found the following useful. Also listed are some magazine articles with
hard to find examples for coding sounds. Check the CppDesign mailing list
for more information on free C/C++ multimedia libraries.
- Multimedia Programming For Windows, by Stever Rimmer,
This has some good examples of how to get
sound players and graphics viewers coded and working under Windows.
- Visual C++ Multimedia Adventure Set, by
Peter Aitken and Scott Jarol, ISBN 1-883577-19-5.
This book explains the creation of an example hypertext program under Windows
that can show pictures and text and can play sounds. Although the authors
don't cover such problems as what to do about memory leaks in C++ until
much too late in the book, there are a few good examples of multimedia
programming under Windows in it.
- Game Developer, Volume 1, Number 1, Premier 1994.
This magazine issue has a wonderful article on programming sound cards in DOS.
It explains how to create a C program that works with the old OPL2/OPL3 chips.
It also provides a list of further references.
- Windows/DOS Developer's Journal, September 1994, Volume
5, Number 9.
There are APIs in Windows to play WAV and MIDI files. However, if you
want to play a particular note without using any files, that's a different
story. This magazine has the only information I've seen on how to play
particular notes in memory (without using any files). It uses the
sndPlaySound function and provides code to create the WAV file in memory
for a particular note. See pages 39-50 for how to do it.
If you're trying to learn Windows programming, these are the books that got me
- Windows Programmer's Guide to Microsoft
Foundation Class Library,
by Namir Clement Shammas ISBN 0-672-30067-2.
This is one of the only two books I know of that explains how to use MFC
without a code generator or class wizards. The good news is, it shows you
everything you need to know to get a program up and running
without class wizards. The bad news is, it's out-of-date and doesn't
have anything on the very latest features of MFC. However, it does
provide enough information to get a nice MDI application working. It
also explains MFC basics much better than other MFC books I've seen.
- Microsoft Foundation Class Primer,
by Jim Conger ISBN 1-878739-31-X.
This is the second of the two books that explains how to use MFC without a
code generator or class wizards. The same comments as for Windows Programmer's Guide to Microsoft
Foundation Class Library apply. I found this book covers some
things that Windows Programmer's Guide to Microsoft
Foundation Class Library doesn't. However, I found
Windows Programmer's Guide to Microsoft
Foundation Class Library easier to read.
by Paul Dilascia ISBN 0-201-60891-X.
This is a great book. Paul Dilascia is an excellent writer. If you
ever wanted to know how class libraries (such as MFC or OWL)
work, this will explain it to you in detail. This book creates a
C++ class library on top of Windows called Windows++. You can also
learn some interesting tips about straight Windows programming while
you're reading it. If you're using an Open Source compiler such as mingw
or OpenWatcom a book like this can be extremely helpful.
- Microsoft Systems Journal, July 1995. I've enjoyed
all of Paul DiLascia's articles, but this issue has a wonderful
explanation about message routing using MFC.
To the main page.
The information on these pages is copyrighted by the author with all rights reserved.
Reproduction of anything without the author's permission is in violation of copyright laws.
All original material is copyrighted:
(c) Copyright 1998 by Laura Michaels
All Rights Reserved
Last Update: 20110713