Kuro5hin.org: technology and culture, from the trenches
create account | help/FAQ | contact | links | search | IRC | site news
[ Everything | Diaries | Technology | Science | Culture | Politics | Media | News | Internet | Op-Ed | Fiction | Meta | MLP ]
We need your support: buy an ad | premium membership

Essential programming references.

By electricbarbarella in Technology
Tue Feb 27, 2001 at 10:46:25 PM EST
Tags: Round Table (all tags)
Round Table

So we have the Essential Linux Bookshelf already, but what should go into the Essential Programming Bookshelf?

Sponsor: rusty
This space intentionally left blank
...because it's waiting for your ad. So why are you still reading this? Come on, get going. Read the story, and then get an ad. Alright stop it. I'm not going to say anything else. Now you're just being silly. STOP LOOKING AT ME! I'm done!
comments (24)
active | buy ad
I'm a 3rd year CS student, and I'm wondering what programming reference books people have found the most valuable. I don't really care about the specific topic the book covers, since I'm interested in everything (database design, algorithm analysis, AI, crypto, etc..).

Let the recommendations begin.


Voxel dot net
o Managed Hosting
o VoxCAST Content Delivery
o Raw Infrastructure


On my reference shelf I have:
o 1-5 books 9%
o 6-20 books 26%
o 20+ books 31%
o I lost count 21%
o Ha! I am not held down by the boundaries of paper, I use electronic media! 4%
o Pie. 5%

Votes: 123
Results | Other Polls

Related Links
o Also by electricbarbarella

Display: Sort:
Essential programming references. | 47 comments (47 topical, editorial, 0 hidden)
20+ books (1.66 / 3) (#1)
by ucblockhead on Tue Feb 27, 2001 at 12:55:51 PM EST

Sad to say, I've consigned more than 20+ books to the landfill.
This is k5. We're all tools - duxup
half.com (2.00 / 2) (#3)
by fluffy grue on Tue Feb 27, 2001 at 01:03:28 PM EST

You coulda probably sold them on half.com and saved the environment...
"Is not a quine" is not a quine.
I have a master's degree in science!

[ Hug Your Trikuare ]
[ Parent ]

Recycled, actually... (2.00 / 2) (#8)
by ucblockhead on Tue Feb 27, 2001 at 01:24:11 PM EST

OS/2 Programmer's Reference (version 1.3) Advanced Turbo C Programming (version 2.0) Advanced DOS Programming (version 3.3) etc, etc. I've got utterly obsolete books coming out of my ears...

Used book stores tend to take one look, and just laugh.
This is k5. We're all tools - duxup
[ Parent ]

half.com (2.50 / 2) (#17)
by fluffy grue on Tue Feb 27, 2001 at 03:20:03 PM EST

Hehe, don't worry, half.com, being an eBay company, is full of people who are more than willing to buy obsolete and worthless books. There's a few books I've bought in a bargain bin, didn't like, and sold on half.com for MORE than I paid for it in the bargain bin.
"Is not a quine" is not a quine.
I have a master's degree in science!

[ Hug Your Trikuare ]
[ Parent ]

Knuth is a must for any programmer's library. (3.66 / 9) (#2)
by RocketJeff on Tue Feb 27, 2001 at 01:00:09 PM EST

I discovered Knuth's 'The Art of Computer Programming' almost by accident* in college but it was worth all 4 years tuition. All three volumes were invaluable back then and are still on my shelf 14 years later.

Now if he'd get buisy with Volume 4!

* TAOCP wasn't used in a class, but a professor made an off-hand comment about it being a classic. After I browsed it in the Library, I went out and bought all three volumes.

Baby steps (4.00 / 1) (#5)
by sugarman on Tue Feb 27, 2001 at 01:07:33 PM EST

Along the same lines, is there an intermediate book that fills the gap between "Programming for Dummies" and Knuth wrt Algorithms and the like?

I took a glance through Knuth and had to make a mad dash for the Dr.Seuss section to maintian my sanity. O'Reillys "Mastering Algorithms in <foo>" had caught my eye, but I'm not 100% sold yet. Anyone else have some recommendations to mid-level algo books that lack the skull-crushing power of Knuth?

[ Parent ]

Hmm... (4.50 / 2) (#7)
by 0xdeadbeef on Tue Feb 27, 2001 at 01:20:52 PM EST

How about Sedgewick's algorithms books? Though that O'Reilly book looks kind of nifty too.

[ Parent ]
here: (4.00 / 1) (#9)
by _cbj on Tue Feb 27, 2001 at 01:30:03 PM EST

An Introduction to Algorithms, by Rivest et al is highly rated and used in many courses. Best intro book, IMO: Algorithmics - the Spirit of Computing by David Harel.

Knuth's books are cool, but not essential until you've decided your future is low-level. And, yes, whoever said this topic has been done rather well before was quite right. Search Kuro5hin.

[ Parent ]

Mastering Algorithms in Perl (none / 0) (#42)
by DJBongHit on Sun Mar 04, 2001 at 11:22:21 PM EST

O'Reillys "Mastering Algorithms in <foo>" had caught my eye, but I'm not 100% sold yet. Anyone else have some recommendations to mid-level algo books that lack the skull-crushing power of Knuth?
I have O'Reilly's "Mastering Algorithms in Perl." It's pretty simple stuff, but an interesting read anyway (and it helped plant some ideas in my head for fun programs to write, which is a problem I've been having recently.)


GNU GPL: Free as in herpes.

[ Parent ]
Expand on other articles? (3.40 / 5) (#4)
by Maniac on Tue Feb 27, 2001 at 01:05:49 PM EST

Hmm. I have on my hot list, Top 5 Tech Books: Share your Favorites. As an example of the responses, here's my response to that story.

Now, the last previous post to that discussion was three months ago. It would be somehow "better" in my mind to continue to add to that discussion instead of putting a new one in the submission queue once a quarter. Is there any way to keep these good items alive than this?

Not QUITE the same...but... (4.50 / 2) (#15)
by Luke Francl on Tue Feb 27, 2001 at 03:10:25 PM EST

The two stories are not quite the same thing...this one is on programming references, while that one was on technical books.

But, you have a good point. There are a lot of stories languishing in the archives which could still have some good discussion on them. I think part of the problem is that K5 has a "weblog" format despite being a discussion site. K5 isn't that much different from an old BBS or newsgroup where you could post your own articles and talk about them for an indefinate period of time. The problem here is that the old stories scroll off the page despite still geting comments.

One way to deal with this might be something like ArsDigita does with their forums -- you can sign up for email notification (instantly, daily, or weekly) whenever someone posts on a topic (a while ago there was a thread about integrating the forums even closer with email, so you could reply to a person's post via your email client -- now THAT would be sweet). If K5 had an email notification feature, I think it could keep old topics alive longer.

Another idea would be to have a box displaying the most discussed topics on the homepage, regardless of age.

Just my $.02. What do you think should be done?

[ Parent ]

How about redirection? (4.00 / 1) (#26)
by Maniac on Tue Feb 27, 2001 at 06:26:32 PM EST

I don't see the problem as the old stories scroll off the page - they are still out there. My reply linked to that one directly. I believe that no one knows they are there to begin with.

I have a few recommendations:

  • Improve the searching; make it easy to extract the "gist" of the story and use that to find the comparable stories BEFORE posting. This gives them a hint on where to find the discussion they are looking for.
  • If they don't get the hint, let someone w/ mojo redirect the discussion to the older chain and take it out of the submission queue (or make it a moderation option).
I'm not the only one who has referred this person to the Top 5 book articles. Others after me have done as well. I'd rather have one item to look up this kind of stuff instead of several spread across a wide area.

[ Parent ]
Website for Web Tutorials (2.16 / 6) (#6)
by retinaburn on Tue Feb 27, 2001 at 01:17:38 PM EST

Found W3Schools recently and found it a decent resource for all things webby. Except spiders, very little information on spiders.

I think that we are a young species that often fucks with things we don't know how to unfuck. -- Tycho

Correct link (3.66 / 3) (#14)
by Luke Francl on Tue Feb 27, 2001 at 03:00:42 PM EST

The correct link for that is http://www.w3schools.com/

[ Parent ]
For Algorithms I suggest... (4.00 / 8) (#10)
by SIGFPE on Tue Feb 27, 2001 at 01:34:26 PM EST

I learnt more useful stuff from this book than any other on computing:

ntroduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest

This book is packed solid with good algorithms. It works through them in painstakingly rigorous detail with excellent diagrams. Forget books on specific networking technologies or operating systems. What you learn from this book can be taken with you whether you're writing for your Palm Pilot or a supercomputer (apparently they still exist!). Understanding some of the techniques in here will expand your mind to new ways of doing things.

For Algorithms I suggest... (4.00 / 1) (#20)
by kagaku_ninja on Tue Feb 27, 2001 at 04:44:56 PM EST

It is right here on my shelf at work. Along with Algorithms in C++ by Sedgewick. Sedgwick was a student of Knuth, and did his disertation on the quicksort. That chapter alone saved my ass a few years ago when I needed to optimize a badly written quicksort function.

[ Parent ]
Excellent Reference (4.00 / 1) (#27)
by lucretius on Tue Feb 27, 2001 at 06:52:48 PM EST

This is definitely one to have as a reference book. The only reason I got it originally was because it was required course material for my algorithms class. Usually I sell most of my textbooks after the course is over, this one was a keeper. :)

Many developers would save themselves a lot of trouble by going over this book at least once. There's no use reinventing the wheel, and this book has them in all shapes and sizes.

[ Parent ]

DB (3.00 / 8) (#11)
by slaytanic killer on Tue Feb 27, 2001 at 01:40:10 PM EST

If you're curious about relational db fundamentals... I imagine CJ Date's book on the subject is the canonical tome... which reminds me, that book should go on CanonicalTomes.org.

Never struck me that Date was howling against the weaknesses of the SQL language; he was just rational and explained his prejudices.

A few picks (3.87 / 8) (#12)
by spacejack on Tue Feb 27, 2001 at 01:45:12 PM EST

Donald Knuth, Fundamental Algorithms - of course :) Had this particular hardcover copy since 1986 since my boss at a summer job I had in high school said "you must buy it".

Bjarne Stroustrup, The C++ Programming Language 3rd ed. - <jab>I wish Addison Wesley had published the Perl references since the O'Rielly books pale in comparison</jab>

Nicolai M. Josuttis, The C++ Standard Library - the definitive companion to the above book.

John Lakos, Large Scale C++ Software design - highly recommended to anyone writing anything of substantive size in C++, particularly if your code is to be used by others.

Woo, Neider, et al., OpenGL Programming Guide (the red book) - another excellent, highly readable book that teaches a fair amount of 3D theory in its own right.

Foley, Van Dam, et. al., Introduction to Computer Graphics - a slightly 'abridged' version of Computer Graphics, the industry standard textbook on the subject, but even so has more on the subject than my feeble brain will ever need.

Charles Petzold, Programming Windows 9*/NT. A trully excellent, quick starter and reference for the beast that is the Windows API.

Mike Cohn, Bryan Morgan et. al., Java Developer's Reference - Okay, don't get this, it's out of date now. However, for Java Applets back around 1996, you couldn't get any better. If I were to take up Java server programming I'd look for an update on this one. It's also big enough to kill someone with in case my place ever gets busted into.

Don Inman, Kurt Inman, Apple Machine Language - where my adventures into programming really started in earnest. Heh. Obviously not very useful today, but makes for highly entertaining reading.

Simon Singh, The Code Book - not really a reference, but if you want to be at all familiar with cryptography/cryptanalysis techniques that for better or worse have invaded our daily lives, it is highly recommended.

John Hall, Paul G. Sery, Linux for Dummies - a nice way to go if you're starting to use this OS from scratch.

Some of my favorites are... (3.60 / 5) (#13)
by Luke Francl on Tue Feb 27, 2001 at 02:59:11 PM EST

Some of my favorite programming books, in no particular order are:

  • Philip and Alex's Guide to Web Publishing by Philip Greenspun -- This book has it all: it's informative, it's funny, it's got wonderful photographs, and it helps you learn the fundamentals of database-backed web publishing. It's also available online (Greenspun says something like "Would you trust a book on web publishing that wasn't available online?")
  • Databases for Web Nerds by Philip Greenspun is a decent introduction to Oracle if you already know data modeling and some SQL. It doesn't go into too much depth, so after that you need to try to read the Oracle Manual which is just horrible.
  • The Structure and Interpretation of Computer Programs by Abelson and Sussman. I know everyone recommends this, but I'm doing it too because it is a great book. If you have a programming problem, it's probably in this book. I need to re-read it.
  • Advanced Perl Programming -- Great code examples in this book. I like it a lot better than Programming Perl, but if you're going to program in Perl, you should probably have it, at least as a reference.
  • MySQL by Paul DuBois -- I am not particularily fond of MySQL, but if you have to work with it, this is the book to get. Please, for the love of God, do not buy the O'Reilly MySQL and mSQL: it is a HORRIBLE book. One of O'Reilly's worst.
  • Thinking in Java by Bruce Eckel -- I had to learn Java last year for a school project, and this book was invaluable. It gets you up to speed quickly. It's also available online
I wish I could recommend some PHP books for you, but all of the ones I've read are really horrible. Professional PHP is OK, but the examples are so trivial (or stupid) you want to reach into the page and smack the authors silly. For example, in one instance they spend an entire chapter showing how to use PHP's XML functions to make a book catalogue which should have been in a database in the first place.

Greenspun not always right (from top5 discussion) (none / 0) (#41)
by Will Sargent on Sun Mar 04, 2001 at 04:59:46 PM EST

Greenspun was a great resource for removing some of the hype from web development, but unfortunately he replaced it with his own. To summarize: Oracle + Tcl + AOLServer is not a replacement for an application server. And the problem isn't a matter of PHYSICAL scalability -- if you can run Slashdot on a couple of perl scripts and some outsized hardware, you can run a simple enough web application on anything. If you've seen the box that his web site resides on, you realize how much he's hedging his bets. ArsTech capitalizes on this as much as it can, because most sites don't need anything really complicated. But trying to run big, complicated sites on Tcl scripts is just as dumb as trying to write a transaction processing system in Perl. It's a matter of language scalability (and interaction between designers, developers and business managers, but let's not get into that). Because he does write so much, readers assume he's famous and his opinions are strongly considered and respected. You are probably much better off in choosing Apache and a good template language (with business logic encapsulation if possible) like PHP, JSP or WebObjects rather than following his advice.
I'm pickle. I'm stealing your pregnant.
[ Parent ]
Structured Design (2.75 / 4) (#16)
by Wisp on Tue Feb 27, 2001 at 03:19:54 PM EST

By Edward Yourdon. That green book has pointed out to me that a lot of design debates are just being repeated. It is a refreshing (and retro too!) reminder that there are lots of ways to program, and not all of them are OO.

For numerical work (3.20 / 5) (#18)
by a humble lich on Tue Feb 27, 2001 at 03:28:31 PM EST

I am a big fan of Numerical Recipes . It doesn't contain everything, but they give good explanations of how various numerical algorithms work. I have heard complaints about the style of the code in the C version (in that it was written by fortan programers), but I think the usefulness of the book is in the text, not the coded examples.

Otherwise, I also though Numerical Methods that Work by Acton was well written, although the version I saw was quite old and I felt it was not as advanced as others.

Numerical Recipies home page (none / 0) (#37)
by tsangal on Thu Mar 01, 2001 at 12:12:14 AM EST

You can also download the books online in postscript and pdf formats through their home page.

[ Parent ]
Dejà Vu (3.62 / 8) (#19)
by Carnage4Life on Tue Feb 27, 2001 at 03:47:58 PM EST

I'm pretty sure I've seen a story like this recently on K5. Ahhh, here it is Top 5 Tech Books.

My Picks... (4.00 / 9) (#21)
by Tim C on Tue Feb 27, 2001 at 05:39:56 PM EST

For Unix-specific programming, Advanced Programming in the Unix Environment by Stevens. I won't evangelise about it (or I'll be moaned at again :-) ), but suffice to say it is an excellent book, if that's your thing.

An excellent book on cryptography is Applied Cryptography by Bruce Schneir(sp?) - goes into the history, fundamental concepts, different types of crypto, and comes with implementations of a few algorithms in C.

I've only just started getting into AI myself, but The Essence of Artificial Intelligence by Alison Cawsey (published by Prentice Hall, ISBN 0-13-571779-5) seems pretty good so far. It even comes with recommendations for further reading at the end of each chapter, complete with comments.

Hope that helps :-)

Tim C

for the webserver programmer... (3.00 / 6) (#22)
by rebelcool on Tue Feb 27, 2001 at 05:51:57 PM EST

Java Server Programming. It's got alot of authors, and includes everything you need to know about servers with java, from servlets to database connection pools to JSPs, Beans and the HTTP protocol itself.

COG. Build your own community. Free, easy, powerful. Demo site

Shameless Pluggin (3.87 / 8) (#23)
by Johnath on Tue Feb 27, 2001 at 05:56:40 PM EST

I just can't avoid this: :)

Go To CanonicalTomes.org! Its job is to catalog the essential books: of CS, and everything else. :)

I recently posted an MLP, to bring the site out into the visible world, and that succeeded to a great extent - the nicest part, as far as this discussion goes, is that most of the early contributors were CS geeks, so there are already some well developed categories there. By all means suggest em here too, it's what the poster's asking for, but hey, add em to CanonicalTomes too, that way it'll be easier for people to find in the future.



PS - I know it's Shameless, but it's topical shamelessness!

PPS - Thanks, slaytanic, for mentioning it too. :)

I only have two "references" that I regu (4.28 / 7) (#24)
by fink on Tue Feb 27, 2001 at 06:06:51 PM EST

... and neither of them are programming manuals, per se.

The two I'm talking about are Fatal Defect by Ivars Peterson, and every-scientist-or-engineer's-friend, Zen and the Art of Motorcycle Maintenance by Robert M. Pirsig.

Hear me out here, I know, they're a strange pair to have as "programming references". And I do have others, I just don't use them that much - usually, when I'm sitting at my computer, there's no room for a book, so I just tend to use whatever reference material I can get off the network/Internet. For my work as a student, books like Introduction to the PSP (Watts S. Humphrey), and Developing Linux Applications (Eric Harlow) fill my shelves. Sad thing is, other than come written assignment time, I rarely use them.

Why those pair of books?
Fatal Defect made it onto my shelf as a recommendation from one of my lecturers (who I get along with very well). Basically, if nothing else, it is a good book to keep my interest in good software engineering practices up, if only by scaring me each and every time I read it. Full of faults and failures, attributable to software, that have caused death and/or destruction, or at least the loss of lots of money. Therac-25, for example, is listed, and what caused it's failure.
Zen and the Art of Motorcycle Maintenance landed on my desk thanks in part to my father (an entomologist, so nothing IT related at all) and thanks in part to said lecturer from above. It is completely not related to IT issues - was written in the `70's - and apart from references to IBM's manual-writing style, mentions nothing of IT. However, it makes a good book come requirements-elicitation time, because if I read it, it makes me think far more critically than I normally do.

I highly recommend that you at least look at those pair - and, of course, all the other suggestions that people are putting together.

Sometimes the best books for a given line of employment are not exactly what you were expecting.


One of the most influential programming books (4.12 / 8) (#25)
by cezarg on Tue Feb 27, 2001 at 06:24:05 PM EST

is the Design Patterns from the Gang of Four. link. A must read if you're into OO programming. This book will save you years of mistakes.

Huzzah for design patterns! (5.00 / 2) (#29)
by spcmanspiff on Tue Feb 27, 2001 at 11:30:23 PM EST

Since I don't actually own the book, however, I find myself turning to online resources:

  • The Pattern Depot. Unfortunately, it isn't a huge reference site, just yet. It does, however, have really detailed write-ups.
  • The Design Patterns Wiki. Now this place is getting pretty big, and since it's a wiki site, y'all* can add your own favorite patterns if they aren't there.

    I'm not, however, a religious design-pattern using coder (not that they aren't excellent to keep in mind, especially during tricky architectural work), so there may be even better online references out there -- Anyone got any I missed?

    * (Yes, I said y'all. Deal with it.)

    [ Parent ]
  • DP for non-C++ people? (none / 0) (#39)
    by klamath on Sat Mar 03, 2001 at 09:20:15 PM EST

    I've taken a look at DP, and it seems very interesting. Unfortunately, most of the code examples are in C++ (and complex C++ at that) and I'm not really eager to learn C++ right now.

    Does anyone know of a similar text on design patterns with examples in another language? (Java, Lisp, etc). Or perhaps language-neutral?

    [ Parent ]

    DP for other languages (none / 0) (#40)
    by hading on Sun Mar 04, 2001 at 11:48:46 AM EST

    There is another book called DP: the Smalltalk Companion that has examples in (unsurprisingly) Smalltalk.

    There is also a page at Peter Norvig's site that explains why many of the patterns in DP are irrelevant or different for Lisp (or more generally many dynamic languages), and explores some that are.

    [ Parent ]
    a few i'd recommend (3.75 / 8) (#28)
    by charliex on Tue Feb 27, 2001 at 09:22:33 PM EST

    I work in 3d graphics and game programming so these are a few of the books i've relied on over the last 15 years.

    "Graphics Gems" its worth having them all but the first is the best.

    "Game Programming Gems", almost as good as GG's 1

    "The Computer Image", lots of good examples, previous watt books are good to.

    Jim blinns corner books, "Dirty Pixels" and "A trip down the graphics pipeline", fun reading.

    "Expert C Programming , Deep C secrets", interesting read.

    "Programming Pearls", Bently

    "Computational geometry in C", O'rourke

    "Mathematical Elements for Compuer Graphics" and "Prodedural Elements for Computer Graphics", great books, i have every revision, and its a fantastic reference.

    "Texturing and modelling", ebert

    "The pocket handbook of image processing algorithms in C", cool little black book all content no fluff.

    "Obfuscated C and other mysteries".

    "Computer Graphics", Hearne

    "Digital Image warping", Wolberg

    "Real time rendering", good reference book but i find myself using the web site more, but i bought this to support the author, eric haines, who is also the editor of the ray tracing news.

    "A programmers geometry", really really hard to get but a great book for non mathematical types. I keep trying to get the author adrian bowyer to release it as an ebook, he says he might soon. If anyone has an original copy of this I'd be interested in obtaining it form you mine got stolen, i'd like to re-add it to my collection.

    "an introduction to raytracing" , glassener, excellent book. a must get.

    "3D graphics programming, Game and Beyond". savchenko (though i'm biased because he's a friend and i get a mention)

    "Pocket Socket Guide"

    "Genetic Algorithms" , david goldberg

    "programmers technical reference, processors and coprocessors" robert hummel, for early intel. Shame
    he didn't keep it going.

    "peter nortons guide to the ibmpc" not so much use these days, but when dos was king, this was the book.

    Brian hook used to maintain a great book list, he may still.

    I avoid anything with super, fantasic, 24hrs etc in the title and so far its worked out great, oh and anything by lee adams (avoid that is).

    I do have most of the popular books, foley etc, but i don't use them since i find them unwieldy and long winded. I think they are aimed more at students than for reference.

    ACCU (3.66 / 3) (#30)
    by codemonkey_uk on Wed Feb 28, 2001 at 06:57:19 AM EST

    Like I've said many times before, in articles just like this one:

    An extensive, high quality, selection of book reviews (covering 90+ tech/programming subjects) by the Association of C & C++ Users can be found at the following URL:

    Over 2200 books are reviewed, with reviews indexed by subject, publisher, title, and author. This site also includes recomendations, and a search form.

    I hope this is of use.
    "The most savage controversies are those about matters as to which there is no good evidence either way." - Bertrand Russell
    Computer Approximations (2.75 / 4) (#31)
    by Bad Harmony on Wed Feb 28, 2001 at 09:28:44 AM EST

    Computer Approximations
    Hart et al
    ISBN 0-88275-642-7

    Need to write a math library? This is a good reference.

    5440' or Fight!

    I can't believe... (2.50 / 4) (#32)
    by beergut on Wed Feb 28, 2001 at 10:38:31 AM EST

    ... that nobody has mentioned this one yet:

    "The C Programming Language", by Brian Kernighan and Dennis Ritchie.

    The second edition covers ANSI C.

    i don't see any nanorobots or jet engines or laser holography or orbiting death satellites.
    i just see some orangutan throwing code-feces at a computer screen.

    -- indubitable

    For the Pythonistas (2.75 / 4) (#33)
    by YellowBook on Wed Feb 28, 2001 at 10:54:11 AM EST

    This is a bit language-specific, but I sleep with it under my pillow, and if you use Python, so should you: The Python Library Reference. One of Python's strengths is a very large and flexible standard library, but if you don't know what's in it, you can't take advantage of it. This book tells you everything there is to know about the library. It won't teach you the language, but once you have a handle on the syntax (tiny), this is the only Python book you'll need.

    It used to be possible to buy printed editions, but I don't think you can get the current edition. However, there are PS files and LaTeX source, so this, a trip to Kinkos, and a few dollars, will do the trick.

    One Word (3.00 / 3) (#34)
    by loaf on Wed Feb 28, 2001 at 11:20:09 AM EST


    My favorite books (4.50 / 2) (#35)
    by jwilkins on Wed Feb 28, 2001 at 12:55:13 PM EST

    The Practice of Programming - Kernighan and Pike

    This short book should be read by every programmer. It covers C, C++ and Java. I wish I had this book 10 years ago when I was starting out.

    Anything written by W. Richard Stevens

    If you program on unix platforms you should read his books. If you do network programming on unix platforms then you need his books.

    The Unix Programming Environment

    The original book by Kernighan and Pike. An enlightening piece of history

    Fundamental Algorithms (3.50 / 2) (#36)
    by Leimy on Wed Feb 28, 2001 at 08:41:53 PM EST

    Its pricey but Introduction to Algorithms by Cormen Leiserson and Rivest is killer! So is The C++ programming language by Bjarne Stroustrup. K&R C and Unix environment by Pike!
    Wrong numbers are never busy
    My own stack. (5.00 / 1) (#38)
    by Christopher Thomas on Thu Mar 01, 2001 at 01:10:52 AM EST

    Essential books:

    • "The C Programming Lanugage", by Kernighan and Ritchie.

      This works best as a reference manual, not a textbook. It's moderately useful, and you'll see references to it *everywhere*.

    • "Writing Solid Code", by Steve Maguire (Microsoft Press).

      You'll be tempted to dismiss this book out of hand on seeing the M-word. Don't. This is the single best reference on bulletproof coding _style_ that I've seen *anywhere*. I'm too lazy to use all of the tips presented in the book, but what I _do_ use has reduced my debugging pain immensely.

    Nonessential but useful books in my library:

    • "Algorithms and Data Structures in Computer Engineering", by E. Stewart Lee.

      This introductory book covers many useful algorithms, and has a fascinating section on parsers at the very end. Lots of fun.

    • "Programming Perl", by Larry Wall, Tom Christiansen, and Randal L. Schwartz.

      This is another reference book that you'll see references to *everywhere*. It's horrible as a tutorial and only mediocre as a reference manual, but if you're working with Perl, you'll need it to understand the advice/references given to you by more experienced programmers (and as a reference book, it will get used).

    • "Learning Perl/Tk", by Nancy Walsh.

      This is a very good tutorial/reference manual for the Tk widget library for Perl. If you want to throw together quick and dirty graphical applications in a hurry, already know Perl, and don't want to have to learn Tcl, this is a great book. Writing Tetris in Perl/Tk is an excellent training exercise (non-trivial but of reasonable scope).

    • "OpenGL Reference Manual", by the OpenGL Architecture Review Board (the book with the lego globe on the front).

      This is book contains an adequate tutorial on OpenGL and a decent reference manual. If you're interested in OpenGL-based graphics programming, it's quite useful to have on hand.

    • "Linux Device Drivers", by Alessandro Rubini.

      This is the classic reference manual on Linux device drivers. You'll see references to it everywhere. Unfortunately, the edition I have covers mainly 2.0, though the addendum at the back has enough 2.2 stuff to provide adequate coverage (actually 2.1 stuff, though it's almost identical to 2.2's driver programming interface).

      This was my bible when I was doing Linux driver work. You'll find it useful even today, though I certainly hope they publish a new edition soon. The principles covered in the book apply to driver writing under any unixoid operating system, though kernel functions available will of course vary.

    pmk's technical bookshelf (4.00 / 1) (#43)
    by pmk on Mon Mar 05, 2001 at 04:52:56 PM EST

    I've got bookshelves at both home and work. Books that live in both places (or which commute frequently) include:

    • Knuth vols. 1-3, first and latest editions
    • ANSI C 1989 and Fortran 90 language standards
    • The TeXbook
    • Numerical Recipes in (language of choice)
    • Instruction set manuals
    I'll also plug Hennessy and Patterson's Computer Architecture: A Quantitative Approach despite its flaws in its appendix on vector architectures, as well as the Perl book with the camel on the front, for those times when Perl is unavoidable.

    Books to which I do not refer, but do re-read regularly for the good of the soul, include Jon Bentley's Programming Pearls, The Elements of Computer Programming, and Strunk and White's The Elements of Style.

    The "Dragon Book" on compilers is woefully outdated and no longer to be recommended, alas. Andrew Appel's Modern Compiler Design in ML is the best current substitute.

    Modern Compiler Design? (none / 0) (#44)
    by srichman on Tue Mar 06, 2001 at 09:15:18 PM EST

    The "Dragon Book" on compilers is woefully outdated and no longer to be recommended, alas. Andrew Appel's Modern Compiler Design in ML is the best current substitute.

    I've used Appel's Modern Compiler Implementation in XXX books. I seem to recall there being alternative and more compendious versions a few years ago (a relationship akin to that of Foley, et al's Computer Graphics: Principles and Practice and Introduction to Computer Graphics); maybe these were called Modern Compiler Design. In any event, I think only the Modern Compiler Implementation books are being published now.

    And they're also available for C and Java (i.e., as implementation languages) if ML isn't your thang.

    [ Parent ]

    Implementation it is (none / 0) (#47)
    by pmk on Thu Mar 08, 2001 at 10:18:17 AM EST

    Yes, the title is Modern Compiler Implementation in ML.

    [ Parent ]
    Two more (none / 0) (#45)
    by elvstone on Wed Mar 07, 2001 at 09:22:38 AM EST

    Here is two books that I like:

    GNU C++ for Linux by Tom Swan.

    For all the
    newbies like me
    out there.

    Programming Perl by Larry Wall, Tom Christiansen, and Randal L. Schwartz.

    A really good book.
    Especially the latest

    Useful for me (none / 0) (#46)
    by ganymeda on Wed Mar 07, 2001 at 05:50:03 PM EST

    This is one of the most useful for me.

    Refactoring by Martin Fowler

    It was informative, written in a friendly sytle and is a useful compliment to the GOF's books.

    Essential programming references. | 47 comments (47 topical, 0 editorial, 0 hidden)
    Display: Sort:


    All trademarks and copyrights on this page are owned by their respective companies. The Rest 2000 - Present Kuro5hin.org Inc.
    See our legalese page for copyright policies. Please also read our Privacy Policy.
    Kuro5hin.org is powered by Free Software, including Apache, Perl, and Linux, The Scoop Engine that runs this site is freely available, under the terms of the GPL.
    Need some help? Email help@kuro5hin.org.
    My heart's the long stairs.

    Powered by Scoop create account | help/FAQ | mission | links | search | IRC | YOU choose the stories!