Se você está pensando em adquirir algum e saca inglês, deixo a dica de pesquisar o preço das edições originais. Em alguns casos eles saem bem mais baratos que as edições nacionais, ainda mais em tempos de dólar baixo.
Aí vai, então, a primeira parte da lista.
Utilizando UML & Padrões: O primeiro livro técnico que li, o que contribuiu bastante para que eu desse valor desde cedo aos companheiros folhudos. Li a segunda edição lá pela metade da faculdade e quando a terceira foi publicada não pensei duas vezes antes de comprá-la. Craig Larman trata de dezenas de assuntos com os quais devemos lidar durante um projeto, desde a descrição de casos de uso até a indicação de boas soluções baseadas na orientação a objetos, ao mesmo tempo em que detalha todos os pontos importantes da UML. Recomendável para aqueles que já estão no ramo há um certo tempo e precisam aprimorar suas habilidades.
Padrões de Projeto: Um dos livros mais influenciadores que há, citado na bibliografia de centenas de obras, copiado por muitos e inspirador de outros tantos. É um catálogo de soluções comuns e genéricas para problemas recorrentes. Apesar de essencial, não é um livro fácil. Este é o tal do qual falei certa vez sobre já ter comprado há um bom tempo mas nunca ter terminado de ler, por não conseguir entendê-lo. Agora que já tenho mais uns anos de experiência nas costas estou tentando mais uma vez. O pouco que já li e entendi me fez um programador melhor. Recomendo para quem já tem uma longa estrada percorrida.
Code Complete: Um dos livros mais iluminadores que já li. Ele trata de como escrever código melhor. Ao contrário do que parece, ele não é um livro que ensina a programar, mas sim a programar melhor. Você precisa saber o básico de programação para poder aproveitar o que ele tem a oferecer. O livro trata das mais variadas facetas do trabalho de programar: como tratar erros, como escrever comentários, técnicas de indentação, como nomear classes, métodos e variáveis, tuning, programação defensiva, entre muitos, muitos outros. Uma característica interessante do livro é que ele não se prende a uma linguagem de programação específica. Há exemplos em Java, Visual Basic, C++, PHP, entre muitas outras. Deveria ser obrigatório para todos aqueles que trabalham na área.
Refatoração: Um extenso catálogo de maneiras de modificar o código de um programa sem modificar seu funcionamento, mas aperfeiçoando sua organização, tornando-o mais claro, limpo e fácil de manter. Tem desde técnicas simples para mover métodos até extensos processos de reorganização de hierarquias de classes. Sabe aqueles recursos de refatoração que você encontra no Eclipse, no NetBeans e em outras IDEs? Todas estas idéias saíram deste livro. A diferença é que nele há muito mais informação, como o porque de cada refatoração. Recomendo do iniciante ao experiente.
Explicando Padrões de Projeto: Uma excelente introdução ao mundo dos padrões. Se não é tão extenso quanto o livro Padrões de Projeto, é, em contra-partida, muito mais fácil. Seus autores, com o uso de um único e gigantesco exemplo, mostram como os padrões podem ajudar no desenvolvimento de projetos bem feitos.
Veja aqui a segunda parte da lista
Veja outros artigos que já escrevi sobre análise de sistemas e afins