Os 7 livros de programação mais recomendados

Lembro que quando ainda era estudante de Ciência da Computação eu gostava muito de estudar usando livros pois passava horas por dia em ônibus. Em 2006 smartphones eram quase inexistentes (o iPhone só seria lançado no ano seguinte), os tablets ainda demorariam alguns anos para despontar e o que nos restava era o bom e velho livro de papel e tinta.

Uma dúvida comum que eu tinha na época era: qual livro é o melhor?

Lembro de entrar na biblioteca da Ulbra Gravataí, que não é nada imensa mas possui dois andares abarrotados de livros, e perder muito tempo pelas prateleiras de computação sem muita certeza do que pegar. Pior ainda quando ia em livrarias, pois o dinheiro era escasso e os títulos eram muitos. Pra complicar ainda mais, livros de programação são extremamente caros, na faixa dos R$100, e uma compra errada te prejudica financeiramente durante um bom tempo (não existiam ebooks como esses na época). 😛

Hoje, na função de professor, vez ou outra algum aluno me pede a indicação de algum livro. Quando condizente, acabo indicando algum de meus livros, mas nem sempre são a melhor opção, principalmente se o aluno quiser impresso (os meus são ebooks).

Recentemente o site Dev-Books.com analisou mais de 40 milhões de perguntas e respostas do site StackOverflow.com para descobrir os livros mais recomendados pelos programadores. Caso você ainda não conheça o StackOverflow.com ele é o maior site de perguntas e respostas sobre programação do mundo!

Para este post eu separei alguns itens da lista que eu confirmo como muito bons, seja porque eu li, ou porque alguém que eu confio leu e recomenda. A lista completa pode ser encontrada neste link (em Inglês).

Clique na capa de cada livro para ver os preços na Amazon.

#1 Padrões de Projeto: Soluções reutilizáveis de software orientado à objetos

Número dois na lista mundial de recomendações da Dev-Books.com, o clássico da Gang of Four que definiu e formalizou os padrões de software mais conhecidos e utilizados da indústria. Referência obrigatória em qualquer disciplina de padrões de projeto em faculdades mundo afora, é um livro denso e que eu não recomendo para iniciantes em software, mas que é livro de cabeceira para programadores plenos e sêniors que busquem se tornar ainda melhores.

Caso esteja começando agora a se tornar um programador e deseje uma leitura mais light (embora não tão completa), sugiro o Use a Cabeça: Padrões de Projeto, citado mais abaixo nesse post.

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

Clássico de Robert C. Martin, o Uncle Bob, Código Limpo é o#3 da lista mundial, sendo um livro objetivo, pragmático para escrever código melhor desde a sua concepção, produzindo softwares mais robustos e manuteníveis.

Confesso que nunca li este livro, embora tenha “bebido” de seu conteúdo diversas vezes através de suas técnicas universais e muito difundidas de escrita e refatoração de código, uma vez que o Tio Bob é uma referência mundial no assunto. Além disso, muitos programadores de confiança leram e recomendam para todos os níveis de programação!

#3 Domain Driven Design: Atacando as complexidades no coração do software

Outro clássico sobre padrões de projeto, #5 da lista mundial, especificamente sobre DDD: Domain Driven Design, ou projeto orientado à domínio.

Uma arquitetura de software muito difundida atualmente, o DDD também não é uma leitura muito fácil para iniciantes, mas obrigatória para engenheiros de software.

Também não conheci o DDD através desse livro, mas através de tutoriais e aulas na Internet. O que não diminui, no entanto, a sua importância enquanto instrumento de ensino.

#4 Padrões de Arquitetura de Aplicações Corporativas

Novamente, mais um livro de padrões de projeto, #7 da lista mundial. No entanto, diferente do DDD do Eric Evans e do Design Patterns da Gang of Four, este aqui eu recomendo para todos os públicos. Isso porque além de ser extremamente bem organizado, tem padrões com as mais variadas complexidades, muito objetivos, com exemplos muito claros e muito prático.

Diferente dos GoF Patterns, o catálogo PEAA (em alusão ao nome original, Patterns of Enterprise Applications Architecture) é muito mais prático e é difícil de encontrar um padrão em que você não tenha um bom exemplo de uso em mente, enquanto nos design patterns originais alguns soam muito específicos e com pouca utilidade para o modelo moderno de desenvolvimento de software.

#5 – Use a Cabeça: Padrões de Projeto

Esse sim é um livro de padrões de projeto para iniciantes!

Como todos os livros da série Use a Cabeça, essa edição é extremamente didática, pouco ortodoxa e muito prática. Enquanto os mais conservadores torcerão o nariz para o #10 da lista mundial, os mais jovens vão achar o máximo os exemplos utilizados, a estrutura do livro e o conhecimento que irão adquirir lendo essa imensa (e cara!) obra.

Tenho um grande apreço por esse livro pois foi com ele que finalmente consegui entender padrões de projeto para mais tarde poder ir atrás das fontes mais clássicas e me aprofundar no assunto.

#6 – TDD: Desenvolvimento Guiado por Testes

Talvez uma das maiores contribuições de Kent Beck para a humanidade, o #13 livro de programação mais recomendado mundialmente (#6 na minha lista). A metodologia TDD se une às suas demais invenções do autor, como a metodologia ágil XP, para nos trazer um mindset completamente oposto ao usual de programar > testar para testar > programar, focando o desenvolvimento nos requisitos do usuário e programando de “fora pra dentro”.

Este é um framework fácil de entender e muito difícil de ser dominado, semelhante ao que se enfrenta ao adotar o Scrum, mas mais especifico ao desenvolvimento de software em si. Vale a leitura ou ao menos (como eu) entender seus conceitos e tentar absorver o que puder.

#7 – Algoritmos: Teoria e Prática

O livro supremo de algoritmos e programação!

Muito usado por diversos professores ao redor do mundo para ensino de algoritmos em faculdades, o autor Thomas Cormen é uma lenda quando o assunto é este tópico e lembro de ter lido muito de seus materiais na época que fazia mestrado.

Embora eu não tenha lido especificamente este trabalho do autor que é o #14 mais recomendado do mundo, já li outro livro que é bem maior aliás e certamente é uma boa leitura para quem quiser dominar a base da programação e principalmente se quiser ensinar alguém um dia.

Note que nenhum dos livros fala de alguma tecnologia específica como Java ou C#, mas sim de conceitos e técnicas mais amplas, que são úteis a todos os programadores. Como já comentei em outras ocasiões, é a “base” que faz os programadores de verdade!

Bônus: Livros de Tecnologias Específicas

Devido à pedidos, atualizei o post com alguns livros que li e recomendo quando assunto é aprender alguma linguagem de programação ou tecnologia específica. Eles não estão em uma ordem específica, uma vez que citei apenas um por linguagem/plataforma.

Clique na capa para ver os preços dos livros na Amazon!

Java: Guia do Programador

Esse autor, o prof. Peter Jandl Junior, possui uma didática muito boa e me baseei muito na forma como explica os conceitos do Java quando escrevi o meu próprio livro sobre o assunto, o Java para Iniciantes. Na verdade eu literalmente aprendi Java com esse professor em 2006 e sou muito grato à ele por isso.

Google Android

O livro mais famoso de Android, do autor Ricardo Lecheta pela Editora Novatec. Eu poderia recomendar o meu livro também, o Criando apps para empresas com Android, mas nem se compararam ambos os livros (inclusive em preço :P).

C# 3.0: Guia de Bolso

Ok, nem de longe é o livro mais recente de C#, mas a didática é excelente. Vi que tem versões desse mesmo livro mais atuais, então dá uma procurada que você acha, é só se basear pela capa e pela editora: OReilly. Se um dia eu for escrever um livro de C#, certamente me basearei nesse aí. Me ajudou muito quando estava começando com essa linguagem em 2007.

Javascript: The Good Parts

Eu não li esse livro na verdade, mas está na minha lista desde que comecei a estudar Node.js com mais afinco. Foi uma recomendação de alguém que conheci em um evento e que entendia muito mais de Node.js que eu. Ele me afirmou que é excelente para realmente entender JS. Especificamente de JQuery tem um que eu recomendo muito que é o JQuery Fundamentals, que eu nunca mais encontrei.

Expressões Regulares: Uma Abordagem Divertida

Esse livro é fantástico e já fiz uma resenha completa dele aqui no blog. Mudou muito a forma coo passei a lidar com problemas de string e me ajudou a fundar minha primeira startup em 2010.

E aí, gostou da lista?

Tem alguma outra sugestão de livro que vale a recomendação?

Posta aí nos comentários!

As 17 Incontestáveis Leis do Trabalho em Equipe – Resenha

Em meados de 2010 eu tinha 4 anos de experiência na área de TI e estava almejando posições de liderança nos projetos que estava participando. Estava acabando a minha faculdade de Ciência da Computação e depois de tantos anos trabalhando como desenvolvedor eu estava migrando para a área de análise de sistemas, geralmente associada à liderança de equipes de desenvolvimento.

Foi nessa época que fiz um curso de Scrum e Métodos Ágeis para gerenciar projetos, tirei certificações, li excelentes livros como o Monge e o Executivo e como esse, As 17 Incontestáveis Leis do Trabalho em Equipe, de John Maxwell. Ganhei esse livro em um amigo secreto da empresa, naquele mesmo ano. Achei estranho, nunca tinha ouvido falar desse livro, e nem mesmo eu havia pedido ele, mas dei um voto de confiança, e foi um tiro certeiro de quem me deu, pois o livro é excelente.

John Maxwell é um administrador que ajuda igrejas americanas a profissionalizarem a sua gestão, saírem do vermelhor, baterem metas, etc. É algo curioso de se fazer, uma vez que a maioria das pessoas não está acostumada a ver as igrejas como empresas, embora elas o sejam, inclusive possuindo CNPJ aqui no Brasil e tudo mais. Pois bem, Maxwell ajuda igrejas a umas 4 décadas, além de já ter ajudado com consultorias e treinamentos outros tipos de empresas, sendo autor de outros livros sobre o mesmo tema de servo-liderança e trabalho em equipe que já venderam mais de 13 milhões de cópias (e eu feliz com os números de meu livro de Pokemon Go…). Segundo ele, essas são algumas das maiores necessidades nas empresas, por isso que foca nelas.

Mas do que se trata esse livro? Maxwell lista 17 itens que ele chama de “incontestáveis leis”, explicando como o não cumprimento dessas regras afeta o desempenho de toda a equipe, da empresa e consequentemente leva todos à falha em alcançar os objetivos. Para cada lei ele nos presenteia com uma história bem interessante, o que aliás é muito comum nesse tipo de livro que, sem menosprezar, é uma autoajuda profissional. As histórias ilustram muito bem cada uma das leis, são bem interessantes, e geralmente estão ligadas ao nome dado por ele à cada lei.

Assim temos a Lei do Significado, a Lei da Perspectiva Global, a Lei do Nicho, a Lei do Monte Everest, a Lei da Corrente (essa muita gente conhece), a Lei do Catalisador (essa me inspirou muito), a Lei da Bússola, a Lei da Laranja Estragada (outra bem conhecida), a Lei da Confiança, a Lei do Preço a Pagar (a mais difícil os chefes entenderem), a Lei do Placar (gestão à vista), a Lei da Reserva, a Lei da Identidade, a Lei da Comunicação, a Lei da Vantagem (não é a mesma do futebol), a Lei do Moral Elevado (essa eu sempre falei mas ninguém acredita) e a Lei dos Dividendos.

Para cada lei temos um capítulo dedicado à ela, muito bem escrito, traduzido e inspirador. Você pode ler tranquilamente uma lei por dia, logo após o almoço ou antes de dormir, o que deve lhe ajudar nas decisões que irá tomar em relação ao seu time no dia seguinte. Eu realmente gostei desse livro e é meu livro de cabeceira quando o assunto é gerenciamento de pessoas. Não que eu seja um expert no assunto, mas de 2010 para cá, minhas funções foram sempre de liderança em equipes, o que vai fazer 7 anos já.

Disponível à venda na Amazon.

Vou abrir aqui um parênteses, mas curiosamente esse livro também ajudou a mudar outro pensamento que eu tinha, mas a respeito de algo bem mais banal: o amigo secreto da empresa. Sim, isso mesmo. Até ganhar esse livro eu colocava sempre na lista de presentes o que eu queria ganhar de amigo secreto, e sempre recebia exatamente o que pedia. Era algo extremamente chato e premeditado.

Quando ganhei esse livro percebi que os melhores presentes são de pessoas que não te dão o que você pediu, mas sim o que você precisava. Melhor ainda quando você não pede nada, e a pessoa “se ferra” tendo que descobrir do que você gosta. A responsabilidade nessas horas é muito maior, e com isso a dedicação também aumenta muito (isso daria uma boa lei, tipo a Lei da Responsabilidade).

De duas uma: ou a pessoa não vai conseguir descobrir nada de você pois não tem intimidade alguma, ou ela vai dar um jeito e provavelmente você ganhará um grande presente. Comigo tem acontecido a segunda opção nos últimos anos, desde que passei a adotar o padrão de não colocar nada na lista de amigo secreto. Se me perguntam ou me obrigam, apenas respondo que quero um livro bom, simples assim.

Fica a dica caso queira colocar um pouco de adrenalina no seu próximo amigo secreto, hehehehe.

Business Model Generation – Resenha

Business Model Generation: Inovação Em Modelos De Negócios é um livro de 2009 que eu conheci em meados de 2012. Estamos em 2017 e achei que nessa altura do campeonato eu não encontraria mais nenhum empreendedor que não tivesse lido essa pérola, mas não é verdade. Escrito por Alexander Osterwalder, é livro de cabeceira, tão recomendado quanto o Lean Startup, que já comentei aqui em outra oportunidade. Resumindo, esta resenha não é sobre um livro que acabei de ler, mas que todo empreendedor deveria conhecer.

Business Model Generation, ou Geração de Modelos de Negócios, é um livro dividido em três partes, com uma diagramação, arte e orientação únicos, que lhe dão realmente a sensação de estar trabalhando com algo inovador. Na primeira parte do livro, o autor fala do Business Model Canvas, ou Canvas de Modelo de Negócio que, de tão popular no universo de startups, já é chamado apenas de Canvas. O BMC é um quadro dividido em áreas que são peças fundamentais de todo modelo de negócios, desde quem é o seu mercado, qual é o seu produto, e como você linka tudo isso.

Para quem conhece Plano de Negócios, podemos dizer que o Canvas é uma versão resumida de um business plan, com apenas as peças essenciais, sem muitos detalhes e de uma apresentação visual que facilita muito o entendimento e que rapidamente dá uma visão geral de como seu negócio funciona ou vai funcionar. Nesta primeira parte basicamente temos a apresentação do canvas, como preencher cada uma das áreas que o compõem, etc.

Na segunda parte, o autor faz um estudo de modelos de negócio existentes, principalmente os mais inovadores, e aplica a técnica do canvas à eles, para mostrar como é fácil mapear e modificar modelos já existentes usando o Canvas, aprendido na primeira parte do livro. Aprendemos aqui os modelos mais comuns de negócios e outros bem inusitados, que não fazíamos ideia de como existiam. O autor trata muito bem sobre como grandes empresas se renovaram apenas mudando a forma como sue negócio operava, seja mudando seu canal de aquisição de clientes, seu formato de cobrança ou até a visão do que era seu produto na verdade.

A terceira e última parte do livro fala sobre inovação em modelo de negócios, sobre como evoluir negócios já existentes usando o canvas como ferramenta, bem como de dinâmicas para exploração de novas oportunidades em mercados já existentes. Curiosamente este é um livro muito bem organizado em que todas as suas partes são igualmente importantes, o tipo de livro que você lê do início ao fim sem vontade de pular nenhuma etapa ou deixá-lo de lado em nenhum momento. Super recomendado.