Artigo original: How to Learn Python The Easy Way (And Not the Way I Did)

Acredita-se que o Python seja uma das linguagens de programação mais fáceis de aprender. Saber disso fez com que eu me sentisse muito mal na primeira vez que tentei e não consegui aprender. Foi ainda pior na segunda vez em que eu tentei.

Acontece, no entanto — e eu só aprendi isso na terceira tentativa — que o Python pode ser bastante acessível, mesmo para um amante da área de humanidades e não programador como eu. Baste que você aborde a linguagem do modo certo.

Como eu não consegui aprender Python… na primeira tentativa

A primeira vez em que tentei aprender Python foi há quase uma década. Eu não tinha certeza do que eu queria fazer com ele – talvez automatizar parte do meu trabalho, talvez escrever uma aplicação pequena. Parecia apenas uma habilidade que seria bom saber.

Então, eu peguei uma cópia do livro Learn Python the Hard Way (Aprenda Python da maneira difícil, eu português) em PDF e comecei a tentar ler do início ao fim.

A primeira barreira que encontrei foi configurar o Python no meu próprio sistema. Especialmente naquela época, a maioria das instruções sobre como fazer isso estavam escritas para programadores experientes. Eu levei uma eternidade para passar por tudo.

Eu queria aprender a escrever código em Python. Meu primeiro passo foi passar cinco horas lutando com a linha de comando. Eu estava desmotivado antes mesmo de começar.

Quando, finalmente, consegui configurar tudo, pude escrever código junto com o livro. Eu fiz isso, por um tempo, criando lentamente um jogo de aventura de texto muito simples.

Porém, quando cheguei no meu primeiro desafio real – aqueles momentos que sempre vêm na programação em que algo não funciona e você simplesmente não consegue descobrir o porquê – eu desisti.

Eu tinha coisas mais importantes para fazer do que bater a cabeça contra o teclado e desvendar um quebra-cabeça de mensagens de erro inescrutáveis, especialmente quando meu objetivo final era fazer um jogo de aventura de texto com o qual eu não me importava e que ninguém jamais jogaria.

Como eu não consegui aprender Python… na segunda tentativa

Alguns anos depois, tentei novamente. Naquela época, eu estava trabalhando como jornalista e me interessei por jornalismo de dados e, em particular, por web scraping.

Eu sabia que ter habilidades de programação em Python seria necessário, então encontrei uma plataforma de educação on-line – não vou dizer qual – e comecei um curso de Python para iniciantes.

Como a maioria dos MOOCs (Massive Open Online Course, ou, em português, curso on-line aberto e para o grande público), este curso foi baseado em vídeo. Eu assistia a uma aula sobre um tópico relacionado ao Python, respondia a um questionário no site do curso para confirmar que havia aprendido o assunto e, em seguida, passava para o próximo módulo.

Programadores experientes provavelmente já podem adivinhar o que aconteceu a seguir: quando fui tentar escrever código em Python para mim, não consegui fazer nada.

Ver outra pessoa programar em vídeos e ouvir suas explicações me fez achar que estava aprendendo a fazer isso por mim mesmo. Os testes de múltipla escolha e preenchimento de espaços em branco que eu estava respondendo 100% corretamente pareciam confirmar que eu havia entendido o assunto.

Naturalmente, na hora de aplicar por conta própria, não consegui. Eu podia assistir os vídeos do início ao fim e copiar o que o professor fazia, mas tinha muita dificuldade em aplicar qualquer coisa que eu tinha aprendido aos meus próprios projetos.

Também foi difícil me manter motivado, porque eu estava trabalhando em coisas que não pareciam relevantes.

Eu queria aprender web scraping. Em vez disso, eu estava lutando para entender as videoaulas sobre o conceito de programação orientada a objetos (OOP). O que isso tem a ver com meus objetivos? Eu não tinha certeza, e isso facilitou a desistência mais uma vez.

Por que eu não consegui?

Olhando para trás, não é muito difícil descobrir o porquê. Na primeira vez, meus grandes erros foram:

  1. Não ter um objetivo claro. Por que eu estava aprendendo Python? Eu realmente não sabia. Isso torna muito fácil desistir quando as coisas ficam difíceis – o que sempre acontecerá, mais cedo ou mais tarde.
  2. Muitos desafios logo de início. Mais cedo ou mais tarde, eu teria de aprender a absorver o Python de algum jeito, mas configurar tudo tendo zero de experiência, mesmo antes de ter escrito um simples print("Olá, mundo!") Foi tudo o que eu precisava para não conseguir aprender e desistir.

Quando você está aprendendo algo desafiador, especialmente quando se está começando do zero, você precisa de sucesso cedo para ajudá-lo a acreditar que você pode realmente fazer isso.

Começar com um desafio frustrante que nem envolvia a programação em si garantiu que eu não conseguisse aquelas vitórias precoces motivadoras e afirmativas.

Na segunda vez, eu evitei esses erros, mas acabei cometendo erros novos:

  1. Eu não estava aprendendo através da prática. Assistir a vídeos e passar em testes estava me fazendo sentir que poderia programar, mas, na verdade, eu não estava programando. Quando eu tentei (e não consegui) escrever código, foi ainda mais frustrante porque eu achava que já entendia. Além disso, eu tive que clicar diversas vezes em cada vídeo para reassistir a seções diferentes e reaprender as coisas.
  2. Eu tinha um objetivo claro, mas não um caminho claro para chegar a ele. Eu sabia que queria fazer jornalismo de dados e web scraping, mas estava fazendo um curso genérico de Python. Isso significava que eu estava aprendendo lições que poderiam ter sido fundamentais para o desenvolvimento de software, mas não eram tão relevantes para o jornalismo de dados. Muitas vezes, tive dificuldade em conectar os fundamentos que estava aprendendo nas aulas com o que eu realmente queria estar fazendo com o código.

Ao longo de tudo isso, eu também estava cometendo outro grande erro mental. Eu estava pensando em aprender Python como se fosse oito ou oitenta. Eu tinha "aprendido Python" – tudo de Python – ou não tinha.

Isso tornou a perspectiva de aprendizado realmente intimidante. Sempre que eu chegava em um desafio, tudo ficava pior pelo fato de que eu estava pensando em alguma "linha de chegada" imaginária do Python que ainda estava muito, muito longe.

Isso é um erro, é claro. Assim como ocorre com um idioma, Python (e outras linguagens de programação) não são algo que você realmente termine de aprender. Da mesma maneira que os idiomas, você não precisa ser fluente em Python para fazer coisas com ele.

Como qualquer intercambista do primeiro ano pode confirmar, a simples capacidade de perguntar "Quanto isso custa?" e "Onde fica o banheiro?" no idioma local pode realmente afetar sua qualidade de vida.

A mesma coisa vale para o Python. Você não precisa saber tudo – nem mesmo tanto, necessariamente – para que isso faça uma diferença real em sua própria vida.

Essa, porém, é uma lição que só aprendi por acaso.

Como eu aprendi, de fato, (alguma coisa de) Python

Em 2018, eu já havia desistido de aprender Python. Eu tinha tentado duas vezes e não conseguido duas vezes! Fui, então, contratado pela Dataquest, uma empresa que ensina habilidades em ciência de dados – incluindo programação em Python – on-line.

Meu novo emprego não exigia nenhuma habilidade em programação, mas achei que ainda precisava dar uma chance à plataforma de aprendizagem. Eu precisava entender nosso produto e o que nossos alunos sentiam que estavam experimentando. Talvez, pensei, eu pudesse até aprender o suficiente para fazer algum web scraping, como eu tinha planejado antes.

Então, com alguma apreensão, criei uma conta e iniciei meu caminho de curso de Python para Ciência de Dados.

Para minha surpresa, parecia divertido e fácil. Para minha maior surpresa, não demorou muito para que eu sentisse que podia criar alguns projetos por conta própria.

Eu escrevi um script pequeno para classificar e-mails. Eu usei Python para analisar rapidamente alguns dados de pesquisa. Aos trancos e barrancos, construí o grande projeto de web scraping e análise com o qual sonhava quando era jornalista.

Eu estava – e ainda estou – usando Python para facilitar meu trabalho e melhorar minha vida. Alguns anos depois, ainda sou um programador novato, mas posso criar scripts pequenos para facilitar as coisas e resolver problemas de análise de dados que tenho no trabalho usando Python.

Isso aconteceu porque, mais por acaso do que por planejamento de fato, eu havia me deparado com uma maneira de aprender Python que evitava quase todos os erros que eu havia cometido com meus esforços anteriores:

  • Eu comecei com um objetivo claro – aprender Python o suficiente para ser capaz de trabalhar um pouco com dados para que eu pudesse entender melhor nossos clientes.
  • Eu evitei o desafio inicial de instalar o Python completamente, porque a Dataquest permite que você aprenda e escreva código diretamente em uma janela do navegador.
  • Eu estava aprendendo a programar escrevendo código em vez de ver outra pessoa fazendo isso.
  • Eu estava aprendendo em uma trilha projetada para o trabalho com dados em Python, especificamente. Então, tudo o que eu estava aprendendo e cada exercício que eu fazia parecia relevante.
  • Eu estava simplesmente tentando aprender o que eu precisava, em vez de tentar aprender tudo em Python.

Como tornar o aprendizado de Python mais fácil

Olhando para os meus erros e, depois, para o meu sucesso acidental, acho que tudo se resume a algumas conclusões simples:

Primeiro, começar tendo um objetivo. Por que você quer aprender Python? O que, especificamente, você quer criar com ele? Se você não tiver uma boa resposta para essa pergunta, será muito difícil se manter motivado.

Em segundo lugar, encontre uma maneira de aprender fazendo o que você realmente quer fazer. Se você puder encontrar um recurso de aprendizado direcionado, como uma plataforma que ensina Python especificamente para desenvolvimento de jogos, isso é ótimo. Os recursos gerais de aprendizagem, no entanto, também podem funcionar, desde que você esteja aplicando o que aprendeu com alguns projetos para iniciantes em Python (link em inglês) enquanto estuda.

Aprender a programar tem que incluir realmente escrever código – e tem que ser realmente código que faz algo em que você está interessado.

Em terceiro lugar, evite o desafio inicial de configurar o Python e suas várias bibliotecas em seu sistema local.

Existem muitas plataformas on-line agora que permitem que você escreva e execute código em um navegador, ou você pode escrever e executar código em um notebook no Google Colab ou em uma plataforma semelhante. Apenas tente tornar o início o mais fácil possível. Você pode se preocupar com sua configuração local mais tarde.

Em quarto lugar, não tente "aprender Python". Esse é um objetivo enorme, de longo prazo, que é indiscutivelmente meio inatingível – mesmo os melhores desenvolvedores de Python não sabem literalmente tudo sobre ele.

Em vez disso, tente aprender a usar Python para criar uma versão simples do projeto que é o seu objetivo, ou uma parte desse projeto. Em seguida, aprenda a usar Python para aumentar esse projeto ou como passar para a próxima etapa.

Divida grandes tarefas em partes menores e concentre seus objetivos em construir algo para que dê a você a recompensa psicológica de ter construído algo atingir um objetivo.

Siga estas dicas independentemente do seu motivo pessoal para aprender Python e não tenho dúvidas de que você será capaz de alcançar seus objetivos sem ter que falhar e desistir duas vezes ao longo do seu caminho!