Aprendendo Python do Zero - Parte1

Reading time ~8 minutes

Como começar a aprender programação e como aprender Python?

Vez por outra me fazem essa pergunta. Minha sugestão está contida ao longo deste post, pode ser que ajude outras pessoas. Em geral, programadorxs te indicarão: “programe, programe, programe!”. Sim, isso é verdade. A melhor forma de aprender a programar é programando!

Parece uma resposta óbvia, porém muitas vezes o aprendiz iniciante acaba achando que apenas assistindo vídeos, lendo livros e olhando outras pessoas programando elx irá aprender.

É importante sim que você leia/estude livros da linguagem, assista vídeos, conheça as técnicas de outros programadores. Porém, para você aproveitar de forma eficiente esse momento é importante que você aprenda o básico e pratique bastante.

Alguém aprende a andar de bicicleta apenas olhando e ouvindo dicas? Não! É preciso pegar as dicas básicas e macetes dos que já aprenderam e colocar em prática andando muito de bicicleta. No processo você vai cair bastante(aconteceu comigo), poderá até fazer uns calos nas mãos ao tentar se equilibrar(aconteceu com minha mãe e comigo as vezes). Faz parte do processo de aprendizagem.

Programar é a mesma coisa. Você precisará praticar bastante e buscar aprender os fundamentos da programação. Você vai errar, seus códigos não sairão bonitos no início, vai ter dúvidas, mas tudo isso faz parte do processo de aprender. É algo continuo, até programadores profissionais estão sempre aprendendo. E se você não desistir, vai continuar aprendendo a programar.

Em programação não adianta apenas escrever código. É preciso saber o que está codificando e o porque está fazendo daquele jeito. Esse nível de conhecimento é adquirido quando aliamos nossa curiosidade (para saber os porques) à prática, codificando constantemente e buscando escrever códigos melhores (reescrever seus códigos antigos é uma forma).

Voltando ao sobre aprender a andar de bicicleta: Após todo esse choque inicial de aprendizado(quedas, calos e etc), chegará o momento em que você terá uma fluência mínima para andar de bike e correr sem desequilibrar. É nesse ponto que você poderá avançar mais, terá condições de fazer corridas no nível de pessoas mais experientes e arriscar aprender a andar com uma mão só. Como conseguir isso em programação?

O que e como tenho feito para aprender a programar com Python

Neste post vou apresentar como tenho feito para garantir essa fluência mínima para chegar no ponto de fazer corridas melhores. ops! Programas melhores! E como me preparar para aproveitar xs desenvolvedorxs Python que sabem mais do que eu.

Não importa seu nível de conhecimento, você sempre pode aproveitar e aprender com os experientes da comunidade Python (eles adoram ajudar). Porém, é importante que você saiba perguntar1 e corra atrás de aprender os fundamentos, eles estão acessíveis de forma gratuita(videos, documentação, blogs) e nos livros. Seja responsável pelo seu aprendizado e busque a comunidade/fóruns2 sempre.

É bem mais interessante para as duas partes quando buscamos o apoio dos desenvolvedorxs para trocar ideias e dúvidas quando fizemos nossa parte, assim podemos aprender melhor e não estaremos perguntando algo que uma googlada responderia satisfatoriamente.

Eu sei o básico da programação, C3 foi minha primeira linguagem (não recomendo ela como primeira, apesar de gostar muito dela), tive rápido contato com Java (IMO, java só para android mesmo) e Python vi de forma descompromissada quando me dividia com os estudos para o ENEM.

No entanto, estou retomando meus estudos em Python do zero, como alguém que estivesse tendo primeiro contato com programação e como eu recomendaria fazer(opinião pessoal). Ainda que não seja meu primeiro contato, decidi por assim fazer para adquirir fluência na sintaxe, aprimorar a prática de lógica e matemática (em Python isso é bem mais fácil por ter escrita simples) e, por fim, entender o ecossistema Python.

Os caminhos que estou seguindo não é uma receita infalível e nem pretende ser, pode funcionar comigo e não funcionar com você. É puramente algo que refleti bastante sobre como aprendo, o que eu preciso aprender e onde eu quero chegar. É importante que você também tenha seu método de estudo e compartilhe.

Saber algo de programação e autoconhecimento me ajudou muito nesse planejamento. A parte mais dificil é colocar em prática o que planejo (assunto para outro post) e por isso estou me desafiando a fazer.

Estou estudando usando a versão 3.x do Python por ser a mais atualizada, além disso é recomendada para quem está aprendendo Python e não tem necessidade de usar a versão 2.x. As referências e materiais que estou usando são para Python 3.x.

Material de estudo:

Existem diversos cursos, livros, video-aulas e materiais excelentes. Adotei estes para esta primeira fase por se encaixar de forma satisfatória e também para manter o foco. Em outro post específico coloco todas as fontes e materiais que pretendo utilizar e que também são boas fontes de estudo.

  • Vídeo aulas: Python para Zumbis (PPZ) 4
  • Livro: Python para desenvolvedores - 3ª Edição 5 (A 2ªedição do livro usa Python 2.x e tem tem distribuição gratuita6)

Prática:

  • Lista de exercício Python para Zumbis 4
  • Lista de exercícios oficial da Python Brasil 7

Como estudo:

Nesta primeira fase, estou treinando e focando nos conceitos básicos da linguagem que adotei e da lógica, itens fundamentais para qualquer programador. Dividi em pequenos conteúdos, estudo um por vez. Assim consigo entender e praticar bastante o porque(conceito) e como fazer (prática). A divisão do conteúdo, em geral, ficou mais ou menos assim:

Assuntos da 1ª fase:
(As próximas fases irei publicar em outro momento, quando eu chegar nela :P )

  • Estrutura sequencial
  • Estrutura de decisão
  • Estrutura de repetição
  • Strings
  • Funções
  • Recursividade
  • Arquivos
  • Orientação a objetos
  • Projeto

Meu guia principal sobre a ordem do que estudar é as aulas do curso Python para Zumbis(PPZ), permite que se aprenda fundamentos de forma divertida e mesclando diversas áreas de aplicações do Python. O livro Python para desenvolvedores5 é um reforço e complemento ao qual vou adaptando junto com as lista de exercícios do PPZ e da Python Brasil.

Meu algoritmo atual de estudo

  • Assisto as vídeo aulas do Curso Python para Zumbis e pratico o que o professor estiver fazendo.
  • Em seguida leio o assunto no livro e reproduzo os códigos.
  • Anoto no papel o que eu achar importante.
  • Faço duas lista de exercício (uma do PPZ e outra da Python Brasil). Faço uma de cada vez, um pouco por dia. Na codificação vou fazendo testes em cada exercício e vou melhorando o código aos poucos. Faço uma primeira versão e depois melhoro ele da forma que eu conseguir.
  • Coloco os códigos no Github8 e pratico controle de versão9.
  • Caso em algum passo acima eu identifique algum comando que eu tenha ficado com muita curiosidade (o que geralmente acontece) de entender a fundo, eu faço uma pesquisa rápida na documentação oficial ou em blogs. Caso seja algo complexo eu anoto o comando em um papel e deixo para pesquisar depois com mais calma. Assim eu não perco o foco de entender o geral e partir para a parte prática.
  • Só estudo outro assunto da lista de conteúdo após concluir esse processo acima descrito.
  • Para revisar a semana anterior posso fazer um post para o blog.

Exemplo: Guia de estudo da Semana 1

  • Vídeos aulas PPZ: Começando com o básico (Aulas: 00, 010, 020, 030, 040, 050, 052, 053, 060)
  • Livro Python para desenvolvedores 5 - 3ªEdição: Capítulo 1 e 2
  • Lista I de exercícios PPZ 4
  • Lista estrutura sequencial10 - Lista oficial5 da Python Brasil

Complemento motivacional:

  • Assisto palestra sobre assuntos que me interessam e são ligados ao meu objetivo: Python, Lifestyle Business, Coding Dojo, Educação ou tecnologia.
  • Participo de eventos e/ou tento compartilhar o que aprendi.

Motivacional da Semana 1:

Assisti várias palestras, mais até do que eu deveria. Já que tenho dificuldade em foco e concentração preciso dosar a quantidade de palestras em uma mesma semana ou dia. Das que assisti, cada uma eu poderia destacar algo, o Dojo Gameplay do Henrique Bastos11 me deu um empurrão enorme!

Nesse Dojo, Henrique Bastos resolveu o problema ‘Happy Numbers’ passo a passo, usando fundamentos do Python, desenvolvimento orientado a testes e refatoração. Com esse vídeo pude ver minhas limitações, o que eu preciso focar, os conteúdos essenciais de Python e como eu posso fazer para chegar nesse nível em breve. Confesso que na primeira impressão eu fiquei meio triste, vi o quão longe eu estava de fazer um código como aquele.

Porém, muitas partes do código eu entendi com o que já sei de Python, outras eu precisei assistir novamente para entender e muitos outros tópicos que não domino ficaram mais claros. Sem falar na lista de referências/materiais que ele colocou na descrição do vídeo!

Foi essencial para mim assistir o Dojo GamePlay12! Não só para saber do que eu precisava mais também para me determinar a correr atrás do que eu quero!

Se eu fosse um número, eu seria um número feliz! Valeu, Henrique Bastos!

Todos os links e referências do Post: