There are always great suggestions here at Perlmonks on what Perl references to use. I sometimes see pointers to other materials as well, often ones I'd already be quick to point out.

I like to point people to Knuth's books, W. Richard Stevens's books, The Practice of Programming by Kernighan and Pike, The Mythical Man Month by Brooks, the Aho, Sethi, and Ullman's "Dragon Book", Friedl's Mastering Regular Expressions, Reiman and Cooper's About Face, Schneier's texts about cryptography, Steele's Common Lisp, The Language, and Michael Scott's Programming Language Pragmatics depending upon what they are wanting to know and in what depth. I've found that the compiler books are good for more than just writing compilers, and the Lisp book is informative for those using other languages.

What I was wondering is what references, in book form or otherwise, do other monks depend upon or recommend to others which don't necessarily have anything to do with Perl but which could be helpful to people using Perl or to programmers in general?

Update: added ISBN links to specific books mentioned.

Christopher E. Stith
use coffee;

Replies are listed 'Best First'.
Re: Useful non-Perl-specific references
by Tomte (Priest) on Jun 24, 2003 at 22:18 UTC
    In addition to some of the books you mentioned, that are also on my "best of all time" list, a collection I don't want to live without:

    General Programming skills:

    • Abelson,Sussmann,Sussmann: Structure and Interpretation of Computer-Programms
    • Bertrand Myers works (not only OOP, but IMHO "best pratices" and good understanding even for non OO languages (at least imperative ones;))
    • GoF: Design Patterns
    • Stroustroup: The C++ Programming Language
    • Alexandrescu: Modern C++ Design (Beats the hell out of most fiction books in regards of excitement and thrill you get while reading it, C++ knowledge is a prerequisite, though)
    • Hall,Schwartz: Effective Perl Programming
    • Cross: Data Munging with Perl


    Hlade's Law:

    If you have a difficult task, give it to a lazy person --
    they will find an easier way to do it.

Re: Useful non-Perl-specific references
by Zaxo (Archbishop) on Jun 24, 2003 at 21:59 UTC

    Algorithms*, by Robert Sedgewick. There are newer editions - for C, or in several small volumes - but mine is the first edition, with examples in Pascal.

    * ISBN link, currently broken but included in hope.

    After Compline,

Re: Useful non-Perl-specific references
by gjb (Vicar) on Jun 25, 2003 at 07:53 UTC
Re: Useful non-Perl-specific references
by VSarkiss (Monsignor) on Jun 24, 2003 at 22:36 UTC

    One of my all-time favorites, besides the ones already mentioned, is Programming Pearls by Jon Bentley. Very compact, very useful, and very well written.

    Added isbn link.

Re: Useful non-Perl-specific references
by tilly (Archbishop) on Jun 25, 2003 at 03:48 UTC
    Hmmm. I suggest starting with Code Complete and virtually anything else by McConnell, then Peopleware, and once someone is through those, start getting more specific.
Re: Useful non-Perl-specific references
by YAFZ (Pilgrim) on Jun 25, 2003 at 07:55 UTC
    Two online books that I really appreciate and advise to any programmer using any reasonable (VB excluded :-P ) language:

    The Art of Unix Programming by Eric S. Raymond. This is a high quality book talking about the essential points, important design principles, etc.

    How to Be A Programmer by Robert L Read. Pretty nice document about the real life pragmatics of a programmer.
      Unix programming is more than historical UNIX (for ESR, make that hysterical UNIX). ESR completely forgets to talk about the ML class of languages and especially OCAML. But OCAML is French and must be too unamerican for ESR.

      People are very productive using this language and write very effective type-safe programs. The ML class of languages fares very well in programming contests.

      Perl6 will deal with (optional) types and I hope that it will get some good stuff from the other camel. Actively studying OCAML, I wonder how many Perl6 ideas originate from there or from some other common source. Example: the idea of a clean way to extend the grammar is evoked in this slide (the whole set is a must read for people familiar with C++ and Scheme).

      yapc::eu will include a lightning talk about OCAML.

      -- stefp
      Come to YAPC::Europe 2003 in Paris, 23-25 July 2003.

      Thanks for the pointers ;-) I've already studied Scheme a little bit and am aware of the beauty of functional programming languages. I'd give the reference to the Purple Book if it wasn't already mentioned by another member.

      I'm also interested in Objective Caml since the time I've learned it was used to design MLDonkey (I was impressed ;-). By the way the online Caml book from O´Reilly: Developing Applications with Objective Caml looks quite cool. I must find time to read and study it :)
Re: Useful non-Perl-specific references
by derby (Abbot) on Jun 25, 2003 at 12:09 UTC
Re: Useful non-Perl-specific references
by Abigail-II (Bishop) on Jun 25, 2003 at 00:44 UTC
    Well, you already mentioned Knuth, Stevens, Aho, Seti and Ullman - authors I also like to refer to. I also like to refer to Introduction to Algorithms from Cormen, Leiserson and Rivest. Some other books and authors I like to refer to have already been mentioned by others.


Re: Useful non-Perl-specific references
by chunlou (Curate) on Jun 25, 2003 at 01:50 UTC
    If you're ever in a "managerial" position (such as being a team leader or project manager), "The New Economics" by W. Edwards Deming is a good book.
Re: Useful non-Perl-specific references
by dreadpiratepeter (Priest) on Jun 25, 2003 at 14:08 UTC
    "Tog on Interface", by Bruce Toggizinni(sp?).
    A great fun-to-read book on all things Human Factors
    The McConnell stuff, or course.
    O'Reilly's 2nd Edition "Dynamic HTML: The Complete Reference" would be a bargain at $1000. Anyone doing web work needs to have this book. A tag by tag (and attribute by attribute) guide to every aspect of HTML, the DOM, CSS, JavaScript and Events, including what works on what version of what browser at the attribute level.
    "The Phantom Tollbooth", by Norman Juster. It has nothing to do with coding, but you shouldn't be allowed to be an adult without having read it.

    UPDATE: fixed 4th to 2nd in the O'Reilly book

    "Ted Nugent called. He wants his shirt back."
      Not to be a nay-sayer, but are you coming from the future? 'Cause Dynamic HTML: The Definitive Reference is currently only in the second edition, not fourth (O'Reilly listing); it is an excellent work, however, and I, too, highly recommend it for anyone doing serious web development.

      The Phantom Tollbooth is one of my alltime favorites. Another one I'd recommend is Flatland by Edwin Abbot; this wonderful book taught me to never accept my own perspective as the penultimate.

        oops, 2nd

        "Worry is like a rocking chair. It gives you something to do, but it doesn't get you anywhere."
Re: Useful non-Perl-specific references
by hsmyers (Canon) on Jun 25, 2003 at 14:27 UTC
    Leave us not forget:
    • Tom DeMarco. Structured Analysis and System Specification. Prentice-Hall, Englewood Cliffs, NJ, 1979.
    • Edward Yourdon. Modern Structured Analysis. Prentice-Hall, Englewood Cliffs, NJ, 1989.
    • Gerald M. Weinberg. The Psychology of Computer Programming: Silver Anniversary Edition


    "Never try to teach a pig to wastes your time and it annoys the pig."
Re: Useful non-Perl-specific references
by Elian (Parson) on Jun 25, 2003 at 16:17 UTC
    I've found that "The Mythical Man-Month", "The Inmates Are Running the Asylum", "The Limits of Software", and "Understanding Comics" (Sorry, no links handy) are all very good. And yes, I'm serious about "Understanding Comics".

    I'd put them ahead of the programming references that everyone's thrown out so far. You already know how to program to some extent--these books don't tell you how to program, they tell you how to design, what to program, what not to program, and how some of the asethetics and art behind programming (and behind creation in general) work.

    Or, to put it another way, you already know how to create. These help you figure out what to create, and how creation works.

Re: Useful non-Perl-specific references
by allolex (Curate) on Jun 25, 2003 at 19:44 UTC
Re: Useful non-Perl-specific references
by artist (Parson) on Jun 25, 2003 at 18:01 UTC
Re: Useful non-Perl-specific references
by Elian (Parson) on Jun 25, 2003 at 20:22 UTC
    I also find Alice in Wonderland and Tao Te Ching are useful books for programmers to read. Once again before most of the programming references people have posted.

    One book I see on your list that I would personally recommend against reading is the Dragon Book--it's a book that's a classic because it was the first one of note in the field and everyone knows of it, not because it's actually any good. Most of the other compiler books I've come across are better, and arguably you'd do better making it up as you went along.

      Does that apply, in your opinion, to the second Dragon as well as the first? I'm not fond of the first myself. The second isn't fabulous, but I consider it to be quite good. I, however, am not an expert in the field of writing compilers by any stretch. I've written compilers, but admittedly not that well. I am very interested in the pros and cons of any of the texts and references mentioned in this thread.

      Christopher E. Stith
      use coffee;
        That is my opinion on the 2nd edition Dragon. :) I don't have a first edition of it, but all the other compiler books in my collection are better than the Dragon. (Arguably the copy of the Tao Te Ching I have is a better compiler book than the Dragon...)
Re: Useful non-Perl-specific references
by adrianh (Chancellor) on Jun 26, 2003 at 13:43 UTC
Re: Useful non-Perl-specific references
by thoglette (Scribe) on Jun 27, 2003 at 08:48 UTC

    Practical stuff:

  • McConnell's "Code Complete" etc
  • Knuth or similar

    Pointy stuff:

  • Demarco's "Peopleware"
  • McCarthy's "Dynamics of Software Development"

    Hard stuff:

  • Watt's Humphreys' "A discipline for software engineering"

    When the going gets hard stuff:

  • Yourdon's "Death March"
  • Anything by Stephen Covey
  • Anything by Scott Adams