Tuesday, December 8, 2009

Books for 'Advanced' Programmers - Stack Overflow

Books for 'Advanced' Programmers - Stack Overflow

         
most recent 30 from stackoverflow.com

       

     

     
Books for 'Advanced' Programmers
2009-09-16 13:11

Do advanced programmers read books?


There is a stage where you are no longer a 'beginner', yet you still want to learn things (Actionscript is on my list, currently).  I've been looking for books which do not start from the  'How to install' or 'How to configure IDE for that' phase, but which assume the reader has more knowledge and has reached a 'can-do-it-yourself' level.


Do you have any good book recommendations?
Answer by Technical Bard for Books for 'Advanced' Programmers
2008-12-25 20:05

Lisp in Small Pieces by Quinniec


The Art of the MetaObject Protocol
Answer by S.Lott for Books for 'Advanced' Programmers
2008-12-26 05:24

The Art of Computer Programming by Knuth.


Introduction to Algorithms by Cormen, Lieserson, Rivest and Stein.
Answer by Eric Scrivner for Books for 'Advanced' Programmers
2008-12-26 14:07

If you're advanced enough there comes a point where "How To" books are no longer interesting because they are either monotonous and assume no programming background or unnecessary because they teach you things you could teach yourself with a decent web browser and a days worth of googling.  So why not try some theory?  Here's what I've enjoyed:


Algorithms by Dasgupta, Papadimitriou and Vazirani - A good introduction to algorithms and algorithmic analysis.  It will help you analyze your own work, show you timeless optimization techniques that aren't necessarily obvious and give you a solid foundation for choosing algorithms for your own work.


Discrete Mathematics and Its Applications by Kenneth Rosen - An introduction to the mathematics behind most of computer science.


The Pragmatic Programmer by Andy Hunt and Dave Thomas - How to do your job as a programmer well.


Refactoring: Improving The Design of Existing Code by Fowler, Beck, Opdyke and Roberts - What to do with the code you've written before you finished this book.


And these are just scratching the surface, there's plenty out there for the more advanced programmer.


EDIT: You can find a pre-release version of the first book, Algorithms, released by the authors for free here.
Answer by Chii for Books for 'Advanced' Programmers
2008-12-25 20:44

If you are an enterprise programmer, take a flip through Martin Fowler's Patterns of Enterprise Application Architecture .


Its not light reading unfortunately (unlike pragmatic programmer mentioned above), but it does have some goodies in there. Though most enterprise frameworks these days basically does what that book says anyway (ala hibernate, spring, etc in java world).


Another one that was recommended to me (but I havent had time to read yet) is Java Concurrency in Practice. Its apparently the book for concurrent programming advice.
Answer by Kire Haglin for Books for 'Advanced' Programmers
2008-12-25 20:47

Effective Java


Clean Code
Answer by Colin for Books for 'Advanced' Programmers
2008-12-26 06:32


    *

      Feynman Lectures on Computation

    *

      The C++ Programming Language by
      Stroustrup

    *

      Compilers (the Dragon Book) by Aho,
      Sethi, Ullman

    *

      Lex & Yacc by Levin, Mason,
      Brown



These are my favorite advanced programming books. They are sorted by inverse specificity.
Answer by Jonathan Leffler for Books for 'Advanced' Programmers
2008-12-29 22:10

To the extent that I'm an advanced programmer (other than in age, that is), I read books.  I doubt if I'm alone in doing so.  Indeed, IMO, any serious programmer is continually learning, and much of that learning will come through reading books.


However, as Eric Scrivner says (and, indeed, as the questioner says), as you become a more experienced programmer, the books you read are different.  Books that would be impossibly dense for someone still learning a language (for example, Harbison and Steele's "C: A Reference Manual") become useful as a reference.  It would be tough to learn the language from the book; it is an excellent source of detailed information, though.  If (when) you become a beginner again (learning a new language, for example), you may need to fall back onto books more nearly suited for beginners.  However, you can often cope with more advanced books than those that someone who is not only learning a particular language but also learning how to program at all could cope with.


Many of the interesting books are extremely specialized.  For example, "Calendrical Calculations, 3rd Edn" by Dershowitz and Reingold is an incredibly useful book - if you happen to be dealing with calendars.  If you have no interest in or need of handling multiple calendar systems, the book is of zero use to you.  Another book in a similar vein is "Concurrency Control and Recovery in Database Systems" by Bernstein, Hadzilacos and Goodman; another is "Time Granularities in Databases, Data Mining and Temporal Reasoning" by Bettini, Jajodia and Wang.  Very useful if that's what you need; useless (except for insomniacs) if you don't need them.


However, there are a lot of books that are only tangentially about a specific programming language or system, but that help you program better.  Others have mentioned "The Pragmatic Programmer", for instance, and "Clean Code" has been cited while I'm typing.


I'd add some more to the list:



    * Knuth "Literate Programming"

    * Myers "The Art of Software Testing, 1st Edn" ("2nd Edn" - more expensive).

    * Hoffman and Weiss "Software Fundamentals" (collected and annotated papers of David Parnas - very interesting)

    * Raymond "The Art of UNIX Programming"

    * Kernighan and Pike "The Practice of Programming"

    * Feathers "Working Effectively with Legacy Code"

    * Beck "Test Driven Development"



These all, in different ways, take you beyond the basics in a largely language-agnostic way (and largely platform-agnostic too - though there's a strong Unix/Linux bias in my preferences and therefore reading materials).
Answer by melaos for Books for 'Advanced' Programmers
2008-12-25 23:33

Pragmatic Thinking and Learning will help you narrow the gap to reach rockstar-dom ;)


And Code Complete. contains basic to advanced stuff, a good reference to keep at your desk.


Plus Understanding the Linux Kernel - if you're really hardcore.
Answer by Norman Ramsey for Books for 'Advanced' Programmers
2008-12-25 23:26

Many of the books suggested I would tag as more for the intermediate programmer.  Some good old intermediate-level books not already mentioned:



    * Programming Pearls by Jon Bentley

    * The Unix Programming Environment by Kernighan and Pike

    * Software Tools in Pascal by Kernighan and Plauger



And a couple of "advanced" titles:



    * Essays in Computing Science by C. A. R. Hoare (actually a mix of material at all levels)

    * A Discipline of Programming by Edsger Dijkstra (for the hard-core formalist)

Answer by Dean Madden for Books for 'Advanced' Programmers
2008-12-26 00:38

I'd recommend the Wrox Professional books which presume a level of prior experience.
Answer by Jason S for Books for 'Advanced' Programmers
2008-12-26 07:22


    * Design Patterns by Gamma, Helm, Johnson, Vlissides. (good advanced object-oriented techniques)

    * Algorithms by Cormen, Leiserson, Rivest, Stein. Covers most of the common data structures and algorithms, and big-O notation & all that.

    * Numerical Recipes by Press, Teukolsky, Vetterling, Flannery. Good for numerical algorithms (approximating functions, solving roots of equations, numerical integration, etc.) -- not something you normally need to deal with, but if you do then this is a good place to start.

    * Structure and Interpretation of Computer Programs by Abelson and Sussman. It's also available online. This uses the Scheme language (similar to LISP but simpler) to discuss algorithms from a more abstract approach than found in most books. It gives some interesting perspectives, though, that you won't find many other places.

Answer by dr. evil for Books for 'Advanced' Programmers
2008-12-26 06:46

This is not great answer to your question but just wanted to point out I think it's a good idea to read books like http://www.mindhacks.com/book/ instead of focusing only technical books. Books about "concentration", "reading faster", "learning methodologies" and "problem solving".
Answer by joel.neely for Books for 'Advanced' Programmers
2008-12-26 09:41

My answer would depend on how you define "advanced". Some of my professional colleagues use that term to indicate an increasing degree of specialization, while others use it to indicate mastery of a broader set of skills and perspectives. If you mean the first, I can't answer without knowing the area(s) of interest. (So I'll assume you mean the second, and forge ahead. ;-)


In no particular order, I'd recommend:


Effective Java, second edition, Joshua Bloch, 0-321-35668-3 : This is the only language-specific book on my list, but a careful (advanced) reader will also gain insights which apply to other languages.


Test Driven, Lasse Koskela, 1932394850 : Although the examples are in Java (he had to pick some language), the principles apply to a wide range of languages, and are carefully explained.


Refactoring to Patterns, Joshua Kerievsky, 0-321-21335-1 : Tying together two of the most important concepts in recent OO development, this book richly illustrates the process of continuous improvement of code.


Working Effectively with Legacy Code, Michael C. Feathers, 0-13-117705-2 : Written for the majority of us (those who don't get to spend all their time creating beautiful new ivory towers, but have to maintain and evolve existing systems without breaking them), this book has a wealth of techniques for making code more manageable, reliable, and work-with-able. Examples are given in Java, C++, C, and C#.


Test-Driven Development: A Practical Guide, David Astels, 0-13-101649-0 : Covers refactoring, programming by intention, mock objects, and other techniques, including frameworks for C++, C#, Python, VB6, Ruby, Java, and Smalltalk.


Refactoring: Improving the Design of Existing Code, Martin Fowler, 0-201-48567-2 : The classic book on taking poorly designed code and making it better without breaking it.


Prefactoring: Extreme Abstraction, Extreme Separation, Extreme Readability, Ken Pugh, 0-596-00874-0 : No, the title is not a typo! The author focuses on taking what we learn from maintenance of existing code as a basis for doing better design the next time around. The guidelines and principles are illustrated in detail with sample code.


Beautiful Code: Leading Programmers Explain How They Think, Andy Oram & Greg Wilson, eds., 0-596-51004-7 : A thought-provoking set of essays from a wide range of experts and accomplished practitioners.


The Best Software Writing: I, Joel Spolsky, ed., 1-59059-500-9 : Another collection of essays that will make you think, framed in Spolsky's characteristic style (meaning that you'll either love it or hate it! ;-).


Purely Functional Data Structures, Chris Okasaki, 0-521-66350-4 : Reading this book almost amounts to a graduate-level class in how to solve really hard programming challenges in an elegant style.


How to Measure Anything: Finding the Value of Intangibles in Business, Douglas W. Hubbard, 978-0-470-11012-6 : Yeah, we all hate estimating. Get over it. Whether estimating running characteristics of a program, development time, or ROI of a new piece of code, it's not as hard as we all think it is. This book turns your head sideways for a better perspective on the classic back-of-the-envelope.


YMMV, but I found all of these books worthwhile additions to my (already bulging) bookshelf.
Answer by Anonymous for Books for 'Advanced' Programmers
2008-12-26 09:56

This one is not a book, but I'd say it's a big high-quality collection of computer related knowledge.


http://c2.com/cgi/wiki?WikiList
Answer by Echiban for Books for 'Advanced' Programmers
2008-12-26 10:11

I would like to throw in McConnell's Code Complete to the mix (one of my absolute favorites). Also see Scott Hanselman's book list.
Answer by Mike Dunlavey for Books for 'Advanced' Programmers
2008-12-30 19:57

Any of Marvin Minsky's books:


Computation, Finite and Infinite Machines


Semantic Information Processing


Society of Mind


Perceptrons
Answer by maurycy for Books for 'Advanced' Programmers
2008-12-26 10:40

Paradoxically, after approaching some level of proficiency in programming I found myself learning much more from math books than programming ones.


What I believe is a crucial skill for every programmer is ability to easily handle a lot of abstractions and strip them easily into simpler concepts. Nothing beats math in this.
Answer by RogerV for Books for 'Advanced' Programmers
2008-12-26 10:40

The Definitive ANTLR Reference


Every advanced-level developer should be able to write language parsers.
Answer by Fortyrunner for Books for 'Advanced' Programmers
2008-12-29 16:31

In addition to the others:



   1. Beautiful Code

   2. List item

   3. Unix Power Tools

   4. SQL For Smarties

   5. Practice of Programming (K & P)

   6. Joel on Software

Answer by Vinay for Books for 'Advanced' Programmers
2008-12-29 17:16


   1. Mythical man Month

   2. Essential COM by Don Box, if you are a COM Programmer

   3. Art of Computer Programming

   4. SICP

Answer by Nick Gerakines for Books for 'Advanced' Programmers
2008-12-30 18:22

I strongly suggest "The Algorithm Design Manual" by Steven S. Skiena. It's a great read that covers a wide variety of algorithms and contains many helpful examples.
Answer by jcollum for Books for 'Advanced' Programmers
2008-12-30 18:31

The Martian Principles It's very short and very much to the point. Teaches you a lot of the things that you can do wrong when building an application. Many of the books on this list are advanced, but they're also not real practical. Martian Principles is something you can use every day to help you build more bullet-proof code.
Answer by Kendall Helmstetter Gelner for Books for 'Advanced' Programmers
2008-12-30 19:07

"The Design and Evolution of C++" is a great thing to read (good even if you do not know C++ well).


I also second "SQL for Smarties".
Answer by KOkon for Books for 'Advanced' Programmers
2009-01-21 17:59

There are some books out there that's more abstract, but it should be part of your bookshelf.



    * The Mythical Man Month

    * Code Complete 2

    * Peopleware: Productive Projects and Teams

    * Pragmatic Programmer: From Journeyman to Master



And for more technical, generic stuff:



    * Design Pattern

    * Structure and Interpretation of Computer Programs

    * Introduction to Algorithms

    * Programming Pearls



We never stop learning. When we do, we're dead.
Answer by Sean McMillan for Books for 'Advanced' Programmers
2009-09-16 13:11

I would think someone would have mentioned The Lions Book by now.

         

most recent 30 from stackoverflow.com

        

      

      

Books for 'Advanced' Programmers

2009-09-16 13:11

Do advanced programmers read books?

There is a stage where you are no longer a 'beginner', yet you still want to learn things (Actionscript is on my list, currently).  I've been looking for books which do not start from the  'How to install' or 'How to configure IDE for that' phase, but which assume the reader has more knowledge and has reached a 'can-do-it-yourself' level.

Do you have any good book recommendations?

Answer by Technical Bard for Books for 'Advanced' Programmers

2008-12-25 20:05

Lisp in Small Pieces by Quinniec

The Art of the MetaObject Protocol

Answer by S.Lott for Books for 'Advanced' Programmers

2008-12-26 05:24

The Art of Computer Programming by Knuth.

Introduction to Algorithms by Cormen, Lieserson, Rivest and Stein.

Answer by Eric Scrivner for Books for 'Advanced' Programmers

2008-12-26 14:07

If you're advanced enough there comes a point where "How To" books are no longer interesting because they are either monotonous and assume no programming background or unnecessary because they teach you things you could teach yourself with a decent web browser and a days worth of googling.  So why not try some theory?  Here's what I've enjoyed:

Algorithms by Dasgupta, Papadimitriou and Vazirani - A good introduction to algorithms and algorithmic analysis.  It will help you analyze your own work, show you timeless optimization techniques that aren't necessarily obvious and give you a solid foundation for choosing algorithms for your own work.

Discrete Mathematics and Its Applications by Kenneth Rosen - An introduction to the mathematics behind most of computer science.

The Pragmatic Programmer by Andy Hunt and Dave Thomas - How to do your job as a programmer well.

Refactoring: Improving The Design of Existing Code by Fowler, Beck, Opdyke and Roberts - What to do with the code you've written before you finished this book.

And these are just scratching the surface, there's plenty out there for the more advanced programmer.

EDIT: You can find a pre-release version of the first book, Algorithms, released by the authors for free here.

Answer by Chii for Books for 'Advanced' Programmers

2008-12-25 20:44

If you are an enterprise programmer, take a flip through Martin Fowler's Patterns of Enterprise Application Architecture .

Its not light reading unfortunately (unlike pragmatic programmer mentioned above), but it does have some goodies in there. Though most enterprise frameworks these days basically does what that book says anyway (ala hibernate, spring, etc in java world).

Another one that was recommended to me (but I havent had time to read yet) is Java Concurrency in Practice. Its apparently the book for concurrent programming advice.

Answer by Kire Haglin for Books for 'Advanced' Programmers

2008-12-25 20:47

Effective Java

Clean Code

Answer by Colin for Books for 'Advanced' Programmers

2008-12-26 06:32

    *

      Feynman Lectures on Computation

    *

      The C++ Programming Language by

      Stroustrup

    *

      Compilers (the Dragon Book) by Aho,

      Sethi, Ullman

    *

      Lex & Yacc by Levin, Mason,

      Brown



These are my favorite advanced programming books. They are sorted by inverse specificity.

Answer by Jonathan Leffler for Books for 'Advanced' Programmers

2008-12-29 22:10

To the extent that I'm an advanced programmer (other than in age, that is), I read books.  I doubt if I'm alone in doing so.  Indeed, IMO, any serious programmer is continually learning, and much of that learning will come through reading books.

However, as Eric Scrivner says (and, indeed, as the questioner says), as you become a more experienced programmer, the books you read are different.  Books that would be impossibly dense for someone still learning a language (for example, Harbison and Steele's "C: A Reference Manual") become useful as a reference.  It would be tough to learn the language from the book; it is an excellent source of detailed information, though.  If (when) you become a beginner again (learning a new language, for example), you may need to fall back onto books more nearly suited for beginners.  However, you can often cope with more advanced books than those that someone who is not only learning a particular language but also learning how to program at all could cope with.

Many of the interesting books are extremely specialized.  For example, "Calendrical Calculations, 3rd Edn" by Dershowitz and Reingold is an incredibly useful book - if you happen to be dealing with calendars.  If you have no interest in or need of handling multiple calendar systems, the book is of zero use to you.  Another book in a similar vein is "Concurrency Control and Recovery in Database Systems" by Bernstein, Hadzilacos and Goodman; another is "Time Granularities in Databases, Data Mining and Temporal Reasoning" by Bettini, Jajodia and Wang.  Very useful if that's what you need; useless (except for insomniacs) if you don't need them.

However, there are a lot of books that are only tangentially about a specific programming language or system, but that help you program better.  Others have mentioned "The Pragmatic Programmer", for instance, and "Clean Code" has been cited while I'm typing.

I'd add some more to the list:



    * Knuth "Literate Programming"

    * Myers "The Art of Software Testing, 1st Edn" ("2nd Edn" - more expensive).

    * Hoffman and Weiss "Software Fundamentals" (collected and annotated papers of David Parnas - very interesting)

    * Raymond "The Art of UNIX Programming"

    * Kernighan and Pike "The Practice of Programming"

    * Feathers "Working Effectively with Legacy Code"

    * Beck "Test Driven Development"



These all, in different ways, take you beyond the basics in a largely language-agnostic way (and largely platform-agnostic too - though there's a strong Unix/Linux bias in my preferences and therefore reading materials).

Answer by melaos for Books for 'Advanced' Programmers

2008-12-25 23:33

Pragmatic Thinking and Learning will help you narrow the gap to reach rockstar-dom ;)

And Code Complete. contains basic to advanced stuff, a good reference to keep at your desk.

Plus Understanding the Linux Kernel - if you're really hardcore.

Answer by Norman Ramsey for Books for 'Advanced' Programmers

2008-12-25 23:26

Many of the books suggested I would tag as more for the intermediate programmer.  Some good old intermediate-level books not already mentioned:



    * Programming Pearls by Jon Bentley

    * The Unix Programming Environment by Kernighan and Pike

    * Software Tools in Pascal by Kernighan and Plauger



And a couple of "advanced" titles:



    * Essays in Computing Science by C. A. R. Hoare (actually a mix of material at all levels)

    * A Discipline of Programming by Edsger Dijkstra (for the hard-core formalist)

Answer by Dean Madden for Books for 'Advanced' Programmers

2008-12-26 00:38

I'd recommend the Wrox Professional books which presume a level of prior experience.

Answer by Jason S for Books for 'Advanced' Programmers

2008-12-26 07:22

    * Design Patterns by Gamma, Helm, Johnson, Vlissides. (good advanced object-oriented techniques)

    * Algorithms by Cormen, Leiserson, Rivest, Stein. Covers most of the common data structures and algorithms, and big-O notation & all that.

    * Numerical Recipes by Press, Teukolsky, Vetterling, Flannery. Good for numerical algorithms (approximating functions, solving roots of equations, numerical integration, etc.) -- not something you normally need to deal with, but if you do then this is a good place to start.

    * Structure and Interpretation of Computer Programs by Abelson and Sussman. It's also available online. This uses the Scheme language (similar to LISP but simpler) to discuss algorithms from a more abstract approach than found in most books. It gives some interesting perspectives, though, that you won't find many other places.

Answer by dr. evil for Books for 'Advanced' Programmers

2008-12-26 06:46

This is not great answer to your question but just wanted to point out I think it's a good idea to read books like http://www.mindhacks.com/book/ instead of focusing only technical books. Books about "concentration", "reading faster", "learning methodologies" and "problem solving".

Answer by joel.neely for Books for 'Advanced' Programmers

2008-12-26 09:41

My answer would depend on how you define "advanced". Some of my professional colleagues use that term to indicate an increasing degree of specialization, while others use it to indicate mastery of a broader set of skills and perspectives. If you mean the first, I can't answer without knowing the area(s) of interest. (So I'll assume you mean the second, and forge ahead. ;-)

In no particular order, I'd recommend:

Effective Java, second edition, Joshua Bloch, 0-321-35668-3 : This is the only language-specific book on my list, but a careful (advanced) reader will also gain insights which apply to other languages.

Test Driven, Lasse Koskela, 1932394850 : Although the examples are in Java (he had to pick some language), the principles apply to a wide range of languages, and are carefully explained.

Refactoring to Patterns, Joshua Kerievsky, 0-321-21335-1 : Tying together two of the most important concepts in recent OO development, this book richly illustrates the process of continuous improvement of code.

Working Effectively with Legacy Code, Michael C. Feathers, 0-13-117705-2 : Written for the majority of us (those who don't get to spend all their time creating beautiful new ivory towers, but have to maintain and evolve existing systems without breaking them), this book has a wealth of techniques for making code more manageable, reliable, and work-with-able. Examples are given in Java, C++, C, and C#.

Test-Driven Development: A Practical Guide, David Astels, 0-13-101649-0 : Covers refactoring, programming by intention, mock objects, and other techniques, including frameworks for C++, C#, Python, VB6, Ruby, Java, and Smalltalk.

Refactoring: Improving the Design of Existing Code, Martin Fowler, 0-201-48567-2 : The classic book on taking poorly designed code and making it better without breaking it.

Prefactoring: Extreme Abstraction, Extreme Separation, Extreme Readability, Ken Pugh, 0-596-00874-0 : No, the title is not a typo! The author focuses on taking what we learn from maintenance of existing code as a basis for doing better design the next time around. The guidelines and principles are illustrated in detail with sample code.

Beautiful Code: Leading Programmers Explain How They Think, Andy Oram & Greg Wilson, eds., 0-596-51004-7 : A thought-provoking set of essays from a wide range of experts and accomplished practitioners.

The Best Software Writing: I, Joel Spolsky, ed., 1-59059-500-9 : Another collection of essays that will make you think, framed in Spolsky's characteristic style (meaning that you'll either love it or hate it! ;-).

Purely Functional Data Structures, Chris Okasaki, 0-521-66350-4 : Reading this book almost amounts to a graduate-level class in how to solve really hard programming challenges in an elegant style.

How to Measure Anything: Finding the Value of Intangibles in Business, Douglas W. Hubbard, 978-0-470-11012-6 : Yeah, we all hate estimating. Get over it. Whether estimating running characteristics of a program, development time, or ROI of a new piece of code, it's not as hard as we all think it is. This book turns your head sideways for a better perspective on the classic back-of-the-envelope.

YMMV, but I found all of these books worthwhile additions to my (already bulging) bookshelf.

Answer by Anonymous for Books for 'Advanced' Programmers

2008-12-26 09:56

This one is not a book, but I'd say it's a big high-quality collection of computer related knowledge.

http://c2.com/cgi/wiki?WikiList

Answer by Echiban for Books for 'Advanced' Programmers

2008-12-26 10:11

I would like to throw in McConnell's Code Complete to the mix (one of my absolute favorites). Also see Scott Hanselman's book list.

Answer by Mike Dunlavey for Books for 'Advanced' Programmers

2008-12-30 19:57

Any of Marvin Minsky's books:

Computation, Finite and Infinite Machines

Semantic Information Processing

Society of Mind

Perceptrons

Answer by maurycy for Books for 'Advanced' Programmers

2008-12-26 10:40

Paradoxically, after approaching some level of proficiency in programming I found myself learning much more from math books than programming ones.

What I believe is a crucial skill for every programmer is ability to easily handle a lot of abstractions and strip them easily into simpler concepts. Nothing beats math in this.

Answer by RogerV for Books for 'Advanced' Programmers

2008-12-26 10:40

The Definitive ANTLR Reference

Every advanced-level developer should be able to write language parsers.

Answer by Fortyrunner for Books for 'Advanced' Programmers

2008-12-29 16:31

In addition to the others:



   1. Beautiful Code

   2. List item

   3. Unix Power Tools

   4. SQL For Smarties

   5. Practice of Programming (K & P)

   6. Joel on Software

Answer by Vinay for Books for 'Advanced' Programmers

2008-12-29 17:16

   1. Mythical man Month

   2. Essential COM by Don Box, if you are a COM Programmer

   3. Art of Computer Programming

   4. SICP

Answer by Nick Gerakines for Books for 'Advanced' Programmers

2008-12-30 18:22

I strongly suggest "The Algorithm Design Manual" by Steven S. Skiena. It's a great read that covers a wide variety of algorithms and contains many helpful examples.

Answer by jcollum for Books for 'Advanced' Programmers

2008-12-30 18:31

The Martian Principles It's very short and very much to the point. Teaches you a lot of the things that you can do wrong when building an application. Many of the books on this list are advanced, but they're also not real practical. Martian Principles is something you can use every day to help you build more bullet-proof code.

Answer by Kendall Helmstetter Gelner for Books for 'Advanced' Programmers

2008-12-30 19:07

"The Design and Evolution of C++" is a great thing to read (good even if you do not know C++ well).

I also second "SQL for Smarties".

Answer by KOkon for Books for 'Advanced' Programmers

2009-01-21 17:59

There are some books out there that's more abstract, but it should be part of your bookshelf.



    * The Mythical Man Month

    * Code Complete 2

    * Peopleware: Productive Projects and Teams

    * Pragmatic Programmer: From Journeyman to Master



And for more technical, generic stuff:



    * Design Pattern

    * Structure and Interpretation of Computer Programs

    * Introduction to Algorithms

    * Programming Pearls



We never stop learning. When we do, we're dead.

Answer by Sean McMillan for Books for 'Advanced' Programmers

2009-09-16 13:11

I would think someone would have mentioned The Lions Book by now.

No comments: