Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
100% found this document useful (1 vote)
120 views

100 Most Influential Programming Books According To Stack Overflow

The document lists Code Complete (2nd Ed) by Steve McConnell as the most influential programming book according to Stack Overflow users. It provides a quote from Joel describing the book as focusing on good programming practices and clean code. Several other influential books are also mentioned and described in 1-3 sentences, including The Pragmatic Programmer, Structure and Interpretation of Computer Programs, The C Programming Language, Introduction to Algorithms, Design Patterns, Refactoring, The Mythical Man-Month, Clean Code, Effective C++, More Effective C++, Working Effectively with Legacy Code, and Programming Pearls.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
120 views

100 Most Influential Programming Books According To Stack Overflow

The document lists Code Complete (2nd Ed) by Steve McConnell as the most influential programming book according to Stack Overflow users. It provides a quote from Joel describing the book as focusing on good programming practices and clean code. Several other influential books are also mentioned and described in 1-3 sentences, including The Pragmatic Programmer, Structure and Interpretation of Computer Programs, The C Programming Language, Introduction to Algorithms, Design Patterns, Refactoring, The Mythical Man-Month, Clean Code, Effective C++, More Effective C++, Working Effectively with Legacy Code, and Programming Pearls.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 58

100 Most Influential Books According to

Stack Overflow
Please read this blog post to see why this is here. This data was created on 02/13/2012 20:00:00

All content found below was taken from Stack Overflow in accordance with the Creative Commons
license governing the site. As such, you are free to use this data as you wish so long as the proper
attribution is used.

Code Complete (2nd Ed) by Steve McConnell

"The encyclopedia of good programming practice, Code Complete


focuses on individual craftsmanship -- all the things that add up to
what we instinctively call "writing clean code." This is the kind of book
that has 50 pages just talking about code layout and whitespace." --
Joel (NB imo there's more to it than semantics)

Justin Standard Created on: 2008-08-04 19:51:07


11558 Last edit: 2010-03-27 09:22:22

The Pragmatic Programmer; it's more about your trade, and how to apply it
than the code per se, but it's still very good.

This is a great book for programmers who have learned the


mechanics of programming, maybe in college, but don't quite
feel secure deciding what to do. It's like the difference between
drafting and architecture. What you learned in that class in
college was drafting, and you can draw beautifully, but if you still
feel like you wouldn't quite know where to begin if someone told
you to write a P2P music-swapping network all by yourself, this
is the book for you.
--Joel

Xenph Yan Created on: 2008-08-04 20:15:14


5936 Last edit: 2011-10-22 16:38:54

Personally, Structure and Interpretation of Computer Programs is by far the


most influential programming book I have ever read.

Some classics like Code Complete, Refactoring and Design Patterns teach
you the effective working habits and the painstaking details of the trade.
Others, like Peopleware, Psychology of Computer Programming and The
Mythical Man-Month delve into the psychosocial aspects of software
development. Numerous others deal with algorithms. These books all have
their place.
SICP, however, is in a different league. It is a book that will enlighten you.
It will evoke in you a passion for writing beautiful programs. Moreover, it will
teach you to recognize and appreciate that very beauty. It will leave you
with a state of awe and an unquenchable thirst to learn more. Other books
may make you a better programmer; this book will make you a
programmer.

And in the meanwhile, you will learn a thing or two about functional
programming (side effects won't be introduced until chapter three), lazy
evaluation, metaprogramming (well, metalinguistic abstraction), virtual
machines, interpreters, and compilers.

Some think that SICP is not a beginner's book. Personally, I probably


wouldn't have appreciated the book in full without having some
programming experience under my belt, but I would definitely
recommend it for a beginner. The book is, after all, written for the famous
6.001, the introductory programming course at MIT. It may require an
intellectual effort (especially if you do the exercises - and you should), but
the reward is well worth the price.

Not convinced? Read the Foreword or the Preface to the First Edition. The
full text is freely available on the web.

It's available online for free, and there are even video lectures to go along
with it.

Antti Sykäri Created on: 2008-08-26 23:10:24


5614 Last edit: 2011-03-09 08:49:35

The C Programming Language by Kernighan and Ritchie.

It is concise, easy to read, and it will teach you three things: the C
programming language, how to think like a programmer, and the low-
level computational model. (It is important to understand what's going on
"under the hood".)

Nathan Created on: 2008-08-29 12:01:11


1006 Last edit: 2011-11-06 07:25:01

Introduction to algorithms (Cormen, Leiserson, Rivest, Stein) aka CLRS -


Code Complete teaches you how to program correctly, The Mythical Man-
Month teaches you how to manage correctly, Design Patterns teaches you
how to design correctly...

This book teaches you how to write think about algorithms.

In my mind, code is just a tool, not the essence. The main part of
developing software (IMO) is creating new algorithms or re-implementing
existing ones. Other than that it's just assembling Lego bricks or creating
"management" layers. I still dream about the workplace that would allow
me to invest most (>50%) of my time in writing algorithms, leaving the
management details to other people...

Ran Biron Created on: 2008-08-17 11:54:57


1836 Last edit: 2010-12-07 02:05:31

I personally think Design Patterns by the Gang of Four is a very useful


book. It's not about the "meta" aspects of programming like so many of the
other suggestions, but it emphasises encapsulating good programming
techniques as patterns, and has since encouraged others to come up with
new patterns and antipatterns to use in programming dialogue.

Now for a rider....

@kevin, @modesty: Great answers! If I could place a 3-vote like on


uservoice, I'd gladly use it here.

To the naysayers who downmodded them, I say: please, grow a sense of


humour! :-)

Chris Jester-Young Created on: 2008-08-04 20:33:29


57362 Last edit: 2011-03-01 10:20:59

I think I would have to recommend Refactoring: Improving the Design of


Existing Code.

Created on: 2008-08-16 16:13:34


Martin Last edit: 2010-03-18 10:33:32
8309

In podcast 12, Jeff and Joel list a myriad of recommended books.


Personally though I highly recommend The Mythical Man-Month.

John Downey Created on: 2008-08-04 19:53:17


4223 Last edit: 2009-10-01 14:18:51

The Art of Computer Programming if only for the effort Knuth put into it.
Peter Coulton Created on: 2008-08-04 20:07:28
4701 Last edit: 2011-01-22 14:50:08

I'm surprised no one's mentioned the Dragon Book by Aho et al. (or if it has
been mentioned, I missed it).
I will never forget the first edition's cover. This book made me realize just
how magically awesome compilers truly are. :)

Dane Created on: 2008-09-05 14:00:08


385 Last edit: 2009-10-15 21:41:20

I know that Design Patterns by the Gang of Four is a standard text, but
rather than try and read that brick of a book start with the easier Head-First
Design Patterns, and once you have got your head around the basic
principles, progress to the great GoF bible...
Calanus Created on: 2008-08-06 03:21:22
3273 Last edit: 2010-03-20 07:57:04

For a truly deep read, I'd suggest Douglas Hofstadter's Gödel, Escher,
Bach. He dives pretty deep into many of the issues that programmers face
every day- recursion, verifiability, proof, and boolean algebra. Great read, a
little off the beaten path, occasionally challenging, and extremely rewarding
once you fight through it and process what you've read.

Tim Howland Created on: 2008-09-04 09:06:12


4206 Last edit: 2010-09-07 14:22:51
Clean Code has a lot in common with Code Complete but it's more concise
and practical with lots of clear examples.

Craig P. Motlin Created on: 2008-11-25 10:41:08


4454 Last edit: 2010-08-26 21:36:52

Effective C++ and More Effective C++


From the early days of my career, Scott Meyer's Effective C++ and later
More Effective C++ both had an immediate impact on my programming
ability. As a friend put it at the time, those books allow you to short cut the
process of developing programming skills that otherwise would have taken
years.

In the last year, the book with the biggest impact on my thinking has been
The Cathedral and the Bazaar which taught me a lot about how the open
source development process works and how to get rid of bugs from my
code.

John Channing Created on: 2008-08-29 16:19:05


2793 Last edit: 2009-10-07 18:05:17

I recommend CODE by Charles Petzold. In this age of tools and IDEs that
abstract a lot of complexity away from the programmers, this one is an eye
opener.
user352 Created on: 2008-08-04 20:03:22
383 Last edit: 2010-01-11 15:18:44

I really recommend programming pearls, it's got some amazing stuff in it,
although I'm not ashamed to admit that I didn't understand half of it!
Matt Warren Created on: 2008-09-04 05:32:29
4576 Last edit: 2009-03-01 16:52:10

Working Effectively with Legacy Code


by Michael Feathers. I don't think that any book has affected my opinion of
how I code more than this one. It explicitly tells you how to deal with
someone elses code but implicitly you'll learn what to avoid (and why).

Edit: Makes sense now.

Wolfbyte Created on: 2008-08-06 02:00:13


5444 Last edit: 2009-10-07 17:58:19
For me the most influencal book is "Zen and the Art of Motorcycle
Maintenance" by Robert Pirsig. It is all about no matter what you do, always
strive for perfection, know your tools and task at hand inside-out, and, most
of all, have fun (because if you are having fun, everything automatically
leads to better results).

This book has a more recent edition (2000).

Two great long-quotes from it

Quality -- you know what it is, yet you don't know what it is. But
that's self- contradictory. But some things are better than others,
that is, they have more quality. But when you try to say what the
quality is, apart from the things that have it, it all goes poof!
There's nothing to talk about. But if you can't say what Quality
is, how do you know what it is, or how do you know that it even
exists? If no one knows what it is, then for all practical purposes
it doesn't exist at all. But for all practical purposes it really does
exist. What else are the grades based on? Why else would
people pay fortunes for some things and throw others in the
trash pile? Obviously some things are better than others -- but
what's the ``betterness''? -- So round and round you go,
spinning mental wheels and nowhere finding anyplace to get
traction. What the hell is Quality? What is it?

Mountains should be climbed with as little effort as possible and


without desire. The reality of your own nature should determine
the speed. If you become restless, speed up. If you become
winded, slow down. You climb the mountain in an equilibrium
between restlessness and exhaustion. Then, when you're no
longer thinking ahead, each footstep isn't just a means to an
end but a unique event in itself. This leaf has jagged edges.
This rock looks loose. From this place the snow is less visible,
even though closer. These are things you should notice anyway.
To live only for some future goal is shallow. It's the sides of the
mountain which sustain life, not the top. Here's where things
grow.

Get it here

akr Created on: 2008-09-05 14:16:19


1458 Last edit: 2011-09-25 10:03:47

Peopleware
Demarco and Lister demonstrate that the major issues of software
development are human, not technical. Their answers aren't easy--just
incredibly successful. New second edition features eight all-new chapters.
Gustavo Created on: 2008-08-17 11:27:57
512 Last edit: 2009-10-07 17:56:54

Coders at Work by Peter Seibel. A very influential book to learn from the
experience of some of the top names in the field, how they think and work.

Jahanzeb Farooq Created on: 2009-09-22 10:03:29


498 Last edit: NA

ok, this is a slightly off-center answer, but believe it or not, it was on the
reading list for a compsci course way back in the day. An excellent role
model and a good book about curiosity.

Surely You're Joking, Mr. Feynman!

mike511 Created on: 2008-09-16 22:21:07


468 Last edit: 2011-09-05 00:32:37
Effective Java 2ed will teach you how to write beautiful and effective code.
It's a Java book, but there are many cross-language concepts.

Marcio Aguiar Created on: 2008-09-02 23:41:27


3989 Last edit: 2010-05-09 10:31:39

Surprised that no one has mentioned Martin Fowler's Patterns of Enterprise


Application Architecture yet
levi rosol Created on: 2008-10-03 17:55:34
1205 Last edit: 2010-09-26 16:18:21

I agree with Cristian, I think we should not forget SICP, I think every
programmer should use it, al least as an exercise, you can complement it
with;

The Little Schemer


and

The Seasoned Schemer

I also include in the reading list Code Complete, Applying UML and
Patterns: An Introduction to Object-Oriented Analysis and Design and the
Unified Process and Design Patterns and Design Patterns: Elements of
Reusable Object-Oriented Software

nmiranda Created on: 2008-08-22 12:56:43


1552 Last edit: NA

Why's (Poignant) Guide to Ruby !!!!!


Orion Edwards Created on: 2008-08-04 20:41:27
30710 Last edit: 2009-11-19 11:49:16

The Inmates Are Running The Asylum: Why High Tech Products Drive Us
Crazy and How to Restore the Sanity, or any of Alan Cooper's books.

Because most programmers produce more WTFs/minute in the user


interface than they do in the source code.

Patrick McElhaney Created on: 2008-08-05 14:45:56


12574 Last edit: 2010-09-03 10:15:29

@lurks
It is useful regardless operating system you use.

img Created on: 2008-09-06 15:00:16


src="http://www.gravatar.com/avatar/d92ce60d3a4cbe03598e27c2e8dee69d?
Last edit: 2010-08-26 17:21:18
d=identicon&r=PG" />J.F.
Sebastian
37897

Many of the books already mentioned opened my eyes and influenced me,
but a book every programmer should read is Test-Driven Development by
Example. It really showed me the importance of unit tests and TDD and got
me started very quick.

Curro Created on: 2008-09-16 10:24:27


450 Last edit: 2010-01-11 15:11:34

Practices of an Agile Developer


Working in the Real World.

mattruma Created on: 2008-08-26 21:12:55


5781 Last edit: 2011-01-14 12:35:10
Strunk, William. Elements of Style

J.F. Sebastian Created on: 2008-09-29 03:09:35


37897 Last edit: 2008-09-29 03:14:47

It depends on exactly what purpose you're aiming for - I like Code


Complete for pure programming, and Don't Make Me Think is a great book
on UI design.
bcwood Created on: 2008-08-05 13:38:01
2670 Last edit: 2011-09-13 02:37:35

How to Win Friends and Influence People by Dale Carnegie.

It taught me that in order to persuade people of your ideas, or lead them


away from bad practices, you can never tell them that they are wrong.
To do so will only entrench them further in their own ideas.

Ether Created on: 2009-02-12 16:30:03


27106 Last edit: 2009-08-23 23:02:50
Agile Software Development, Principles, Patterns, and Practices by Robert
C. Martin

flipdoubt Created on: 2008-08-26 21:04:36


2731 Last edit: 2009-04-25 12:59:13

Domain Driven Design by Eric Evans

cover

user12867 Created on: 2008-09-16 12:01:43


161 Last edit: 2010-01-11 15:10:23
John Nilsson Created on: 2008-10-07 17:56:09
2521 Last edit: NA

I'd suggest "Modern C++ Design" by Andrei Alexandrescu, a really


astonishing book about the awesome tricks and patterns you can achieve
with C++, preprocessor directives and templates.

Lck Created on: 2008-09-16 19:43:23


1539 Last edit: NA

I have a different answer -- I really liked Joel's Best Software Writing I.


Maybe that's just me... but that collection opened my eyes to the "bigger
picture" and inspired me to think of my programming as an art/craft.

yoliho Created on: 2008-08-04 21:22:46


218 Last edit: 2008-08-07 03:33:43

I found The Practice of Programming by Kernighan and Pike is a very good


read.

Cros Created on: 2008-08-16 06:19:06


690 Last edit: 2010-03-27 09:40:38

A great follow on to Code Complete - indispensable once you start working


on projects of any decent size & need to communicate to your stakeholders
about project delivery dates, etc.

Software Estimation: Demystifying the Black Art by Steve McConnel

andyp Created on: 2008-09-02 20:49:36


71 Last edit: 2010-08-10 03:09:35

Pragmatic Thinking and Learning: Refactor Your Wetware by Andy Hunt.


Bo Tian Created on: 2009-07-07 22:59:42
1005 Last edit: 2009-10-02 14:47:03

Not the most influential, but certainly a good read and absent so far is My
Job Went To India by Chad Fowler. It consists of 52 chapters/mini essays
giving guidance on how to differentiate yourself as a developer rather than
a code monkey (whose work could easily be outsourced).
Edit by different person: This is now called "The Passionate Programmer".

James Marshall Created on: 2008-08-19 11:44:39


436 Last edit: 2010-10-02 16:38:01

I'm going to go a different route than the other answers so far...

Hackers: Heroes of the Computer Revolution. It's an informal history of


computers that really gives you an amazing feel for how this whole
"computer culture" formed. It had a very powerful effect on me when I read
it, oh, sometime around 1988.

Tim Created on: 2008-08-08 12:02:15


Last edit: 2011-11-19 19:04:03

Sullivan
5939

It's an oldie, but still worth reading: Algorithms + Data Structures =


Programs
Dave Created on: 2008-11-11 13:53:01
293 Last edit: 2010-08-08 14:03:28

Dilbert's Guide To The Rest Of Your Life: Dispatches from Cubicleland

This is more truth than you'd think.

Mr Grieves Created on: 2009-02-12 11:17:31


1289 Last edit: NA
I recommend Writing Solid Code. Old, but still very much worth a read.

Shane O'Grady Created on: 2008-08-12 11:07:44


1203 Last edit: 2009-10-02 14:23:33

I'm amazed that no one has suggested The Story About Ping yet.

Nate Created on: 2009-07-22 21:08:51


1457 Last edit: 2009-10-02 14:44:22

Excellent book on getting up to speed with JavaScript, highly reccommend.

JavaScript - The Good Parts

Pace Created on: 2009-11-25 05:23:16


582 Last edit: NA

Getting Real by 37 Signals. It doesn't matter if you don't "ship" something


at the end of the day.

Created on: 2008-08-12 16:39:47


Last edit: NA
dustinupdyke
325

The books listed here in this question are great. Code Complete, Pragmatic
Programmer, Head First Design Patterns, all great.

My contribution to this list is a free read and is really focused on getting


back to (best practice) basics. Foundations of Programming is a free eBook
from one of the contributors to the popular Alt.Net blogs CodeBetter, Karl
Seguin.

Covers Domain Driven Design, Persistence, Dependency Injection, Unit


Testing, ORM etc.

Chris Conway Created on: 2008-08-25 22:41:35


4259 Last edit: NA

I know this is a graphics book, but I am a graphics programmer and have


been my whole career. Plus it's written in 'C' :)

It's as fundamental to me as the original K&R C Programming Language


book.

Computer Graphics: Principles and Practice in C (2nd Edition)


Shane Created on: 2009-07-22 20:57:45
831 Last edit: 2009-10-02 14:45:10

My favorite books are already covered here, but if you need to learn Java, I
enjoyed Bruce Eckel's book, Thinking in Java.
Community User Created on: 2008-09-15 19:04:57
0 Last edit: NA

Code Complete is the classic.

However, Facts and Fallacies of Software Engineering by Robert Glass has


a lot of good information on topics other than coding, for example people-
issues, testing and process.
cover

Henrik Warne Created on: 2008-09-11 09:07:58


545 Last edit: 2009-04-25 12:18:18

The Elements Of Computing Systems

This book walks the reader through the process of building a computer
system given NAND gates and flip flops. It gives a good introduction to the
"big picture".

Binil Thomas Created on: 2009-04-03 09:27:07


3754 Last edit: NA

Refactoring to Patterns by Joshua Kerievsky


andHapp Created on: 2008-12-05 08:10:45
754 Last edit: 2009-04-25 12:08:15

The Design of Everyday Things

and Things that Make Us Smart - both by Donald Norman

These apply to so much more than just user interface design... Make things
that work as others would expect - even if the others are developers using
code that you've created.

The Timeless Way of Building - Christopher Alexander

The original "patterns" book. Helps to understand why some software


design just "feels" right and some does not.

Terry Longrie Created on: 2008-09-01 12:40:32


272 Last edit: 2011-01-22 15:05:48

The Annotated Turing was enlightening. It defines the box programmers


work in.

Jason Rowe Created on: 2009-10-02 13:12:54


1299 Last edit: 2010-10-26 14:51:19
The Deadline: A Novel About Project Management by Tom DeMarco

FantaMango77 Created on: 2008-08-27 13:31:14


899 Last edit: 2008-08-28 00:54:46
Not the most important, but a very fundamental one

Edison Gustavo Created on: 2009-02-13 08:15:24


Muenz Last edit: NA
1682

This book really set up a fundemental view that a programmer need to


know about computer.

Computer System - A programmer's perspective


arsane Created on: 2009-08-06 10:15:16
2209 Last edit: 2010-03-27 09:33:07

I prefer Stroustrup's The C++ Programming Language (3rd edition) - it's the
C++ book. C++ may be out of fashion these days, but this book takes you
from the basics to OO to templates (STL) and even covers things like
improving compile and link time. I still learn something every time I pick it
up, and it's never, ever bad to know C++.

Joe Created on: 2008-09-10 10:31:19


0 Last edit: NA

Patterns of Enterprise Application Architecture


Jon Created on: 2008-09-16 09:59:52
978 Last edit: 2010-01-11 15:02:54

I enjoyed Agile Principles, Patterns, and Practices in C# (Robert C. Martin


Series).

Kb. Created on: 2009-07-24 05:56:10


2411 Last edit: 2009-10-02 14:42:08

My career as a developper is starting, so I cannot directly answer the


question. But as .NET developper, the book that helped me the most in
framework and reusable libraries design is "Framework Design Guidelines"
by Brad Abrams. The book solves a lot of issue you can encounter when
you are thinking about naming and crucial design choices. This is the best
way to produce high reusable assemblies in .NET.
I am pretty surprised that nobody mentioned that book. What is sure is that
it has been really influential on my design and naming habits when writing
reusable assemblies.

One thing I really appreciate in this book is the notes of .NET Framework
developers giving details on issues they had when designing the .NET
Framework, which I think are good advices as it is representative of a well
designed framework.

Ucodia Created on: 2009-10-26 16:23:34


908 Last edit: 2011-06-17 08:02:56

It's a brand new book and I've only just skimmed it but Growing Object-
Oriented Software, Guided by Tests right now is THE book on TDD. It really
concentrates on the "design" part of software development and how it is
closely related to how you develop code writing tests first. I've enjoyed
other books on TDD and unit testing but this takes it to a higher level, I'm
pretty sure this one is destined to be a classic.
FinnNk Created on: 2009-10-31 18:43:18
2110 Last edit: 2010-12-09 02:41:48

I keep these 3 books on my shelf. As a reminder of the complex and


exciting craft we do. I only recommend to read them if you happen to
encounter with something that not even the entire Stackoverflow comunity
can help you solve as I have:
=)

Chepech Created on: 2010-09-03 14:37:09


672 Last edit: 2010-09-03 20:20:14

Alice's Adventures in Wonderland Best programmers have read the book!

GeraldWeinberg
Alan J. Peril

popopome Created on: 2008-08-16 15:42:37


1467 Last edit: 2011-09-02 02:42:48

Kernighan and Ritchie's "The C Programming Language" - The only C book


you'll ever need.

Codebeef Created on: 2008-09-16 11:38:21


9635 Last edit: 2011-09-07 18:31:35

There are alot of really great books in the answers. One that isn't
mentioned that I absolutely love is Object Thinking by Dr. David West. This
book had a huge impact on me because it explains the why more than the
how.

blowmage Created on: 2008-09-10 11:35:50


99 Last edit: NA

I'm really surprised that nobody has mentioned Advanced Programming in


the UNIX Environment by W. Richard Stevens. It's not necessarily the book
that had the most impact on me, but it definitely deserves a place among
many of the other greats mentioned here.

Even though I mostly did (and do) Perl programming, reading this book
really helped me understand more about what's going on under the hood. It
covers a ton of really critical low-level concepts like File IO, system files
(passwd, group, etc), process control, signals, and so on.

Having some idea of how this stuff works at the C level is very useful, even
if you never write any C code, because every language you use (on a Unix
system) is using these APIs under the hood.

Dave Rolsky Created on: 2008-09-16 23:25:02


3075 Last edit: NA

Godel Escher Bach wins hands down for me, but that's already been
mentioned elsewhere. One book that motivated me highly that isn't already
in an answer AFAIK is Tracy Kidder's Pulitzer prize winning book The Soul
of a New Machine (amazon). Which charts the trials and tribulations of an
engineering team trying to bring a new machine to market. It made me feel
proud to be an engineer.
Andrew Matthews Created on: 2010-09-06 21:16:15
818 Last edit: 2010-09-07 10:08:02

Chris Dwyer Created on: 2009-08-28 15:42:32


1025 Last edit: 2010-03-04 11:55:06

CLR via C#, by Jeffrey Richter

Drakiula Created on: 2008-09-16 15:30:49


183 Last edit: NA
Christopher Alexander - The Timeless Way of Building

Tobias Svensson Created on: 2009-06-28 14:01:19


119 Last edit: 2010-08-31 17:49:31

Framework Design Guidelines will give you a very good start on how to
organize code.

Dana Created on: 2008-08-26 09:35:06


1525 Last edit: NA

I thought Design Patterns in C# by Steve Metsker was good. The examples


are a bit more advanced (and useful) than some other design pattern books
I've read.

Kilhoffer Created on: 2008-09-10 11:03:06


8661 Last edit: 2011-02-24 23:29:19

Since you didn't say you wanted programming books specifically, I can be a
little more creative.

Every programmer should have read Lewis Carol's Alice in Wonderland.

Slightly more down-to-earth - every programmer should read Getting


Things Done - especially the ones that I work with, because once you 'get
it' you will be annoyed at how unorganized other people can be :)

Thomas Vander Created on: 2008-08-25 17:59:36


Stichele Last edit: NA
5128

I though Jurgen did a decent job with his Top 100 Best Software
Engineering Books, Ever.

Mike Polen Created on: 2008-08-22 13:00:18


3064 Last edit: NA
Maybe not the single most influential for every programmer but... to expand
really expand your mind about computation in general, and to learn to write
some very interesting programs, I recommend the
Computational Beauty of Nature.

BTW, the author is now head of Microsoft's Live Labs.

Pete Created on: 2008-08-26 09:59:08


654 Last edit: 2009-08-27 00:24:04

Robert M. Pirsig's Zen and the Art of Motorcycle Maintenance has a little
section near the end about Gumption Traps. That's the best advice I've
ever read on how to debug code or solve problems in general. The rest of
the book is pretty good, too.

tuxedo Created on: 2008-08-27 13:23:38


269 Last edit: NA

The C Programming Language. Seriously!

Ashwin Created on: 2008-08-18 10:27:47


7579 Last edit: NA
About Face - The Essentials of Interaction Design (now in third edition)

This book opened my eyes to a very different viewpoint of development,


focused on the interactions of the end user. It also helped me realize that
creating great software is about more than just patterns and architecture,
it's about helping people achieve their goals.

JeremyDWill Created on: 2008-09-16 11:22:45


1631 Last edit: NA

Writing Solid Code, by Steve Maguire. Code Complete is a close runner-


up.

Keith Smith Created on: 2008-09-16 10:01:15


1009 Last edit: 2011-01-22 14:55:33

The Tao of Programming

swamy Created on: 2009-01-22 07:44:07


91 Last edit: NA

Here Comes Everybody: The Power of Organizing Without

Organizations - Clay Shirky


This is an incredible book about the social effects of the internet. A must
read for anyone in the tech industry, doubly so for programmers.

Here Comes Everybody: The Power of Organizing Without


Organizations is a book about what happens when people are
given the tools to do things together, without needing traditional
organizational structures.

alumb Created on: 2008-09-16 12:48:40


1841 Last edit: NA

I was lucky enough to read this pretty early in my so-called career:

Philip and Alex's Guide to Web Publishing

It was cutting edge in 1998 and still has plenty of relevant points. I found it
an enjoyable read with a real sense of humour (not the twee kind you often
get in software books). When he gets down to the details he talks about
specific platforms though, so it shows it's age when Oracle 7 is mentioned!

I would still put this at the top of the required reading list for a web
developer because of the way it assumes no prior knowledge, starting from
first principles ("what's HTML?")

Created on: 2008-09-06 10:25:07


Michael Hinds Last edit: NA
305

Object-Oriented Analysis and Design with Applications by Grady Booch.

Vaibhav Created on: 2008-08-06 06:59:37


6336 Last edit: 2009-10-02 15:46:08

JavaScript: The Good Parts by Douglas Crockford

Opened my eyes to the goodness hidden in JavaScript and how bad the
examples of JavaScript are strewn through tutorial sites.

Essential reading for anyone serious about web client side development.

It also improved my C# and showed me the light to dynamic languages.

Alex Key Created on: 2010-11-01 10:02:38


2072 Last edit: NA

Masterminds of Programming - Conversations with the Creators of Major


Programming Languages
Newbie Created on: 2010-12-09 02:44:44
342 Last edit: 2011-09-02 02:43:17

Peopleware
Mythical Man Month
Psychology of Computer of Programming

Gustavo Created on: 2008-08-17 11:29:51


512 Last edit: NA

This is a great book for a Java developer new or old:

Effective Java by Joshua Bloch

Scott Faria Created on: 2008-09-11 21:09:31


0 Last edit: 2009-04-25 11:55:28

There are similar questions here and here.


John B Created on: 2008-09-16 10:00:06
804 Last edit: 2010-07-10 09:44:49

I don't know if it were already suggested but:

tr3 Created on: 2009-08-04 10:51:48


579 Last edit: 2009-10-02 14:40:38

The Tao Te Ching. Although it's a philosophy book and not a programming
book, some of it's principles are very applicable to programming:

"Know when it's time to stop. If you don't know then stop when
you are done."

Translation: Knowing your requirements means you know when to stop. If


you don't know when to stop, you need to stop because the requirements
have yet to be defined.

"The harder one tries, the more resistance one creates for
oneself."

Translation: How many times have you worked on a problem for several
hours, only to find the answer after taking a 15-minute break? The more
you hammer at a problem, the harder it is going to be for you to solve it.
"One whose needs are simple can fulfill them easily."

Translation: Simple requirements lead to simple designs.

"When we lose the fundamentals, we supplant them with


increasingly inferior values which we pretend are the true
values."

Translation: Hubris is never a good substitute for good programming


standards. If you get lax, no amount of design patterns will ever substitute
for the lack of quality in your code.

plaureano Created on: 2009-01-05 22:33:10


899 Last edit: NA

The Career Programmer: Guerilla Tactics for an Imperfect World by


Christopher Duncan

Daniel Fisher Created on: 2008-09-16 11:16:01


lennybacon Last edit: 2011-02-02 18:50:19
96

Paradigms of Artificial Intelligence Programming: Case studies in Common


Lisp
wustudybreak Created on: 2008-09-15 15:03:03
0 Last edit: 2011-09-02 02:43:33

Masters of Doom.

Ricko M Created on: 2010-12-13 08:38:38


589 Last edit: 2011-09-02 02:44:14

Most fun to read: The Art of Deception by Kevin Mitnick (one of world's
most famous hackers)

Really shows that how secure your software may be, the weakest link is
always the human controlling it, with entertaining examples.

Created on: 2010-05-18 07:17:51


SirLenz0rlot Last edit: NA
330

The Productive programmer. its a natural extension of "the pragmatic


programer" which gets a little more into the every day details.

Arthur Ulfeldt Created on: 2009-10-09 16:32:23


14028 Last edit: NA

If you could go back in time and tell yourself to read a specific


book at the beginning of your career as a developer, which book
would it be?

Unit testing is one thing that I really wished I knew at the start of my
programming career rather than the middle of it.

As to the general "what good books have you read" offshoot of this thread:
Writing requirements is one area where I suck, this book helped a lot.

Now off to order a book or two from Amazon... ;)

mlk Created on: 2009-10-22 05:14:14


4404 Last edit: 2011-09-12 10:16:19

Smalltalk-80: The Language and its Implementation AKA the "Blue book":

Claudio Acciaresi Created on: 2009-08-24 08:45:59


2222 Last edit: 2009-10-02 14:34:54

You might also like