10 livros que todo desenvolvedor .NET deve ler

Olá, tudo beleza? Frequentemente recebo perguntas sobre indicações de livros para se ler. Eu curto muito ler e com certeza é uma pergunta que adoro responder, mas que ao mesmo tempo sinto que indicar 1 ou 2 não é suficiente.

Além disso, acredito fortemente que não são apenas temas técnicos que vão trazer uma carreira de sucesso ao desenvolvedor. Existem diversas áreas como disciplina, financeira e comunicação, que são essenciais para se tornar uma pessoa, colega e amigo melhores, e que influenciam diretamente na sua carreira. Por conta disso, peço para passar por todas as recomendações. 😉

Por fim, muitos vão estar em inglês. Se você ainda não se sente confortável com o idioma, veja como uma ótima chance de se desafiar e avançar em sua carreira. Uma hora a conta fecha e você vai agradecer por ter aprendido antes que uma oportunidade chegue, que exija saber falar/entender (ambiente internacional).

Muitos livros bons vão ficar de fora, e está tudo bem. São recomendações minhas, e nada imposto sobre serem os melhores do mundo nem nada disso.

Vamos lá?


Código Limpo: Habilidades Práticas do Agile Software

Começo este artigo com essa obra prima. Escrito por ninguém menos que o mito Robert C. Martin, este livro é tido por muitos como o número 1 de leitura obrigatória para desenvolvedores.

Algumas pessoas não gostam da tradução (enquanto outras não vêem problema), então para não falhar pela omissão, deixo aqui o link da versão em inglês.

Ele aborda diversos temas de maneira detalhada, como:

  • Legibilidade e nomenclaturas;
  • Funções;
  • Comentários;
  • Tratamento de erros;
  • Testes unitários;
  • Code Smells;
  • Entre muitos outros;

Li ele um par de vezes, e já estou planejando ler uma terceira. Livro muito completo, e definitivamente essencial para desenvolvedores. Inclusive, já organizei sorteios dele anteriormente!

Voce pode encontrá-lo aqui, tanto em formato Kindle quanto em formato físico.


The Pragmatic Programmer

Não é a toa que este livro está frequentemente em listas de top 10 livros para desenvolvedores. É um livro incrível, que contribui muito para minha carreira como desenvolvedor, e que me fez olhar além do hype de tecnologias e bibliotecas.

Nele é discutido, entre muitas coisas, temas como boas práticas, como se posicionar no trabalho e carreira, testes, e vulnerabilidades de segurança. Esses temas e muitos mais são apresentados de forma prática e objetiva, com dicas concretas que vão te ajudar a ser mais produtivo e assertivo em seu trabalho, e a construir uma carreira de sucesso.

Voce pode encontrá-lo aqui, tanto em formato Kindle quanto em formato físico.


Building Microservices

Livro mais completo que já li sobre o tema.

Passa por inúmeros conceitos sobre arquitetura de microsserviços, e explica MUITO bem. Algo que eu gosto muito a respeito da escrita do autor é que ele não é sensacionalista a respeito dessa arquitetura. Ele explica os conceitos bem detalhadamente, e deixa claro os desafios que podem ser encontrados na adoção dessa arquitetura. Super recomendo!

Alguns conteúdos (dentro muitos) abordados.

  • O que são microsserviços, benefícios, desafios;
  • Técnicas de decomposição;
  • Como modelar domínios usando DDD;
  • REST;
  • Comunicação baseada em eventos;
  • Versionamento;
  • Testes;

Voce pode encontrá-lo aqui, tanto em formato Kindle quanto em formato físico.


Writing High-Performance .NET Code

Se você busca um livro sobre performance em .NET, acabou de achar! Estou lendo ele ainda, mas inspirou um mini-curso meu sobre performance em .NET (disponível a alunos), e me deixou desconfortável (de maneira positiva) diversas vezes durante a leitura.

Acredito que aprendemos mais quando saímos da zona de conforto, e esse livro certamente tem feito esse trabalho comigo. Se você está buscando aumentar o seu nível técnico, certamente é um baita livro.

Alguns dos temas discutidos:

  • Ferramentas de medição de performance;
  • Gerenciamento de memória e Garbage Collector;
  • Compilação JIT;
  • Programação assíncrona;
  • E diversos outros pontos e comparações de performance em .NET.

Você pode encontrá-lo aqui, tanto em formato Kindle quanto em formato físico


Designing Data-Intensive Applications

Um livro extenso e completo a respeito de sistemas que lidam com dados, discutindo diversos princípios e trade-offs relacionados a estruturas de sistemas de dados e decisões sobre eles.

Alguns dos temas discutidos:

  • Escalabilidade, manutenibilidade e confiabilidade em sistemas;
  • Modelos de dados e consultas;
  • Encoding;
  • Dados distribuídos (modelos de replicação, particionamento, etc);
  • Transações;
  • Processamento Batch;
  • Streams;
  • E mais.

Mais um livro ideal se você quer se desafiar tecnicamente e progredir em sua carreira e nível técnicos.

Você pode encontrá-lo aqui, tanto em formato Kindle quanto em formato físico


Trabalho Eficaz com Código Legado

Código legado. Essa expressão traz a tona preocupação a diversos desenvolvedores. Esses desenvolvedores, em algum momento de suas carreiras, precisaram realizar alterações em códigos de difícil compreensão, mal escritos e/ou organizados, e que sua atualização causa erros em partes do sistema em que nem se imaginava.

Neste livro, Michael Feathers aborda o conceito de refatoração, bem como de código legado. Apresenta de maneira muito prática diversas técnicas para refatorar códigos, tornando-os de melhor testabilidade, ou de legibilidade.

Achei ele incrível, já que toca em um ponto em que diversos desenvolvedores evitam falar, mas que acaba fazendo parte integral de nossas carreiras. Me sinto bem mais confiante em realizar alterações em códigos, já que pude aprender técnicas bem definidas para isso.

Voce pode encontrá-lo aqui, tanto em formato Kindle quanto em formato físico.


Microsoft .NET – Architecting Applications for the Enterprise (Developer Reference) (English Edition)

Um livro fantástico para todos os níveis, na minha opinião. Nele, os autores exploram uma boa variedade de conteúdos, dando uma grande atenção ao Domain-Driven Design (ou DDD) durante o livro quase inteiro. Os exemplos são em C#, mas acho também valioso para desenvolvedores em outras linguagens.

São cobertos diversos temas importantes, como:

  • Papel do arquiteto de software;
  • Boas práticas e princípios de desenho de software, e Big Ball of Mud;
  • Testabilidade;
  • DDD, abordando linguagem ubíqua, contextos delimitados, modelo de domínio, agregados, serviços, e outros;
  • CQRS e Event Sourcing;
  • Persistencia;
  • E mais;

Já li esse livro duas vezes, e vou caminhar para a terceira. Livro muito bem escrito, e que acredito que todo desenvolvedor .NET deve ler!

Voce pode encontrá-lo aqui, tanto em formato Kindle quanto em formato físico.


Os Segredos da Mente Milionária

Se você pensou “ah, não, um livro de coach não!!”, peço que reconsidere. 😉

Este é um livro fantástico, e até o momento de ler ele eu também pensei algo do tipo acima. A realidade é que nós tendemos a ter uma visão muito parcial sobre a situação financeira, de maneira a achar que é normal uma série de práticas que na verdade não são. O livro vai te dar muito tapa na cara, mas que vão te fazer acordar para a sua realidade e como melhorá-la.

Além disso, principalmente como desenvolvedores, vejo diversos casos de pessoas que não gostam de negociar. Fazem trocas de emprego claramente desfavoráveis financeiramente, achando que dinheiro é um aspecto pequeno em uma mudança (sério, já vi isso diversas vezes). Dinheiro contribui para a estabilidade familiar e de saúde, e financia projetos pessoais e formações, além de doações caso queira (e te recomendo fazer!).

No momento que passamos a valorizar mais o dinheiro e a como mantê-lo (e aumentar), passamos a investir mais em nós mesmos, em tomar decisões mais acertadas e a criar e progredir em novos projetos pessoais, como viagens e mudanças positivas.

Voce pode encontrá-lo aqui, tanto em formato Kindle quanto em formato físico.


Como Fazer Amigos e Influenciar Pessoas

Muitos profissionais da área de TI têm dificuldade em se comunicar ou se sentem desconfortáveis conversando com funcionários dos seus ou de outros setores, ou entrevistadores. Coisas simples como lembrar o nome da pessoa que você acabou de conhecer, ou tentar aceitar a visão de outras pessoas influenciam enormemente as relações que você tem, e consequentemente sua carreira.

O livro vai muito além disso, e até já estou planejando ler ele uma segunda vez!

Voce pode encontrá-lo aqui, tanto em formato Kindle quanto em formato físico.


Goals! How to Get Everything You Want – Faster Than You Ever Thought Before

“Se você não sabe para onde ir, qualquer caminho serve”. Neste contexto, aplico sobre a nossa carreira e vida como desenvolvedores. A realidade é que pouquíssimas pessoas definem e planejam seus objetivos, e isso influencia muito na carreira delas.

Conquistas como se tornar um desenvolvedor (júnior, pleno, senior, líder) requer tempo, planejamento e prática. Ambos extremos se provam ineficientes: planejar demais e não aplicar, e aplicar demais sem direcionamento.

Diversas coisas que eu alcancei durante minha carreira foi graças ao conteúdo valioso desse livro. Se você sente que precisa ter uma maior clareza de onde quer chegar, e das ações as quais deve realizar para isso, indico ele.

Voce pode encontrá-lo aqui, tanto em formato Kindle quanto em formato físico.


Observação

Esses são livros excelentes, e existem muito mais por aí que também são. Mas vale o lembrete: se não aplicar, não vai ter resultados. É muito bonito postar que leu 20 livros no ano, mas uma coisa comum é que não se aplica o conhecimento lido e o livro passa a ser apenas um número. Se você ler, absorver e aplicar o que é ensinado nesses livros, eu tenho certeza que seus resultados serão incríveis.