Esses são os livros que eu recomendo sobre design e arquitetura de software. A maior parte deles é atemporal, ou seja, é um conhecimento que você vai levar para o resto da sua carreira, por muito e muitos anos.
O ideal é começar pelos livros que abordam formas de escrever código de melhor qualidade, como o Clean Code, Refactoring e Working Effectively with Legacy Code. Esse último é mais indicado para quem trabalha com um sistema legado, que tem uma dívida técnica alta.
Não vejo sentido em começar a estudar nada relacionado a padrões de projeto se você ainda não sabe escolher um bom nome para uma variável ou simplificar um condicional. Lembre-se, escrever código vem antes de tomar decisões de design.
Alias, pra quem é de Java, uma dica sensacional é ler o livro Effective Java do Joshua Bloch. Eu lembro de ter lido há muitos anos atrás e me ajudou muito na forma como eu escrevia código em Java na época.
Conforme vamos conhecendo novas linguagens, mudamos a nossa forma de escrever código, muitas vezes abrindo a nossa mente para outros estilos de pogramação, outras convenções adotadas por diferentes comunidades, por isso eu sempre indico o livro o Seven Languages in Seven Weeks.
Com Clean Architecture e Domain-Driven Design nós mergulhamos no design, na definição e atribuição de responsabilidades de cada camada e também amaduremos na modelagem do domínio. Sobre Domain-Driven Design eu sempre recomendo o livro Implementing Domain-Driven Design do Vaughn Vernon. Depois dele, gosto bastante do Learning Domain-Driven Design do Khononov. O livro do Eric Evans foi o primeiro, mas na minha opinião é um pouco mais prolixo, então não recomendo muito.
Livros sobre padrões de projeto são sempre muito úteis e nessa lista eu trouxe dois bem importantes: Design Patterns do GoF e Patterns of Enterprise Application Architecture, do Martin Fowler. Ambos são essenciais e você pode ir lendo aos poucos, não necessariamente de forma sequencial. Tem padrões que eu já li mais de 10 vezes e outros que talvez eu nunca tenha lido. Se quiser ir além, você pode ler o livro Refactoring to Patterns do Joshua Kerievisky, ele mostra diversas técnicas de refatoração envolvendo a aplicação de padrões de projeto.
Hoje em dia estamos quase sempre lidando com uma arquitetura distribuída e por isso o livro Microservices Patterns do Chris Richardson é essencial. Ele aborda muitos padrões fundamentais para este tipo de arquitetura como SAGA, CQRS, API Gateway, Circuit Breaker, entre outros. Um outro livro muito interessante sobre o assunto é o Practical Microservices do Garofolo.
Completando a lista temos dois livros sobre arquitetura de software do Neial Ford: Fundamentals of Software Architecture e Software Architecture: The Hard Partes, ambos excelentes.
Por fim, existem dois livros que contam muitas histórias interessantes, falam sobre comunicação, conhecimento, modelagem, gestão, complexidade e que podem ser lidos em qualquer momento da sua carreira: Mythical Man-Month e Pragmatic Programmer.
Sobre o idioma, depende muito do seu nível em inglês, se ele for mais iniciante talvez seja preferível sempre comprar os livros em português. Se você já estiver mais acostumado e quiser gastar pelo menos o triplo pra comprar o livro, escolha a versão em inglês, além disso ela não terá erros de tradução que são muito comuns nesse tipo de livro.
Boa leitura!