Recomendações

Livros


Título Por que eu recomendo?
Capa do livro Código Limpo, do Robert C. Martin

Código Limpo - Robert C. Martin (Uncle Bob)

Este livro é leitura imprescindível para qualquer desenvolvedor que deseje escrever código de qualidade. Através de uma série de exemplos, ele ensina uma série de práticas que, se aplicadas, melhoram exponencialmente a qualidade do nosso código, tornando-o mais simples, fácil de compreender, e o mais importante, fácil de manter.

Minha experiência com o livro foi transformadora, e a mudança foi bastante rápida. Em poucas semanas, minha atitude com relação à programação mudou, e é aí que está o maior trunfo do livro: ele nos ensina a programar com empatia.

Capa do livro Arquitetura Limpa, do Robert C. Martin

Arquitetura Limpa - Robert C. Martin (Uncle Bob)

Neste livro, Uncle Bob destila sua vasta experiência numa série de lições extremamente úteis para o desenho de sistemas, trazendo valiosas técnicas para controlar o nível de acoplamento entre componontes de software.

Algumas lições que considero valiosas no livro são:

  • O conceito de Arquitetura Gritante

  • Inversão de controle como ferramenta de desacoplamento das camadas de uma aplicação

  • Qualquer tipo de aplicação pode ter uma arquitura limpa, do código embarcado a um conjunto de microserviços

Capa do livro Refactoring, do Martin Fowler

Refatoração: Aperfeiçoando o Projeto de Código Existente - Martin Fowler

Através de uma de uma série de exemplos práticos, Martin Fowler ensina um número de técnicas, das bases às mais avançadas, capazes de transformar praticamente base de código ruim em uma base de código exemplar. E ele faz isso utilizando testes unitários como uma rede de segurança e TDD (Test Driven Development) como processo de evolução iterativa do código em processo de refatoração.

Recentemente, Fowler lançou a segunda edição do livro. A grande diferença entre a primeira e a segunda versões é a linguagem de programação utilizada nos exemplos. Enquanto a primeira lançada em 2004 conta com exemplos em Java, a segunda versão traz exemplos em Javascript.

No fim, independente da versão que você escolher, seu repertório de técnicas de refatoração irá muito além do básico apresentado no livro Clean Code (Robert C. Martin).

Capa do livro Growing Object-Oriented Software, Guided by Tests, de Steve Freeman e Nat Pryce

Growing Object-Oriented Software, Guided by Tests - Steve Freeman, Nat Pryce

Neste livro, os autores Steve Freeman e Nat Pryce apresentam os processos que eles usam, e os princípios de design que buscam seguir. Eles apresentam como TDD pode ser usado em múltiplos níveis para dirigir os recursos e a estrutura de códigos orientados a objeto. Leitura indispensável para quem quiser apredender TDD em profundidade.

Capa do livro Avalie o Que Importa, de John Doerr

Avalie o Que Importa - John Doerr

Este livro mudou para sempre a minha forma de encarar metas e objetivos. Apresentando a história de várias empresas de sucesso, como Intel, Google e YouTube, o autor mostra como os OKRs (Objective Key Results) são uma ferramenta poderosa para trazer alinhamento e força para uma organização. Quando todos remam para o mesmo lado, é mais fácil avançar rápido e na direção certa.

Capa do livro Avalie o Que Importa, de Nicole Forsgren Phd, Jez Humble e Gene Kim

Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations - Nicole Forsgren Phd, Jez Humble e Gene Kim

Existem centenas de frameworks e técnicas por aí que prometem tornar seu time "mais ágil", entregas melhores e com mais qualidades. Mas quantas vezes mudamos a forma de fazer as coisas e depois nos perguntamos: será que as coisas melhoraram mesmo? Estamos mais ágeis? Mais rápidos?
Em Accelerate, os autores mostram como identificaram os dois pares de contra-métricas que resumem a eficiência e eficácia de uma organização, sendo eles o DF (Deployment Frequency) e CFR (Change Failure Rate), e MTTR (_Mean Time To Restore) e MTBF (Mean Time Between Failures).
É um livro fascinante e leitura obrigatória para quem trabalha com desenvolvimento de software com seriedade.

Blogs


Título Por que eu recomendo?

Stephen Guise Blog

Stephen Guise é o autor dos livros Mini Habits e Elastic Habits, e o seu site/blog é uma mina de insights sobre como melhorar vários aspectos da nossa vida. Da criação de hábitos saudáveis a estratégias de planejamento de longo prazo.

Blog do Scott Hanselman

O blog do Scott Hanselman traz muito conteúdo interessante relacionado a .NET, ASP.NET e Windows. Ele acaba trazendo muitas ferramentas de produtividade e curiosidades sobre esse ecossistema.

Normalmente eu acompanho as novidades nesses blogs utilizando os feeds RSS através da ferramenta Feedly. A tecnologia caiu em popularidade nos últimos anos, mas continua sendo muito útil e facilita acompanhar algumas dezenas de blogs.

Podcasts


Título Periodicidade Duração Por que eu recomendo?

Lex Fridman Podcast

1 a 2 episódios por semana

2-5 horas

Lex Fridman é um pesquisador em Machine Learning no MIT. No início, esse podcast de entrevistas se chamava Lex Fridman AI e era focado somente nos campos de inteligência artificial e aprendizado de máquina, mas depois pivotou para um modelo de entrevistas mais aberto, muito parecido com as entrevistas do Joe Rogan.

Lex nasceu na antiga União Soviética e imigrou para os EUA ainda criança, e tem uma visão bastante romântica do mundo, e isso confere muita autenticidade para as entrevistas.

Os entrevistados variam muito, podendo ser cientistas, matemáticos, lutadores de Jiu Jitsu, filósofos, empreendedores, e muito mais. É de longe meu podcast favorito.

Hanselminutes

Semanal

30 min

É um podcast de entrevistas focado em tecnologia. Os entrevistados são diversos e os temas são abordados de maneira leve, tornando o podcast muito acessível. É uma excelente fonte para conhecer novas tecnologias, ferramentas e conceitos.

Software Engineering Unlocked

Quinzenal

50 min

Software Engineering Unlocked é um podcast da Dr. Michaela Greiler, especialista e pesquisadora em code reviews. Os episódios exploram a aplicação de testes e técnicas de code review em organizações de todos os tipos. É um podcast extremamente instrutivo e muito adequado para quem se interessa pelo tema da qualidade de software.

Dan Carlin’s Hardcore History

3 a 6 meses

4-6 horas

Hardcore History não é um podcast, mas um show de História em áudio. Dan Carlin sabe narrar e explorar a História como ninguém. Existem alguns episódios avulsos em sua temática, e também séries como Supernova in the East, que narra a jornada explosiva do Japão imperial na Segunda Guerra Mundial em 30 horas de programa, divididas em 6 episódios, explorando diferentes pontos de vista e acontecimentos de modo a prover para o ouvinte um contexto rico para compreender o modelo mental das várias personas envolvidas na guerra, como os imperialistas japoneses, os chineses acometidos pela guerra desde bem antes de 1941, dos aliados, dos britânicos e dos estadunidenses, dos soldados, dos generais, dos políticos, e dos povos.

Alguns programas que recomendo fortemente:

  • Blueprint for Armageddon: explora a primeira guerra mundial em profundidade

  • Supernova in the East: sobre a tragetória do Japão na II Guerra Mundial

  • Painfotainment: explora a relação da humanidade com dor e entretenimento ao longo da História

YouTube


Título Periodicidade Duração Por que eu recomendo?

Continuous Delivery

Semanal

15-20 minutos

Continuous Delivery é um dos melhores canais no YouTube quando o assunto abrange Integração Contínua, Entrega Contínua, TDD e BDD. O canal é mantido pelo Dave Farley, um dos autores do livro de 2010 que inpulsionou a adoção da abordagem da entrega contínua no mundo, Entrega Contínua.

Two Minutes Paper

Semanal

5-10 minutos

Este canal é extremamente útil para manter-se informado sobre o estado da arte nos campos da Inteligência Artificial, Aprendizado de Máquina, Computação Gráfica e Simulação Física. Cada vídeo traz uma análise de um novo paper que avança um desses campos, e com poucos minutos por semana, é possível entender como eles estão evoluindo com velocidade impressionante.

A linguagem usada pelo Dr. Károly Zsolnai-Fehér não é extremamente complicada, mas o conteúdo pode ser bastante inacessível para quem não tenha um conhecimento de base nessas áreas. Os conteúdos de uma faculdade de Ciência da Computação já são suficientes para poder apreciar o conteúdo desse canal.