Jim's Programming Book List
C Programming
- Kernighan and Ritchie, The C Programming Language,
Second Edition
- This is the classic introduction to C programming.
If you use the language at all, you are going to have
this book on your shelf some day, so you might as well
get this as your first book. Get a different introductory
book only if you absolutely need to.
- Harbison and Steele, C: A Reference Manual,
Fourth Edition
- Sort of an expansion of the reference manual in the appendix
of Kernighan and Ritchie. A good intermediate between the
introductory sections of K&R and the full-blown standard.
Good exposition of the standard C library together with
a documentation of the ``traditional'' library.
- Plauger, Standard C
- I don't have this one yet, but Plauger was central to the
development of the ANSI C standard, and also did an
excellent job with...
- Plauger, The Standard C Library
- A complete reproduction of the C Standard Library document,
together with discussions on history, rationale, usage, and
a complete implementation in C. Even if you don't care about
how the standard library is implemented (you should), it's
always good to study a well-documented large software system in C.
- Summit, C Programming FAQs
- Although much of it is geared toward deprogramming users of Microsoft
tools, it has a lot of good stuff.
Often a better way of accessing material if you have a specific
question but don't know how to approach the reference material.
- Schildt, The Annotated ANSI C Standard
- WARNING: The annotations are so bad that the book can be
quite harmful without applying
Clive Feather's critique.
A cheap source of the text of the ANSI C standard
(which has since been superseded by the mostly-identical
ISO C standard), if you don't mind the missing pages
and occasional typos. If I had it to do over again, I'd
just buy the standard document, but applying all of
Feather's criticisms was educational in itself.
Don't get any other Schildt books, though.
UNIX Programming
- Kernighan and Pike, The UNIX Programming Environment
- This book is for UNIX what K&R is for C.
If you learn all of the material in chapter 8 you will
be an above-average UNIX programmer.
- Lewine, POSIX Programmer's Guide
- Look here before the manual for your particular system.
Vendor's don't differentiate between their gratuitious
extensions and portable practices.
- UNIX Research System, Tenth Edition
- The reference for the last of the Research UNIX releases
from Bell Labs, the one true source of it all. Good collection
of some updated supplementary documents.
Network Programming
- Comer, Internetworking with TCP/IP
- A good programmer's introduction to the Internet.
- Stevens, UNIX Network Programming, Second Edition
- After you've read Comer as an introduction, Stevens gives
the nuts and bolts for practical network programming in
the UNIX environment.
General Programming
- Kernighan and Pike, The Practice of Programming
- K&P do it again. Even experienced programmers will learn
something from this book. Gives C, C++, and Java examples
while general discussing programming issues.
- Richard Gabriel, Patterns of Software
- The ``software patterns'' movement has become as big a
buzzword-laden bandwagon as ``object-oriented X''.
Gabriel, one of the first to bring Alexander's Pattern Language
ideas to software, is able to point out the strengths and
weaknesses of many different approaches to programming,
including an insightful critique of ``abstraction'' as
an end-all, be-all of software design.