10 livros de programação que vão mudar sua carreira
A leitura é importante para os programadores porque os ajuda a serem mais produtivos. Também os ajuda a ficar a par das últimas tecnologias e tendências do setor de programação.
Nesta era de sobrecarga de informações, a leitura é uma das habilidades mais importantes para um programador. Isso os ajuda a obter informações e a trabalhar em um tópico e mantém os programadores informados sobre as tendências e notícias do setor.
É também essencial para aprendizagem ao longo da vida profissional de um desenvolvedor.
Nesse sentido, os programadores podem procurar livros que focam em novas tecnologias, frameworks, linguagens de programação e outras ferramentas com as quais podem não estar familiarizados. Também é interessante ler sobre os erros comuns que os programadores cometem.
Neste artigo, veja algumas de nossas principais bibliografias para desenvolvedores de software e como essa leitura pode beneficiar a carreira de um profissional.
Então, vamos exercitar nossas mentes com nossa lista recomendada de livros de programação que todo desenvolvedor deveria ler?
1- Código Limpo: Habilidades Práticas do Agile Software
Mesmo código ruim pode funcionar. Mas se não for limpo, podem surgir problemas.
Inúmeras horas e recursos vitais são perdidos todos os anos devido ao desenvolvimento de código ruim. Mas isso não precisa ser o caso, diz o autor do livro, Robert C. Martin.
Se você praticar diligentemente o conteúdo deste livro, você se tornará um programador mais eficiente.
O livro Clean Code: Practical Agile Software Skills está dividido em três partes:
1- princípios, padrões e práticas para criação de código limpo;
2- Estudos de caso e exercícios práticos;
3- Uma lista de heurísticas coletadas durante a criação do estudo de caso.
O resultado será uma base de conhecimento que descreve a maneira como pensamos ao criar, ler e limpar o código.
Depois de ler este livro, você será capaz de:
distinguir código bom de código ruim;
Saber escrever bom código e como transformar código ruim em código bom;
Crie boas funções, bons objetos e boas classes;
Formate seu código para máxima legibilidade;
Implemente totalmente o tratamento de erros sem ofuscar a lógica;
Aplique testes de unidade e pratique o desenvolvimento orientado a testes.
Este é um livro clássico de programação que todo desenvolvedor, iniciante ou não, deveria ler o conteúdo completo pelo menos uma vez na vida.
Aprenda também como começar a praticar código limpo
2- Trabalho Eficaz com Código Legado
Escrito por Michael C. Feathers, este livro aborda o desenvolvimento ágil de software com foco na criação de código limpo e na importância do desenvolvimento incremental na indústria de software.
Ideal para desenvolvedores que trabalham em depuração, manutenção e desenvolvimento de código do zero.
O livro “Using Legacy Code Effectively” descreve uma estratégia abrangente para lidar com bases de código herdadas grandes e não testadas com mais eficiência.
Com base no material que ele criou para o famoso workshop Object Mentor, Michael C. Feathers apresenta todas as técnicas que ele usa para ajudar centenas de desenvolvedores, gerentes técnicos e testadores a assumir o controle de seus sistemas legados.
Os principais tópicos abordados neste livro são:
Mecanismo de mudança de software: adicione recursos, corrija bugs, melhore o design, otimize o desempenho;
Passe o código pelo framework de teste;
Criar testes para evitar a introdução de novos problemas;
Técnicas disponíveis em qualquer linguagem ou plataforma – exemplos em Java, C++, C e C# – para identificar exatamente onde as alterações de código devem ser feitas
Lidar com sistemas legados não orientados a objetos;
Lide com aplicativos aparentemente não estruturados.
Confira nosso guia completo para lidar com software legado.
3- Padrões de Projetos: Soluções Reutilizáveis de Software Orientados a Objetos
Outro clássico em livros de programação e referências de tópicos, com Design Patterns como exemplo.
O livro Design Patterns: Reusable Object-Oriented Software Solutions foi escrito por uma equipe forte: Ralph Johnson, Erich Gamma, John Vlissides e Richard Helm. Quatro arquitetos de sistemas orientados a objetos.
Este livro contém 23 padrões de projeto de sistema que fornecem soluções simples e objetivas para os problemas mais comuns de engenharia de software.
4- Refatoração: Aperfeiçoando o Design de Códigos Existentes
O livro Refactoring: Improving the Design of Existing Code é um trabalho fundamental para a compreensão do conceito de refatoração, um dos princípios mais importantes de um dos métodos ágeis mais famosos e populares do mundo.
E não menos, este material foi escrito por Martin Fowler em colaboração com Kent Beck, um dos fundadores da Extreme Programming.
O foco deste livro é ensiná-lo a refatorar corretamente seu código e tirar o máximo proveito de seu software.
5- But How Do It Know? – The Basic Principles of Computers for Everyone
Não sei se este livro está disponível em português, pelo menos não estou no mercado editorial brasileiro.
Mas o trabalho é incrível e vale a pena mencionar mesmo em outro idioma.
Todo mundo, pelo menos na vida, sonhou com algum tipo de tecnologia que pode transferir conhecimento de uma pessoa para outra sem esforço, certo?
Talvez isso nunca vá existir, mas o mais próximo disso é Mas como isso sabe? – Fundamentos de Informática para Todos”.
É como se você pudesse absorver toda a experiência de uma pessoa que já passou por tudo isso na indústria.
Este livro revela os maiores segredos da computação para todos os desenvolvedores. Mas especialmente se você está apenas começando na indústria.
É escrito por um veterano de 40 anos que procura desvendar os mistérios por trás do desenvolvimento de software em cada página, dando a você uma visão completa.
Em suma, este é um livro de programação pensativo que irá surpreendê-lo mais.
6- Domain-Driven Design: Atacando as Complexidades no Coração do Software
Eu sei que já falamos sobre padrões de projeto, mas o foco aqui é DDD: Domain Driven Design, ou Domain Oriented Design.
Como uma arquitetura de software muito popular, o DDD não é a leitura ideal para iniciantes, mas é uma leitura obrigatória para quem deseja se tornar um engenheiro de software profissional.
O livro Domain-Driven Design: Overcoming Complexity at the Heart of Software reúne práticas de design e implementação, com vários exemplos baseados em projetos que ilustram bem a prática.
Com este livro, você aprenderá:
Teorias e conceitos importantes sobre DDD;
Crie modelos de domínio valiosos e úteis;
Converta modelos em implementações de software de alta qualidade.
7- O Mítico Homem-mês: Ensaios Sobre Engenharia de Software
Um dos mais clássicos livros de programação de gerenciamento de projetos de software não pode faltar, certo?
Neste tópico, ano após ano, desde 1975, o livro Mythical Man Months: Essays on Software Engineering tem sido utilizado como referência.
A tese básica deste trabalho é que grandes projetos de programação apresentam problemas de gestão, que são de natureza diferente dos pequenos projetos devido à divisão de tarefas.
Com uma riqueza de fatos de engenharia de software e perspectivas instigantes, Frederick Brooks oferece sua visão para quem lida com gerenciamento de projetos complexos.
Os artigos deste livro são extraídos diretamente da experiência pessoal de Frederick como gerente de projetos em empresas como a IBM.
8- Algoritmos: Teoria e Prática
Comumente conhecida como a Bíblia do Algoritmo, é uma leitura obrigatória para todas as bibliotecas de tecnologia.
O livro Algoritmos: Teoria e Prática é utilizado por profissionais, pesquisadores e professores para fins teóricos e consultivos e é referência mundial no assunto.
Thomas Cormen é a autoridade máxima no assunto e, neste livro, ele coletou tudo o que é mais relevante para seus algoritmos de aprendizado.
O livro também contém exercícios práticos, resolvê-los é um grande desafio que permitirá que você se desenvolva mais em sua carreira como desenvolvedor.
9- O Programador Pragmático – De Aprendiz A Mestre
O livro The Pragmatic Programmer – From Apprentice to Master é um dos livros mais resenhados sobre programação.
Não é em vão. Está cheio de dicas práticas e profissionais para ajudá-lo em seus projetos e torná-lo um desenvolvedor melhor.
Ainda hoje, após mais de 20 anos de lançamento, esse trabalho ainda é muito relevante.
Através deste livro, você aprenderá principalmente:
responsabilidade profissional;
Desenvolvimento de carreira;
Tecnologia de software de arquitetura.
O livro é simples e gostoso de ler. Capítulos e capítulos são curtos e agradáveis de ler. Se você não leu, vai adorar!
10- Cracking the Coding Interview: 189 Programming Questions and Solutions
Tem outro livro em inglês na lista, infelizmente descobri que também não é lançado em nosso idioma no Brasil, mas isso não deve ser um problema para você, certo?
Este é um livro essencial para quem quer aprender mais sobre entrevistas técnicas com desenvolvedores e como se dar bem nelas.
Cracking the Coding Interview: 189 Programming Questions and Solutions é o resultado de centenas de entrevistas que a autora Gayle Laakmann McDowell conduziu com engenheiros de software.
Ao folhear as páginas, você descobre detalhes ocultos dos problemas, aprende como dividir os problemas em partes gerenciáveis, desenvolve técnicas de resolução de problemas, aprende (ou reaprende) conceitos-chave da ciência da computação e pratica como se estivesse recebendo o mesmo que entrevista.