10 livros de 2020

🇧🇷  escrito em português brasileiro

~‏‏‎ ‎‏‏‎ ‎9m 58s ‎‏‏‎ ‎‏‏‎⌛

Ainda que o ano não tenha exatamente acabado e deseje terminar mais algumas leituras, resolvi refletir um pouco sobre minhas leituras desse ano – o que lemos acaba refletindo muito de como estamos crescendo e nos desenvolvendo, assim como nos dá pistas de onde seguir no futuro. Utilizo o GoodReads para manter meu controle de leituras. Minha meta para este ano era ler 25 livros. Como já li 45 até agora, bati minha meta com certa folga, mas em 2019, com uma meta de 50 eu passei raspando e certamente esse ano não bateria. Sem qualquer ordem em particular, abaixo meus dez livros favoritos de 2020:

# Designing Data-Intensive Applications

Honestamente, eu me surpreendi tremenadamente com esse livro. Se tornou um de meus favoritos de todos os tempos! É fácil de ler e somos levados dos assuntos mais simples aos mais complexos e para dar conta de grandes sistemas distribuídos, o autore mais emiuçando cada detalhe do ciclo de vida do dado. A didática do autor Martin Kleppmann é incrível, sem deixar de entrar em detalhes de implementação, mas sempre buscando dar uma visão geral de tópicos extremamente complexos – cada um dos capítulos significando trilhas enormes de conhecimento, cheios de referências para quem quiser entrar ainda mais a fundo. O livro foi possui uma ótima página descritiva que ilustra melhor os assuntos abordados. É um daqueles livros que após você concluir você se sente um pouco mais sábio. { Livro na Amazon }

# Effective TypeScript

Não que eu possa dizer que domino TypeScript (o que não seria verdade). Após ler um livro introdutório de TypeScript e feito meus experimentos, me chamou a atenção esse título da família dos Effective books. Esses títulos que seguem o modelo “Effective X” se iniciaram com Scott Meyers, autor de Effective C++ e hoje existem em várias linguagens e de diferentes editores. Meyers até mesmo escreveu sobre como escrever efetivamente Effective Books. Basicamente são livros compostos de “items”, que são pequenos ensaios onde cada título é um conceito e o texto que se segue é a descrição e racionalização dos porquês. Já havia lido Effective JavaScript e mesmo ainda não dominando TypeScript como se tratam de “conselhos”, alguns mais complexos, mas outros que permitem, na prática, entender como é o desenvolvimento naquela linguagem, resolvi dar uma chance e não me arrependi nenhum pouco. Neste livro há 62 destes, iniciando com “Undestand the Relationship Between TypeScript and JavaScript”, passando por items como “Prefer Type Declarations to Type Assertions” e “Name Types Using the Language of Your Problem Domain” até “Don´t Consider Migration Complete Until You Enable noImplicitAny” (e há um capítulo todo apenas sobre como trabalhar com any). { Livro na Amazon }

# Working in Public

Este é um livro sobre o atual estado do panorama open source e as tenções existentes dentro do modelo, em que muitos códigos se tornam infraestrutura para centenas e milhares de site e ainda assim seuscriadores enfrentam problemas de sustentabilidade e mesmo atender as expectativas dos mais diversos tipos de usuários. É uma análise sócio-técnica do ambiente e cheia de insights inclusive com vários paralelos para a mídia, onde ambos enfrentam a questão de que duplicar código ou informação é gratuito, mas o valor dentro de cada pode significar muito. A autora, Nadia Eghbal faz uma análise profunda, propõe uma classificação bem interessante de projetos e termina explorando as formas de monetização e toca em um ponto que cada vez mais parece ser algo bem parecido com os “influencers” de Instagram, Twitter, YouTube e outras plataformas em que desenvolvedores além de seus projetos, passam a criar dezenas e dezenas de comnteúdo e iniciam esse relacionamento parassocial com uma audiência de seu código e mais tarde, de seu trabalho seja em cursos ou outras formas que encontram de se sustentar. Assunto bem amplo, multifacetado, sem resposta única para todo projeto e dilema. { Livro na Amazon }

# The DynamoDB Book

The DynamoDB Book é o livro para estender e dominar o DynamoDB, do mesmo autor do excelente guia de DynamoDB Alex DeBrie. Há opções de compra do livro que incluem códigos, material extra e mesmo vídeos. Para qualquer um pensando seriamente em dominar DynamoDB e é um excelente banco de dados e ainda mais se aprofundar no complexo e impressionante Single-Table Design. Alex apresentou a excelente Data modeling with Amazon DynamoDB seguindo os passos de Rick Houlihan e sua obrigatória Amazon DynamoDB Deep Dive: Advanced Design Patterns for DynamoDB.

# The Phoenix Project, The Unicorn Project & DevOps Handbook

Sim, são três livros e não apenas um. E cada um é diferente do outro, mas cada um explora uma parte dos problemas que todos enfrentamentos para entregar software e como DevOps, uma mudança cultural e técnica, pode realmente mudar a forma como pensamos projetos de software e sua entrega. Eu li na ordem The Phoenix Project > The Unicorn Project e DevOps Handbook. Os dois primeiros são novelas. Eu havia lido ótimos reviews mas estava suspeito de ler novelizações sobre desenvolvimento, mas após ter contato com Accelerate (que definitivamente vou citar em breve!), me lancei a ler e é incrível. Se você trabalha com software em qualquer ponto do processo, ler esses livros do Gene Kim vai te levar a momentos de identificação, de risos, de dramas bem conhecidos, e o que é excelenete, com uma visão para onde seguir. The Phoenix Project seguimos Bill um gerente de TI, que se vê em uma situação impossível do lançamento de um gigantesco projeto cheio de problemas e caos. The Unicorn Project segue Maxine, uma líder técnica na mesma empresa e enfrentando o mesmo grande problema de Bill do outro e de como as perspectivas são totalmenet diferentes e de como projetos podem ter tantas facetas. Já The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations é o livro técnico explorando o que é, e como adotar uma cultura DevOps em uma organização. Se não tem paciência ou mesmo interesse em ficção, este último ainda assim traz todo o ferramental necessário para entender melhor do que se trata e seus desafios e benefícios.

# Fundamentals of Software Architecture

Fiz uma postagem apenas sobre esse livro, ensinou-me bastante e foi uma das melhores leituras do ano. { Livro na Amazon }

# Accelerate

O reporte “Accelerate: State of DevOps” foi um marco para mim. Associado com várias ideias e meu histórico de liderança de um time de desenvolvimento, esse documento foi e ainda é uma grande referência para mim e meu planejamento, inclusive com o modelo proposto deles para melhorar sua performance de entrega. Se este reporte nos dá os números e estatisticas até 2019 e formas práticas de aplicar em organizações, a “Bíblia” é o livro Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations de Nicole Forsgren, Jez Humble e Gene Kim. Nicole Forsgren é uma das minhas maiores referências na área de tecnologia e que agora está trabalhando no GitHub e apresentou Getting better together: What enterprise can learn from global patterns no GitHub Universe 2020, disponível no YouTube. O livro também possui uma página dedicada com material extra. { Livro na Amazon }

# You Don’t Know JS

Novamente, mais de um livro, na verdade seis. Kyle Simpson faz em You Don´t Know JS Yet. Cada livro aborda um aspecto da linguagem e Kyle nos leva ao edge cases, mostra os trade-offs sem cair em lugares comuns de banalizar uma feature, tratar algo como falha de design mas entender o escopo semântico da linguagem e como aplicar isso ao modelo mental que temos da mesma. Muitos problemas ou mesmo opiniões (ditas “técnicas”) nascem da tentativa de expectativas e modelos mentais aplicados a linguagens sem uma compreensão e merguulho em sua síntaxe, gramática e diversas funcionalidades. Definitivamente você vai sair entendendo mais de JavaScript após a leitura dessa série, que traz um mergulho formidável nos principais aspectos da linguagem. E há um repositório em português com a série.

# How to be an Antiracist

2020 foi um ano muito focado em assuntos técnicos para mim. Entre as leituras não-técnicas um que ressoou muito em mim e escrito de uma perspectiva extremamente forte foi este livro de Ibram X. Kendi, em uma narrativa poderosa em que a pesquisa vai se misturando com notas biograficas e como todas as experiências por mais díspares que pareçam vão se unindo e construindo a visão do autor, que advoca por uma posição ativa em frente ao racismo, sendo antiracista. Grande leitura, um dos temas, a questão racial, que todos em nossa sociedade temos que pagar atenção e respeito. { Livro na Amazon }

# AWS Well-Architected Framework

Se eu já usava a anos a AWS como cliente, o que me fez querer mergulhar e explorar ainda mais foi sem dúvida esse corpo de conhecimento coletivo que é o AWS Well-Architected. Há os “cinco pilares” do framework: Excelência operacional, Segurança, Confiabilidade, Eficiência de performance e Otimização de custos, e também “Lens” ou perspectivas, que exploram um tema como o “Serverless Application Lens”. Um dos autores já disse que o baseline é só incluir no AWS Well Architected apenas o que funciona para 80% dos clientes, e por isso mesmo eu considero melhor que qualquer radar de tecnologia, lista de tendências e afins. É um documento vivo, extenso, mas que vale a pena mergulhar. E nem se preocupe em absorver tudo de todos os pilares, várias vezes eu li um trecho que para mim trazia pouca “informação útil” no sentido de que eu saberia ir até o meu ambiente de desenvolvimento e já aplicar algo, pois não faz parte do meu domínio de conhecimento mas que mais tarde ao enfrentar alguma questão, me fez voltar ao documento. São no formato “white-papers”, bem aprofundados, que eu particularmente gosto e entendo que não é o ideal para todos. Mas, mesmo assim, há no console, uma forma de se fazer as perguntas necessárias e avaliar o quão aderente sua carga de trabalho é ao Well-Architected Framework.

# Menções honrosas:

  • Full Stack Serverless: Sou um grande fã de Nader Dabit e seus vídeos e materiais sobre Amplify foram um grande ponto de virada para mim e os projetos que gerenciei. No livro esse explora de forma opinada a implantação de uma abordagem “full stack manifesto”, título também de um [manifesto que ele publicou este ano](The Full Stack Serverless Manifesto).
  • Building Event-Driven Microservices: Este ano foi para mim talvez meu ano da “arquitetura de software” de forma mais proativa, e este livro é bem high level e discute no nível de arquitetura os trade-offs do modelo de microserviços e arquiteturas dirigidas por eventos.
  • Architecture Patterns with Python: Mesmo não entendendo Python foi um dos grandes livros que esse ano pois pude me introduzir muito em Domain-Driven Design e explorar mais aspectos arquitetônicos.
  • The Manager’s Path: Quando fui pesquisar o livro para esta lista (eu o li bem no início do ano), descobri que agora temos uma versão traduzida, como A Arte da Gestão – honestamente acho que o título é mais fiel ao processo da autora, Camille Fournier em sua jornada para se tornar uma líder técnica, gerente, mas acredito que trata dos diversos caminhos na parte mais difícil do desenvolver de qualquer software, em qualquer stack, com qualquer linguagem e em organizações de qualquer tamanho: pessoas. Outros que li esse ano de outras excelentes autoras: Resilient Management de Lara Hogan e The Making of a Manager de Julie Zhuo.
  • Team Topologies: Explora formas dos times se organizarem e como isso afeta os inputs e outputs. Uma leitura bem interessante e que há muito mais material dos autores sobre esse fascinante assunto

Em 2021 pretendo ler um pouco mais de ficção, que coloquei em segundo plano, pois certamente enriquece nossa compreensão. Afinal, o que é programar senão escrever histórias que nossas máquinas gostam de atuar?