|
|
All too many CS and Programming books are incomplete, incorrect, or both. It is
very frustrating when trying to learn a new language or subject to find that
the author of the book either has neglected to provide the needed information
or that the information he/she provided is incorrect.
I have listed here some CS related books that I have found to be (pretty)
readable, largely correct, and mostly complete. Some have been used as
textbooks here at CSUH but most have not. Many of the below are reference
books rather than textbooks.
Programming and Managing Programmers
-
The Practice of Programming, Brian Kernighan & Rob Pike
-
I get to spend time in CS3560 talking about programming tools, strategies,
philosphy, library constuction and design, header files, portability,
coding standards, etc. These are topics usually not covered in computer
science textbooks and university classes, instead knowledge that must
be "picked up on the streets". When students have in the past
asked me to suggest a book they could read that contained that sort of
information I always had to reply that I knew of no books containing
this very practical and important information and threatened to write
my own.
Last year I read this text and found that I contained 90% or more of the
knowledge of development I'd hoped to convey to students but never had the
time (in 10 weeks) to do so. This book contains a wealth of information
about development and is written by highly skilled programmers. Every
programmer should read this book as it explains things that normally could
only be learned by years of real world programming experience.
-
The Mythical Man Month, Frederick Brooks
-
The book is a classic text about software development and management of
software developers. Many of the points made have become standard bits
of wisdom in management textbooks. It is a pity that many managers are
making the same mistakes today that were made 30 years ago. Of course
they must not have read this book. You should.
-
Peopleware: Productive Projects and Teams, Tom Demarco & Timothy Lister
-
I was prompted to read this book after coming across the term
teamicide in an essay that cited this text. Having had the
experience several times of being part of great programming team (extremely
productive, fun, etc.) ruined by a poor hiring decision or other management
mistake (not by me by the way!) I wanted to learn more about what it takes
to get a good team to jell and what mistakes managers make that
destroy such teams or prevent them from developing in the first place.
This book is a terrific read for all of us. Developers who never intend
to move toward managerial roles will learn to recognize the signs that
things are going to hell and cut their losses, and those who move into
such managerial positions will learn from the mistakes of others.
Java
-
Thinking in Java, Bruce Eckel
-
I have been very unhappy with the Java books I have seen. This is the first
Java book I have seen that is readable, reasonably correct (some definitions
are incorrect), and does a decent job talking about the Object Oriented
Programming (OOP) paradigm. Best of all the author makes it available free
for download at his website.
-
Web Development with JavaServer Pages, Duane Fields and Mark Kolb
-
Wow. A JSP book that is written by folks that understand the technology
and tell us what we need to know. This book is far and away the best
JSP book I've read. Much better than Sun's book.
C
-
The C Programming Language, Kernighan and Ritchie
-
Well... this book is the one most of us learned C from. It is a classic
and makes my list for sentimental reasons. The newest version deals
with ANSI C and they've added information on the standard libraries.
If you are actually going to write non-trivial programs in C, you need ...
-
The Standard C Library, P.J. Plauger
-
A fantastic book for C programmers who want to understand the the
(ANSI) standard C libraries. This book contains descriptions of each of
the 15 header files, detailed descriptions of the functions and macros,
the rationale behind library design decisions and implementations of
many of the functions. I learned a great deal from reading this book
and keep it on my desk no matter where I am working.
C++
C++ provides the ANSI C libraries as well others, so those programming in
C++ need to know what we think of as the standard C libraries. Their are
15 header files used to describe the interface to the C libraries (3 more
were added in the 1995 ISO extension, making 18 total). C++
adds another 32 header files. To call yourself an expert C++ programmer
you need to know C++ (the language) as well as the libraries.
-
Essential C++, Stanley Lippman
-
This book is to C++ what Learning Perl is to Perl. When working on a
production at Dreamworks, Lippman needed to learn Perl. He found that
the Learning Perl book was perfect. It told him just enough to get
started programming in Perl without overloading him with details
and complications. He felt that C++ needed a book like this one and
that his 1300 page C++ Primer could not serve that purpose, so he
wrote this book.
-
C++ Primer, Stanley Lippman
-
Lippman clearly knows C++ very well. This text is a comprehensive
C++ text. It could not easily be used in a beginning programming class,
but would be suitable in a following course. I'd be inclined to have
either this book on my shelf as a C++ reference or ...
-
The C++ Programming Language, Special Edition, Bjarne Stroustrup
-
There are alot of bad C++ books out there. This one is good. I have found
that this one contained the answers for many of the questions I had as
I was (re)learning ANSI standard C++. It could not be used in an
introductory course, but has been to me a valuable reference.
-
The C++ Standard Library: A Tutorial and Reference, Josuttis
-
This text is easy is an easy to read and pretty comprehensive description
of the C++ standard libraries (parts that are C++ but not C). The key
here is the "easy to read". This text can be used to learn
the containers and algorithms, etc. not just serve as a reference.
-
The C++ Standard Template Library, Plauger, Stepanov, Lee, and Musser
-
It is not enough that C++ programmers know the C libraries, they also
need to know the C++ Standard Libraries and the C++ Standard Template
Libraries. This book is by Plaugher and the guys that wrote the STL.
If they don't know it, nobody does. It is similar to the Standard C
Library book discussed above, but deals with the STL. I don't feel as
strongly about this text as the C version, but it is nice to have
a comprehensive description of the ANSI STL.
Perl
-
Learning Perl, Schwartz and Christiansen
-
Easy to read book by a couple of people who know perl well. Great
beginning Perl book.
-
Advanced Perl Programming, Sriram Srinivasan
-
After you've been through the Learning Perl book and programmed in Perl
for a few months, get this book. I felt that I got my money's worth after
reading the first 10 pages. Sriram knows perl and discusses important
material related to object oriented programming in perl, perl internals,
talking to a database, and many other topics. Every professional Perl
programmer I've talked to feels the same way about this book. It is
fantastic.
|