« UN leaps into inaction | Main | Miscellaneous strange news of the day »
March 31, 2006
Unix, C and programming: my essential references
Another very dull and geeky post.
The guiding idea behind these is to have one book for each topic that has all the answers I need, even if finding the answers is hard work to begin with. You'll get used to the book layout and it will cease to be a chore, you'll have the answer at your fingertips without having to hunt through various volumes. This is not to say these are the only references on these topics that I own, simply the ones that are most often thumbed.
Mark G. Sobell, A Practical Guide to Linux(R) Commands, Editors, and Shell Programming Prentice Hall, 2005. I've been using Sobell's original "Guide to Unix System V" for over a decade. This is the updated, all-in-one reference for finding your way about a Linux shell, those cryptic arguments to commands, all in a format more accessable and informative manner than the online man pages. Covers a good many distributions.
Vicki Stanfield, Roderick Smith, Linux System Administration 2nd Ed. Sybex 2002. A solid reference, though one that I'll likely replace later in the year when a new edition of an alternate book is released.
Samuel P. Harbison, Guy L. Steele, C: A Reference Manual 5th Ed. Prentice Hall, 2002. A tremendous reference that covers the C in a very readable fashion.
Marc J. Rochkind, Advanced Unix Programming, 2nd Ed. Addison Westley, 2004. Distributions from BSD through Solaris and Linux, covering 307 (of 1107) system functions - and their gotchas. It assumes knowledge of C. A little light on multi-threaded programming.
Robert Sedgewick, Algorithms in C, Parts 1-5: Fundamentals, Data Structures, Sorting, Searching, and Graph Algorithms 3rd Ed. Addison-Wesley, 2001. Book 1 covers contains parts 1-4, introducing fundamental concepts associated with algorithms, data structures, sorting, and searching. Book 2 (Part 5), is entirely dedicated to graphing algorithms. This book is not without its critics (the majority complaining that the code not commented), butreading the text then reading and working out what the code does is far more beneficial than implanted crib notes. It also reduces the size of the book tremendously.
Tim Converse, Joyce Park, PHP 4 Bible Hungry Minds (Wiley), 2000. Excellent reference on PHP 4 (I do realise its now a version behind, but I don't use PHP all that often and this is an excellent reference). It assumes a knowledge of programming, though not nescasarily PHP.
Judith S. Bowman, et. al. The Practical SQL Handbook Addison-Wesley, 1993. (Now in its 4th edition, I still use the 1st). This is not as all encompassing as I would like, but it is a decent reference and introduction to SQL, which, like PHP, I don't write often enough to justify the purchase of a new edition.
Larry Wall, Programming Perl 3rd ed. O'Reilly, 2000. Written by the creator of Perl, this one is indispensible. I personally don't much care for Perl, but have occasionally needed to delve into it.
Here is where I break the "Just have one reference on a topic" rule (for two topics):
W. Richard Stevens, Steven Rago Advanced Programming in the UNIX(R) Environment 2nd Ed. Addison-Wesley, 2005. The original was the bible for Unix systems programmers. Substantially larger than the Rochkind tome (and the 1992 edition), there is suprisingly little overlap between the two volumes. It assumes knowledge of C, linkers and debuggers. Thoroughly updated by Steven Rago (one of the developers of Unix System V) after the passing of Mr Stevens.
Thomas H. Cormen, et. al. Introduction to Algorithms 2nd Ed. MIT Press, 2001. A mathematically rigourous treatment of algorithms. Samples are presented in pseudo-code. This is an academic tome, each chapter being more-or-less self contained (which also makes it an excellent reference).
Scrawled illegibly by Meathe at March 31, 2006 09:27 AM
Comments