Uma ou duas vezes por ano tenho a oportunidade de encontrar, pessoalmente, o Ayende (líder técnico do projeto do RavenDB). Dessa vez, foi nos Estados Unidos, em uma conferência médica.
Além de aprender muito conversando com ele, também tenho o privilégio de aprender codificando. Dessa vez, investimos algumas horas em uma experiência envolvendo indexação de documentos.
Ayende é um programador melhor que eu. A velocidade com que ele faz implementações realmente complexas, envolvendo inclusive operações de baixo nível, impressiona! “Parear” com ele me demanda atenção plena (é muito fácil perder a linha de raciocínio). Fico, o tempo todo, um pouco acima da minha “zona de conforto”. Além disso, a quantidade de “macetes” que ele conhece e utiliza é desconcertante.
Entendo que “parear” com alguém melhor que você é sempre uma oportunidade. Nesse post, tento explicar o porquê.
Clareza sobre o que você precisa aprender
Ver o Ayende programando evidenciou algumas deficiências em meu conhecimento/experiência. Ficou claro, para mim, que, se eu estivesse familiarizado com algumas técnicas, teria menos dificuldade para entender a linha de implementação que ele estava buscando e me tornaria mais efetivo na atividade. Sempre que programo com ele, acabo tendo indicação segura sobre onde investir meu tempo (e dinheiro) em estudos.
Novas abordagens para solucionar problemas
Mais do que código em si, a abordagem que o Ayende utiliza para pensar soluções é diferente da minha. Posso me beneficiar da experiência dele, acumulada em anos, para aprimorar a forma como eu resolvo problemas – o que melhora a qualidade do meu trabalho.
Truques e macetes
Dessa vez, aprendi com ele sobre como organizar informações em um arquivo binário para facilitar a leitura não-sequencial posteriormente. Também aprendi um bocado sobre como executar algumas operações sem fazer alocações (ele é obcecado com a ideia de evitar intervenções do Garbage Collector).
Mesmo lendo muito, nunca vi nada como ele propôs em meus estudos. Tudo muito óbvio (depois de aprendido), mas também muito útil.
Claro que ainda preciso praticar. Mas, sei que muito do que eu vi já está definitivamente comigo. Já aprendi!
Humildade
Sempre há alguém melhor que você, não interessa quanto bom você se considere.
Confesso que sou arrogante o suficiente para esquecer isso. Programar com o Ayende me faz recordar.
E você, o que tem aprendido quando tem a oportunidade de *parear* com alguém melhor que você?