Há 4 anos atrás comecei, por iniciativa de um cliente meu, a disciplina de programação Coding Craft. Chamo de disciplina de programação porque não envolve apenas cursos direcionados a uma tecnologia ou outra, mas também insights sobre postura, consistência e até alguma promoção pessoal. As pessoas que me procuravam (e ainda me procuram) o fazem por causa da massiva quantidade de respostas que escrevi no Stack Overflow em Português, ofício este que abandonei em 2017. Conforme a tecnologia ASP.NET MVC vai deixando de ser usada, tenho um número cada vez menor de alunos. Não é algo que me incomoda. Acho até natural.

Os cursos cumprem na prática aquilo que coloquei na teoria: módulos com densidade elevada fazem os alunos se obrigarem a melhorar, estudar por si próprios, se dedicar a chegar ao final de uma implementação, e o mais importante, entregar algo. Curiosamente, isso não é algo que se mantém. Os alunos preferem estudar um tempo e depois seguem fazendo outra coisa. Nada mais natural. Flexibilidade de estudo implica também em fazer os alunos pararem de estudar no meio do caminho conforme suas habilidades já satisfazem bem o ritmo de trabalho corrente. Fico bem feliz se uma ou duas aulas já são suficientes pra isso.

No entanto, não acho que uma ou duas aulas, de um módulo de 11 aulas, estão preparando os alunos para se tornarem desenvolvedores de alto perfil - objetivo final dessa disciplina profissional. É por isso que não chamo o Coding Craft de um conjunto de cursos, e sim de uma disciplina. É algo que se matura com o tempo e não é apenas relacionada com o conhecimento corrente, mas também com a capacidade de entender uma futura perspectiva tecnológica e se adaptar a ela. Em suma, de produzir muito mais do que a média de um time de desenvolvimento, com poucos recursos e muitas dificuldades, principalmente.

Primeiro Formato: Turmas de 5 Alunos

Historicamente, houveram duas turmas de cinco alunos da disciplina Coding Craft. Apenas a primeira turma foi com os cinco alunos até o final. A segunda turma teve duas pessoas puxadas que assistiram à primeira aula e nunca mais voltaram para as demais.

Nesse formato, eu dava duas aulas de 90 minutos, com uma pausa de 15 minutos entre elas. A maior parte dos alunos, especialmente da primeira turma, sabia que o curso tinha uma densidade bem alta, então foi uma turma com uma boa produtividade. Já na segunda turma não houveram alunos que entregaram qualquer um dos 11 exercícios do primeiro módulo, o que me motivou a extiguir o formato de aulas com cinco alunos e partir para as aulas individuais.

Mesmo a turma mais empenhada tinha muitos contratempos para manter os cinco alunos comparecendo a seis sábados consecutivos, por três horas. Nunca vi como melhor alternativa fazer um módulo por semana, já que o curso teria 11 semanas de duração, e provavelmente ainda menos comprometimento que o primeiro formato de seis semanas. Os melhores alunos tinham várias dificuldades de entregar os exercícios a tempo das próximas aulas. Para completar o problema, montar turmas era bastante difícil. Como eu não queria investir em publicidade - contando apenas com o interesse espontâneo e a visibilidade no Stack Overflow -, nem gastar muita energia divulgando os cursos, acabei privilegiando as aulas individuais, o que me aproximou mais do formato que eu queria fazer idealmente (tutor-pupilo).

Segundo Formato: Tutor-Pupilo

No final de 2016, comecei a ter os primeiros alunos em aulas individuais. Os módulos foram mantidos, o livro do primeiro módulo foi revisado - inclusive gramaticalmente - e agora os alunos tinham o tempo que precisassem para fazer os exercícios e entregar. Achei que era o suficiente para ter mais alunos prosperando.

De fato, tive mais formandos pelo método Tutor-Pupilo. A retenção de conteúdo e a evolução de cada aluno é fantástica. Apenas um aluno completou pelo menos um módulo pelo método de turmas, contra três alunos pelo método Tutor-Pupilo. Fiquei contente com isso? Não muito.

Até a data desse texto, contabilizei 32 alunos, entre alunos que compraram um módulo inteiro e que compraram aulas avulsas, e isso sem contar alunos de empresas que me contrataram para dar aulas. Dos 32, são 4 formados em pelo menos um módulo, 5 são alunos de aulas avulsas (portanto, não graduam) e 23 ainda em meio a seus cursos ou desistentes. É 12,5% de taxa de sucesso, considerando que nenhum dos 5 alunos de aulas avulsas entregou todos os exercícios correspondentes às aulas (a grande maioria entregou um ou dois apenas).

Entre as estatísticas que compilei, alguns dados interessantes:

  • A média de aulas feitas por alunos que compraram um módulo com 11 aulas é 3;
  • O período médio entre uma aula e outra, ou seja, contamos aí a resolução do exercício, é por volta de 3 a 4 semanas. Depois da terceira aula do módulo 1 do curso de ASP.NET MVC (em que eu falo de Modularização), esse tempo sobe para períodos em vários meses ou até mesmo anos, e aqui falo da grande maioria;
  • O aluno que mais comprou aulas jamais entregou um exercício sequer (foram 21 aulas avulsas);
  • Entre 25 de junho de 2016 até hoje, dei mais de 170 aulas, entre aulas para times de empresas, grupos de alunos ou aulas individuais.

Em contato com alunos, formados ou desistentes, curiosamente, todos eles tiveram uma promoção salarial, ou de posição, e um deles até virou professor. Os que terminaram o curso foram os que conseguiram os melhores resultados. Mesmo os que não terminaram conseguiram resultados bem impressionantes.

Me faço, portanto, alguns questionamentos. Ainda vale a pena manter o formato de 11 capítulos por módulo? Antigamente, minha visão era de melhorar a qualidade dos programadores não apenas na questão técnica, mas também na disciplina, na capacidade de fazer muito trabalhando pouco. Será que é isso que meus alunos queriam? Ou será que eles preferem fazer aulas que apenas resolvam problemas mais pontuais?

Seja qual for a resposta para os meus questionamentos, novamente eu preciso repensar a base da disciplina profissional e seus objetivos.

Quem eu quero ajudar agora?

Eu queria muito continuar ajudando programadores brasileiros. Antigamente eu fazia isso respondendo no Stack Overflow. 2000 respostas depois, resolvi ficar só no curso porque as pessoas que vão ao Stack Overflow, principalmente quem lida com a Stack da Microsoft, já vêm com um viés muito errado. É triste de dizer isso, mas são como os partisans do Java nos anos 2000: gostam de trabalhar mais para entregar muito menos. Em vários casos fui bem sucedido em tornar programadores promissores em grandes talentos, mas com toda a mudança tecnológica em direção ao .NET Core (que, por sinal, ainda não decolou como esperado na data da publicação desse texto) e o interesse maior por cursos que mandem um diploma por correio pro aluno colocar na parede - independente do que foi aprendido - sinto que não devo mais gastar energia com os cursos atuais. Eles ficarão disponíveis pra quem ainda quiser fazê-los, mas não devo escrever mais material novo.

Em 21 anos de carreira, entre o hobbyista e o profissional, passei por praticamente todas as áreas do ciclo de desenvolvimento de software. Vi quatro gerações de paradigmas de software e seu respectivo apogeu e queda, para algumas delas, hoje já de pijama. Onde estou, fui encarregado de escrever uma dúzia de cursos, para trazer uma empresa encalhada na era do Oracle EBS para o atual modelo em Cloud distribuído em containers, Front-end, Back-end e muitos microserviços. Seja qual for o tipo de aluno que eu vá ter, uma coisa é certa sobre todos eles:

Quase nenhum deles quer aprender para construir algo grandioso. Quase todos eles querem aprender pra ter um aumento de salário no futuro próximo.

Sinceramente, não quero mudar essa dinâmica. Paixão por arquitetura de software é para uns poucos loucos. O que quero fazer é impactar positivamente muitas vidas. Assim, começo a formular a terceira fase da disciplina Coding Craft. Ela será focada em fazer pessoas conseguirem aumentar seus salários muito rapidamente, mas por razões de excelência técnica.

Voltando à pergunta do título, quem eu mais tive satisfação de ensinar foi quem saiu de uma vida muito humilde para um ambiente fértil e próspero. É elas que eu quero alcançar, mas elas jamais farão um curso que custa quase um salário mínimo brasileiro. O que preciso fazer, então, é oferecer uma forma que essas pessoas possam estudar sozinhas e que eu possa avaliá-las de uma forma mais automatizada. Passada essa fase, posso tutorar aqueles que eu vejo que não desistirão. O filtro ficaria no autômato.

Coding Craft terá cursos de graça. Basta ler os materiais e fazer os exercícios

Para não ser injusto com quem já pagou por cursos, o formato gratuito não terá .NET.

Os novos cursos serão nas tecnologias que estou mais envolvido agora, e que podem variar no futuro. São elas:

  • Python 3;
  • Kotlin;
  • Vue.js.

O site será reformulado para não ser apenas um blog, mas uma plataforma inteira. Os alunos farão suas entregas por um mecanismo automatizado, que executará testes e verificará as soluções. Ainda estou pensando como farei para evitar que alunos copiem os fontes uns dos outros e submetam na plataforma sem qualquer esforço.

Os melhores alunos serão convidados por mim para projetos freelance. O escore na plataforma será fundamental.

Com isso, quero poder saber de muitas histórias, de pessoas que saíram do zero e construíram carreiras inacreditáveis, e poder contá-las aqui. Nada é mais satisfatório que isso.

Logo virei com mais detalhes.