+8  A: 

I'd recommend:

All speak to the nature of the craft of writing code though, in many cases, not actually talking about writing code.

One extra book I'd like to add is Ed Yourdon's "Decline and Fall of the American Programmer". The main content of this book is almost completely out of date but the appendix "The Programmers Bookshelf" is worth the price of admission alone. It is a list of books that goes beyond coding and testing along with an essay where Ed picks out many, but not all, of the books and talks about why you should read them.

This was the essay that turned me on to Fred Brooks's book along with Gerry Weinberg's Psychology book mentioned above.

And you can buy a copy of Decline and Fall for 0.01c second hand now!

You might also like to listen to Peter Coffee's Agile 06 keynote address where he relates his choice of "must have" books back to the Agile Manifesto (mp3). An interesting worthwhile way to pass an hour.

Rob Wells
+1 for The Psychology of Computer Programming. I'm reading it now.
Greg Hewgill
G'day Greg, cheers. Gerry has written some awesome books. Just added one more to my answer.
Rob Wells
+2  A: 

Hackers and Painters: Big Ideas from the Computer Age by Paul Graham

The Art of Unix Programming by Eric Steven Raymond

Nick D
+1  A: 

It does have some code (but then, so does TMMM), but I think that Steve McConnell's Rapid Development is a far better book than TMMM when it comes to the practice of software project management - it's not very philosophical though.

anon
+4  A: 

Code Complete is a great one.

Oded
+6  A: 

I found these interesting ;I hope you too ,will find interesting

1.Articles by Paul graham
2.Coders at work by Peter Seibel
3.Joel On Software
Edit: I searched SO, i found these links.You must see these links.
One
Two

Srinivas Reddy Thatiparthy
Jason
+4  A: 

I also agree that Code Complete is a good one. I found it helpful in identifying the pieces of the coding craft - what steps are involved and what the best practices are.

I just finished Dreaming in Code and found it it be a great on-the-ground account of what happens in the life of a software project. It speaks about many (most?) of the major ideas that have come into play in the world of Software Development, and illustrates them with some vivid (and sometimes painful) examples from the real world.

Last one I'd point out is Peopleware. It focuses on managing coders and how to get the best out of them. It smells a bit like the 70s, but still has some valuable insights. It's one of the few books I've seen Joel Spolsky recommend himself.

Laizer
Dreaming in Code is good, although it made me hope I never end up on a team that is so lacking in leadership.
Jason
+13  A: 

Books that I have read and liken which may interest you are:

  1. Pragmatic Thinking and Learning: Refactor Your Wetware by Andy Huny
  2. Clean Code by Robert Martin
  3. The Productive Programmer by Neal Ford
  4. 97 Things Every Software Architect Should Know by Richard Monson-Haefel

Also worth considering is Domain-driven design by Eric Evans, this could be written off as a patterns book however I feel it improves the way we look at and think about building OO software.

Also some of the best articles can come from the blogs of the top people in the fields, some of the blogs I follow are:

  1. Coding Horror
  2. Martin Fowler
  3. Andy Hunt
  4. codebetter
  5. Uncle Bob's Software Craftsmanship Corner
Alan
+1 for Pragmatic Thinking and Learning: Refactor Your Wetware by Andy Huny
Chad
+5  A: 

Notes on the Synthesis of Form, by Christopher Alexander, an awesome book about the process of design. Not so well known as Alexander's books on patterns, this book is a great eye opener.

A great non-software pattern catalog: Organizational Patterns of Agile Software Development by James O. Coplien. This book isn´t about software patterns, is about people, a catalog for creating successful teams. Every manager should read this book!

Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans, the most valuable book I found to think about the whole software design process.

Peopleware by Tom DeMarco and Timothy Lister "demonstrate that the major issues of software development are human, not technical".

JuanZe
+1 for Notes. I would give you another +1 for Peopleware...
CesarGon
+4  A: 

In addtion to "Peopleware" and "Code complete"

Mihaela
+3  A: 

On top of the already mentioned Code Complete and Peopleware, I found Programming Pearls really interesting. It strongly emphasizes the importance of a good problem definition and the choice of the right tools.

Ariel
+1  A: 

Just about anything by Dave Parnas (the guy who really codified the foundations of software design) or Gerald Weinberg. I especially recommend Weinberg's An Introduction to General Systems Thinking, and Software Fundamentals, a collection of Dave Parnas' papers.

TMN
A: 

One that I just got through reading is The Passionate Programmer, which has been recommended in some other threads here. I also read Practices of an Agile Developer a couple years ago, when I was about to transition from being an integration tester to being a developer, and found it helpful.

And on the web, of course, there are great articles on Joel on Software that discuss a developer's approach to work.

David
+1  A: 

Waltzing with Bears: Managing Risk On Software Projects - by Tom DeMarco & Timothy Lister

This book does an excellent job covering the foundation of risk management and how current practices pay it lip service. My favorite line in the book is a response to the overbearing business executive who wants a more aggressive schedule,

"I can prove to you that beyond March, every month that this product is not ready to ship will cost this company one-hundred-ten-thousand dollars in lost profit."

Which is met with,

"Well then you obviously started this project much too late. If you'd kicked it off eighteen months ago, we could be shipping now, and all those months of hundred-ten-thousand-dollars' extra profit..."

Kelly French