Será que precisamos estar sempre aprendendo a fim de nos mantermos relevantes? Para nos mantermos relevantes, eu diria que não, para nos mantermos atualizados eu diria que sim. No entanto, construir uma base sólida é fundamental para qualquer área de conhecimento, e uma base sólida nos faz mais relevantes. Por isso, nessa seção estão os livros que na minha opinião são fundamentais para se tornar um melhor programador. Porém essa não é a lista final e portanto essa página estará sempre com o título WIP (Working In Progress).
Não importa o quão bom você seja, sempre há algo novo para aprender.
Clean Code
Escrito pelo famoso e polêmico Uncle Bob, esse livro aborda como podemos escrever códigos melhores e mais legíveis. Não é necessário seguir todo o livro para notar uma mudança significativa na legibilidade do código produzido. Esse é um livro que recomendo fortemente a todos os programadores.
Test Driven Development
TDD é uma técnica de desenvolvimento onde o programador escreve os testes antes da funcionalidade, o que garante dentre outas coisas feedback sobre o design do código escrito e a vantagem de ter um código testado desde o início. Nesse livro, Kent Beck explica por meio de projetos como usar TDD e quais os benefícios dessa técnica.
Head First: Design Patterns
Design Patterns são soluções típicas comumente usadas no design de software. É fundamental que um bom programador conheça os princípios envolvidos e principais padrões de projetos. Acredito que aqui está um ótimo livro que constrói as soluções passo a passo. Outra recomendação é o clássico Design Patterns: Elements of Reusable Object-Oriented Software.
Effective Java
Um livro para Java Programmers escrito por Joshua Bloch, criador da API de collections do Java. Esse livro te mostra como usar Java de forma efetiva assim como pontos negativos da linguagem e o que evitar. Recomendo esse livro para programadores com algum tempo de experiência.