Eu gosto muito desta lista porque ela foi curada por alguns dos melhores programadores do mundo. Tem outros em respostas fora da principal que podem ser interessantes, principalmente em áreas diferentes como banco de dados.
Tudo em inglês, claro. É onde tem os melhores livros, sendo que as traduções nem sempre valem a pena. Eu não gosto de ser elitista, mas o mundo é um pouco, sem inglês mínimo para ler, todo mundo perde oportunidades na área.
Alguns não são bem para iniciantes. A maioria talvez não seja, mas livros para iniciantes não costumam ser tão bons, não sei se tem algum que seja indicável, que não seja só o gosto de uma pessoa.
Um dos problemas de livros de iniciantes é que a maioria das pessoas que podem fazer uma boa avaliação já não são mais iniciantes, e podem estar por fora. Os meus de iniciante eu não indico, são ultrapassados. Quem acabou de iniciar pode não ser capaz de fazer boa avaliação. Em toda lista, se tiver a participação de algumas pessoas, eu sempre vejo indicações boas, mas algumas sabidamente terríveis.
Um dos livros que mais me ajudaram foi um que mostrava toda arquitetura de um PC (na época era quase um único computador), mas não faz muito sentido hoje em dia. Mas algum de arquitetura e hardware deveria estar na lista do iniciante, junto ou logo depois de algum de algoritmo e de uma linguagem de programação e quem sabe de banco de dados. As pessoas hoje em dia não sabem como isso faz diferença para o programador, define muito a personalidade profissional da pessoa. O CODE fez um pouco isso também, mas naõ sei se ele vale tanto a pena hoje em dia, pelo menos para a maioria.
Talvez o mais perto da unanimidade seja o The Pragmatic Programmer. Eu nem acho ele tão bom quanto alguns acham, mas realmente é dos melhores que pode aproveitar.
Muita gente vai falar do Clean Code: A Handbook of Agile Software Craftsmanship, mas ele não é tão unânime assim, é em certos círculos. Eu o indico, mas assim como outros, mas especialmente ele eu indico para quem é capaz de ser questionador, nem tudo o que está lá é uma boa indicação para todo programador. Livros são ótimas fontes, mas não quer dizer que são perfeitos. Eles devem ser usados para formar a pessoa de forma única, não para a pessoa decorar e repetir o que está lá. Até IA costuma fazer uso mais criativo de textos assim.
Algumas pessoas ignoram o Code Complete, e acho que ele tem bastante defeitos mesmo, mas em algumas coisas ele acerta mais que o Clean Code. Acho que eles devem ser complementarem, até para, em alguns casos ter que se escolher se vai ouvir o Steve ou o Bob.
Tem muitos livros menos técnicos que são muito bons e até mais úteis para formar a pessoa. Porque muito técnico é documentação. Eu não gosto de livros sobre ferramentas.
Um dia eu farei uma lista minha. Sim, para fazer algo responsável é extremamente trabalhoso.
Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente. Para saber quando, me segue nas suas plataformas preferidas. Quase não as uso, não terá infindas notificações (links aqui).