Disclaimer
Este texto foi inicialmente concebido pela IA Generativa em função da transcrição de um vídeo do canal Dev Eficiente, apresentado por Alberto Souza. Se preferir acompanhar por vídeo, é só dar o play.
Introdução
Eu tenho um método para estudar tudo que eu preciso aprender. Usei esse método para me preparar para ser pai. Usei para aprender Clojure, uma linguagem funcional da qual eu não tinha background nenhum. Estou usando para me formar como analista de performance de futebol, para apoiar um dos meus filhos que quer ser jogador profissional. Usei quando precisei aprender sobre blockchain para criar um curso. E a aplicação mais recente foi bem menos glamourosa: adestrar Paçoca, a cachorra que chegou aqui em casa.
Profissional ou pessoal, técnico ou não, é sempre o mesmo método, ou alguma derivação parcial dele. Neste post eu quero compartilhar como ele funciona: as travas que costumam atrapalhar quem quer aprender, os cinco pilares que eu sigo e como eu executo tudo isso com 20 minutos por dia.
Não existe o jeito certo de aprender
Antes de qualquer coisa, um alinhamento: eu não considero que exista o jeito certo de aprender, o método mais efetivo do planeta. A humanidade está cheia de exemplos de pessoas que chegaram a níveis excelentes de conhecimento usando caminhos completamente diferentes, com abordagens diferentes e com níveis de suporte diferentes. Tem gente que compra curso de especialista e tem gente que aprende por observação, tentativa e erro, e os dois caminhos podem dar certo.
O que eu vou compartilhar é um conjunto de técnicas que tem funcionado muito bem para mim e que eu já apliquei com outras pessoas. Um exemplo: uma conhecida minha nunca tinha trabalhado com iOS, e o nosso plano foi prepará-la para ser avaliada pelo mercado como uma pessoa pleno/sênior de iOS. Consegui entrevistas para ela passar por avaliações reais, e deu certo.
As travas mais comuns
Quase todo mundo quer aprender alguma coisa nova. Mas existem certas travas que se repetem, e vale checar se você se identifica com alguma delas.
Objetivo vago demais
"Quero aprender Kotlin", "quero aprender a programar com agentes baseados em LLM". Aprender o quê, exatamente? Para fazer o quê? Em qual contexto? Você precisa passar em um processo seletivo? Quando o objetivo é vago, o estudo não tem critério de conclusão: você não sabe quando acaba.
Aqui vale uma divisão importante. Existe o aprendizado para se tornar uma pessoa mais sábia: exploratório, orgânico, sem um grande objetivo por trás. Quer aprender grego só porque acha bonito? Tudo certo. E existe o aprendizado transacional, utilitário: eu aprendi Clojure porque ia entrar no Nubank e queria chegar preparado na stack da empresa. Se eu não fosse entrar, não teria aprendido, não era uma linguagem que me interessava. Todo aprendizado utilitário também te deixa mais sábio, mas a recíproca nem sempre se aplica. E vai existir coisa que você precisa aprender sem querer aprender. Se você tem um método, isso fica muito mais tragável, como aquela feature que você não quer fazer, mas faz.
Material denso demais para o seu momento
No início da chegada dos LLMs, uma galera dizia que você não deveria construir software com LLM sem dominar arquitetura de Transformers, Machine Learning, estatística. Eu discordo: a profundidade do seu aprendizado é diretamente proporcional à complexidade do seu contexto. Eu claramente não estou preparado para trabalhar refinando os modelos da Anthropic ou da OpenAI. Para usar esses modelos e adicionar graus de sofisticação aos meus sistemas, me sinto muito bem preparado.
Fiz o teste: peguei o artigo original do Google sobre Transformers e não entendi nada. E é isso mesmo. Uma pessoa sem background pegando um texto em formato de artigo científico, cujo propósito não é facilitar o entendimento, vai sofrer. A alternativa é começar por materiais mais simples, com muito desenho e muita seta, e voltar ao artigo depois, mais tolerante àquela complexidade.
Existe uma teoria que eu gosto muito, a teoria da carga cognitiva, que pressupõe que temos uma limitação severa para processar informações novas. Se você está aprendendo algo novo e enche a cabeça de muitas coisas ao mesmo tempo, é como um balde cheio: cada pingo a mais transborda. Por isso, cuidado com textos mais densos do que você consegue consumir naquele momento, cuidado com a árvore de links de profundidade desconhecida que te faz ler, ler, ler e sentir que não saiu do lugar, e cuidado com ambientes de muita distração, porque cada distração compete por espaço de processamento com o que você quer aprender.
A crença de que você precisa de muitas horas
Essa crença é limitante de verdade. Você precisa acumular horas de estudo para ter uma transformação no seu entendimento, sim. Mas isso não quer dizer que precisa acumular essas horas de uma vez só. O problema dessa crença é que você fica esperando o ambiente perfeito: o fim de semana livre, as férias, o momento em que finalmente vai dar para estudar. Qualquer progresso é melhor do que nenhum progresso.
Por que eu estudo de maneira antecipada
Aprender a aprender foi o maior vetor de crescimento da minha vida, e o motivo é simples: eu não gosto de me estressar. Para não me estressar, eu entendi que precisava me preparar de maneira antecipada para os desafios que estavam por vir. Não sou capaz de antever todos, mas vários deles sou.
Quando você aprende enquanto faz, a sua confiança baixa e o seu nível de preocupação aumenta. Você fica mais lento e com menos capacidade de improvisação, porque viu menos problemas antes. Eu gosto de lembrar que a sua capacidade de improvisar, de lidar com imprevisibilidade, é diretamente proporcional ao seu nível de preparo. Quanto mais preparada a pessoa está, mais capaz de improvisar ela é.
Alguns exemplos de como isso se materializou por aqui:
- Clojure antes do Nubank. Entendi a stack que a empresa usava, Clojure como linguagem, Pedestal como biblioteca HTTP, as bibliotecas de parsing e de testes, e defini o objetivo: ser capaz de construir serviços web de complexidade entre baixa e média com aquela stack, validado por uma pessoa experiente de lá. Essa jornada está pública no meu canal.
- Paternidade. Eu nunca tinha cuidado de uma criança. Li sobre parentalidade positiva, teoria da autoeficácia para pais e mães, rotina de bebês, neurociência, livros escritos por enfermeiras. Fiquei com a responsabilidade de propor a rotina da casa para a chegada do nosso primeiro filho: sono, alimentação, brincar sozinho. A maior parte do que a gente planejou funcionou, e ajudou muito.
- Análise de performance de futebol. Meu filho de 10 anos quer ser jogador profissional. Eu fiz a conta com ele: considerando as quatro divisões do campeonato brasileiro, o número de vagas no futebol profissional é da ordem de poucos milhares, menos do que o quadro de pessoas desenvolvedoras de uma única empresa grande de tecnologia. É um funil duríssimo, e mesmo assim estamos juntos nessa. Para apoiá-lo além do meu viés de torcedor, estou fazendo uma formação de analista de performance, e desse estudo nasceu o blog O Porquê do Jogo.
Os cinco pilares do método
Todos esses exemplos seguem a mesma estrutura.
1. Objetivo de aprendizagem bem definido
Algumas perguntas ajudam a sair de um objetivo vago para um objetivo de verdade. O que você quer ser capaz de fazer? Em qual nível de profundidade? Com quais ferramentas e em qual contexto? E como você vai validar que aprendeu?
Para profundidade, eu gosto de pensar na taxonomia de Bloom, que classifica exigências cognitivas: lembrar, explicar, aplicar, analisar, avaliar e criar. Para adestrar Paçoca, a minha profundidade é aplicar, eu não preciso ser capaz de analisar o adestramento de outra pessoa. Para análise de futebol, eu preciso chegar no nível analítico: quebrar o jogo em partes, olhar quebra de linha, linha de passe conservadora versus agressiva.
Sobre validação: no Clojure, o critério era uma pessoa experiente naquela stack me avaliar e considerar que eu estava jogando duro. Na análise de futebol, é um clube aceitar o meu currículo em um processo seletivo. No adestramento, é Paçoca sentar quando eu falo senta.
2. Alinhamento de expectativas com você mesmo
Eu não sabia nada de linguagens Lisp-like, então sentei na cadeira sabendo que ia ser duro, sem falsas expectativas. Com Machine Learning aconteceu o oposto: eu sabia que seria difícil, mas foi ainda mais duro do que eu imaginava dado o meu background, e eu decidi deixar de lado. Está tudo bem também. E quanto mais jornadas de aprendizagem você acumula, melhor você lida com as frustrações do caminho.
3. Seleção de teoria
Eu avalio fontes teóricas em duas dimensões: confiabilidade e facilidade de consumo. A minha indicação principal: você precisa ter no seu material de estudo fontes de confiabilidade máxima. Quer aprender uma linguagem de programação? A documentação oficial tem que estar no seu material. Se você aprendeu sem passar por fontes geradas por quem constrói a linguagem, corre o risco de ter aprendido uma prática de um jeito que aquela equipe nunca imaginou(e isso pode ser bom). Se a documentação é dura demais para começar, tudo bem: comece por materiais mais fáceis e menos confiáveis, mas depois coloque a fonte de confiabilidade máxima no circuito, para confrontar o que você aprendeu e, de vez em quando, até transcender o que está lá.
4. Prática conectada à profundidade
Este é o pilar mais importante para transformar conhecimento em capacidade. As práticas precisam estar conectadas ao nível de profundidade do seu objetivo. Quer ser capaz de explicar a arquitetura de Transformers? Exercite a explicação: escreva, fale para o espelho, fale para outra pessoa. Quer ser capaz de aplicar? Precisa construir alguma coisa, e quanto mais você exercitar, melhor.
5. Feedback, se você puder ter
Feedback é como o ponto no GPS: quando você sai do caminho, ele te ajuda a retornar mais cedo. Pode ser um professor particular, uma pessoa consultora, um instrutor a quem você pode perguntar. Nem sempre você vai ter acesso, e dá para andar com o mapa no banco do carro, como antigamente, só que aí você demora mais para perceber que se distanciou do destino.
Consistência é o motor da execução
E como executar o plano se você está limitado pela crença do tempo? Eu fiz o curso de adestramento e estou fazendo a formação de análise de performance de futebol com 20 minutos por dia. O seu cérebro é stateful: você para hoje no meio de uma aula e retoma amanhã de onde parou. As horas se acumulam mesmo espalhadas no tempo.
O que muda tudo é sentar com um plano de execução. Sentar no computador e se perguntar "o que eu vou fazer agora?" é ruim com 20 minutos ou com 20 horas; a diferença é que com 20 minutos você perde só 20 minutos. Com plano, você abre a lista, continua de onde parou, e quando o tempo acaba, acabou, parou no meio mesmo. É como chegar atrasado no treino com personal: é melhor fazer 40 minutos de exercício do que nenhum.
"Mas assim vai demorar muito." Vai. E você vai acabar. Se você não começar com 20 minutos por dia, você vai acabar quando? Consistência é a chave: o volume você acumula no espaço de tempo, mas precisa de consistência para acumular volume. Se conseguir ser consistente com um pouco mais de volume, talvez encurte a jornada. Se tiver como criar previsibilidade, com dias e horário fixos, ajuda. Se não tiver, encaixe onde der: no metrô, no ônibus, no meio do dia. Em uma empresa minimamente saudável, ninguém vai gerenciar 20 minutos do seu dia. Só faz.
Conclusão
Cuidado com as travas: objetivo vago, sobrecarga cognitiva e a espera por tempo suficiente. Defina um objetivo que te guie, selecione teoria olhando para confiabilidade e facilidade de consumo, pratique no nível de profundidade que você precisa, busque feedback quando possível e proteja um mínimo de consistência. Na minha experiência, uma hora de estudo por dia pode te levar aonde você quiser em termos de profundidade.
E lembre: o objetivo não é zerar a imprevisibilidade, é minimizá-la. Meus filhos fizeram coisas que não estavam nos livros, e você vai encontrar problemas de escala que nenhum estudo cobriu. Mas você vai chegar com repertório, e quando aparecer algo que você nunca viu, a sua chance de improvisar bem vai ser muito maior. Não espere a condição perfeita: monte o plano e execute no tempo e na frequência que a sua vida permite.
Esse conteúdo, aliás, foi extraído do curso Máquina de Aprender, disponível dentro do Dev + Eficiente, que também deu origem ao livro Be a Learning Machine, publicado na Leanpub.
Dev + Eficiente
Desenvolva software de alta qualidade e domine Engenharia de IA com o Dev + Eficiente. Cursos práticos, acesso vitalício, comunidade ativa e acesso a vagas remotas exclusivas em diversas empresas de tecnologia. Sua jornada para se tornar um dev mais eficiente pode começar agora.
Top comments (0)