Livro essencial para desenvolvedores(pedido)

E ai pessoal, beleza?
Bom, seguinte, eu trabalho com desenvolvimento de software a um pouco mais de dois anos. Comecei na lógica de programação na faculdade, fui aprendendo umas linguagens sozinho, trabalhei 1 ano com java e agora estou no meu segundo ano de trabalho com .NET.

Às vezes ainda tenho certas dificuldades frente a alguns problemas de lógica, acho que não estudei o suficiente esta parte.
Gostaria de uma recomendação de vocês pra ler algo meio ‘básico’, porém que vocês consideram essencial para qualquer desenvolvedor. Outro dia vi alguém citando aqui que todos deveriam um tal livro dos compiladores, alguém pode me dizer qual é e se realmente vale a pena?

Pode ser livro, apostila, artigo, qualquer coisa.

Valeu!

Acho que pode te ajudar:
http://www.guj.com.br/posts/list/82607.java

Alguns livros que, na minha opinião, são essenciais:

Design Patterns:
http://www.amazon.com/Design-Patterns-Object-Oriented-Addison-Wesley-Professional/dp/0201633612/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1203950490&sr=8-1

Refactoring:
http://www.amazon.com/Refactoring-Improving-Existing-Addison-Wesley-Technology/dp/0201485672/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1203950523&sr=1-1

TDD:
http://www.amazon.com/Test-Driven-Development-Addison-Wesley-Signature/dp/0321146530/ref=pd_bbs_2?ie=UTF8&s=books&qid=1203950558&sr=1-2

Bons estudos. Abraços. :smiley: