__..--''``---....___   _..._    __
/// //_.-'    .-/";  `        ``._  ``.''_ `. / // /
///_.-' _..--.'_    \                    `( ) ) // //
/ (_..-' // ( _     ;_..__               ; `' / ///
/ // // //  `-._,_)' // / ``--...____..-' /// / //
        

Fugindo do Tutorial Hell, ou como se preparar para criar seus próprios projetos

Criado em: 2025-02-23

Louis Hovey Sharp - Pasadena Light
Louis Hovey Sharp - Pasadena Light

Você passa horas, dias, meses vendo cursos e tutoriais sobre a sua linguagem de escolha.

Os conceitos entram facilmente na sua cabeça, você não parece ter dúvida de nada, e os projetos follow-along são brincadeira de criança.

Depois de tanto estudo, você finalmente dá o próximo passo: criar um projeto próprio, sem guia ou tutorial de ninguém. Mas é aí que você para e pensa: “Como é que eu dou o primeiro passo?” ou “Isso é muito difícil, não sei por onde começar.”

Se você já se sentiu assim, não se preocupe — é natural, e é o exemplo mais claro de Tutorial Hell.

Tutorial Hell é quando você continua seguindo tutoriais sem se aventurar por conta própria e realmente construir algo, ficando preso num ciclo de tutoriais sem fim. Você sabe o que são funções, classes, variáveis, condicionais, e talvez até outros conceitos mais complexos; mas você não possui a intuição prática de saber como usá-las em um projeto de verdade.

Milhões de estudantes se veem nesse ciclo de tutorial atrás de tutorial, buscando o material perfeito para seu aprendizado.

A (in)feliz verdade é que esse material perfeito não existe, e nunca vai existir. Você só aprende praticando e experimentando com o que você quer, revisando periodicamente os assuntos e testando suas habilidades. Não tem muito mistério: pegue um livro X (ou curso Y, caso prefira) e ponha a mão na massa.

Eu falo isso não por puro achismo, mas porque eu também passei anos da minha vida sem praticar o que aprendia. Eu tinha ideias legais, mas, na hora de colocá-las em prática, era como se minha mente desse um branco. Eu não sabia por onde começar ou o que fazer.

Desde junho de 2024, estou tentando mudar isso por meio de um plano. Abaixo, compartilho o que estou fazendo em cada projeto (e o que você pode fazer se estiver em uma situação semelhante).

Enfrentando o medo do novo

É muito comum nos sentirmos sobrecarregados ao tentar começar um novo projeto. O medo de falhar, de não saber o suficiente ou de não conseguir terminar pode paralisar até os mais entusiasmados. Mas a melhor forma de enfrentar o medo é começando pequeno, com projetos mais simples, e progressivamente avançando.

Por exemplo, um bom projeto “simples” é recriar o jogo Pong, aquele clássico do Atari. Desenvolver ele pode não ser tão empolgante quanto recriar um Super Mario World ou um Sonic, mas você vai aprender o necessário para fazer qualquer outro jogo que quiser!

“Ok, fazer o Pong é legal até… Mas o meu problema é como começar! É muita informação!”

E realmente é, especialmente se você nunca desenvolveu um jogo antes! Então, a melhor forma de lidar com projetos desse tipo é dividindo-os em partes menores. Antes de pensar na colisão, por exemplo, pense em como mostrar um quadrado na tela. Quais bibliotecas você pode usar para fazer isso? Quais são os comandos principais para fazer esse quadrado aparecer? Quando o quadrado estiver em cena, como fazê-lo se mover de cima para baixo? E como fazer para ele se mover apenas quando as teclas forem pressionadas?

Exemplo de divisão de tarefas:

Perceba que as perguntas vão progredindo pouco a pouco. Não pensamos no jogo como um todo, mas sim em partes individuais que formam esse todo. Faz sentido?

O essencial nessa etapa é não se deixar levar pela tentação de ver um tutorial completo ou perguntar para uma IA as respostas para os seus problemas.

Em vez de pesquisar no Google “Como criar o jogo Pong usando a linguagem X”, pesquise as perguntas que você se fez antes. Tente fazer por conta própria e, caso tenha dificuldade, pesquise apenas uma parte do projeto: “Como fazer a colisão entre dois objetos usando a biblioteca X e linguagem Y”, por exemplo.

Próximos Passos

Ao criar seu primeiro projeto próprio, uma gama de possibilidades se abre ao seu redor. As habilidades de pesquisa, velocidade e resolução de problemas que você aprendeu anteriormente vão te ajudar nos seus próximos planos e irão exponencialmente aumentar seu aprendizado. O problema é que só fazer um projeto sobre um assunto X não é o bastante: você precisa estar sempre revisando.

Se lembra da época da escola? Soma, subtração, divisão e multiplicação provavelmente entraram na sua cabeça bem mais fácil que logaritmos ou trigonometria. O motivo? Prática. Você praticou tanto as operações básicas que você consegue fazer várias de cabeça sem dificuldade, e a mesma coisa vale para programação e outras áreas.

Crie projetos e os recrie de novo, mas com um twist e/ou uma dificuldade mais elevada. Ao invés de recriar o Pong novamente, recrie o Breakout que possui um nível de dificuldade semelhante ou recrie até mesmo o Flappy Bird! Agora, você terá que lidar com randomização, então será um desafio no mínimo interessante.

Se você já criou uma rede neural MLP, que tal recriar uma rede neural convolucional do zero? Ou talvez implementar um otimizador novo na que você já fez, ou uma função de ativação diferente, e comparar os resultados?

Como eu disse antes, as possibilidades são infinitas! Crie projetos novos, recrie os que você já fez regularmente e terá desenvolvido uma boa intuição na área que deseja - pelo menos é o que eu acredito, lol.