Recomendações de livros para programadores
Deixe aqui suas recomendações e comentários de livros sobre engenharia de software e afins. Aqui vai a minha:
Accelerate - Building and Scaling High Performing Technology Organisations; Nicole Fergrson
Achei sensacional em todos aspectos. Ótimo guia não apenas para desenvolvedores, mas para líderes e principalmente CTOs. Pra mim o DORA Metrics é um norte absoluto e não vi até hoje nada que contradizesse seus princípios.
Só acho que não recomendaria a leitura pra alguém sem experiência corporativa na área porque muitos pontos ficariam distantes da realidade da pessoa.
Clean Code; Robert Martin
Não gostei. É um livro bem religioso quanto ao certo e errado dentro da programação e ignora que software evolui a cada ano e com ele as necessidades e práticas. Tem bons pontos, mas que deveriam ser mais um norte a se seguir do que algo a ser fielmente respeitado.
Não consigo imaginar um projeto grande que siga 100% desses dogmas e seja de fácil manutenção e compreensão. Pra mim é o famoso "envelheceu como leite".
Não cheguei a terminar.
Domain-Driven Design; Eric Evans
DDD como arquitetura é pra poucos projetos. Independente de um dia você de fato topar com um projeto que justifique a aplicação do DDD, ler este livro é muito bom para conseguir perceber a real natureza de um software: representar o negócio.
Pra mim foi um divisor de águas quanto à maneira de se enxergar as responsabilidades de um código e como construir algo que faça sentido ao invés de apenas chegar em um resultado que funcione. Linguagem ubíqua, cultura organizacional, modelagem, entidades não anêmicas, etc, são todos conceitos que acho importantes independente da arquitetura.
Engenharia de Software; Roger Pressman
É pra mim o que o Clean Code tentou ser e não conseguiu e muito mais. Apesar de achar ele vago demais em muitos pontos, o que dificulta a aplicabilidade (diferente da didática do Domain-Driven Design e do Accelerate), gosto justamente de como ele é capaz de enxergar a natureza abstrata do software e ainda assim estabelecer práticas extremamente válidas e importantes pra qualquer programador possível independente da área.
Ele te ensina praticamente tudo que você deveria saber pra fazer o primeiro projeto pessoal, encabeçar o primeiro freela, conseguir a primeira vaga ou mesmo revisitar após anos de experiência pra repensar os vícios e fraquezas.
Ainda não terminei (1300 páginas é tipo o One Piece dos livros).
Entendendo Algoritmos; Aditya Bhargava
Indispensável. Cumpre o que promete: ensinar o que qualquer programador deveria saber de algoritmos com qualidade e simplicidade. Pra mim substitui muito curso de faculdade que não tem metade da qualidade e didática.
Claro que teoria e prática são duas coisas diferentes (e o próprio livro te lembra disso), mas é um ótimo livro para acompanhar uma lista de exercícios e treinar pra leet code, por exemplo.
Sistemas Operacionais Modernos; Andrew Tanenbaum
Apesar de ser excelente, é maçante. Eu li apenas o primeiro capítulo e preferi não continuar por enquanto porque tinha a impressão de que começaria a entrar em searas tão específicas que se eu não fosse um programador de OS ou sistemas embarcados eu acabaria esquecendo de tanta informação já na semana seguinte.
Não vejo isso como uma falha do livro, ele apenas se dispõe a abordar um tema tão vasto que pra fazer com a qualidade que faz não poderia ser diferente. Na verdade, é incrível pensar no tanto de gaps de conhecimento que preenchi só no primeiro capítulo lendo sobre terminal x shell, kernel x libs, processos x threads e virtualização.