Aprendendo Python do Zero - Parte1

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:

Mia Couto - O menino que escrevia versos

“De que vale ter voz se só quando não falo é que me entendem? De que vale acordar se o que vivo é menos do que o que sonhei?” (VERSOS DO MENINO QUE FAZIA VERSOS)

— Ele escreve versos!

Apontou o filho, como se entregasse criminoso na esquadra. O médico levantou os olhos, por cima das lentes, com o esforço de alpinista em topo de montanha.

— Há antecedentes na família?

— Desculpe doutor?

O médico destrocou-se em tintins. Dona Serafina respondeu que não. O pai da criança, mecânico de nascença e preguiçoso por destino, nunca espreitara uma página. Lia motores, interpretava chaparias. Tratava bem, nunca lhe batera, mas a doçura mais requintada que conseguira tinha sido em noite de núpcias:

— Serafina, você hoje cheira a óleo Castrol.

Ela hoje até se comove com a comparação: perfume de igual qualidade qual outra mulher ousa sequer sonhar? Pobres que fossem esses dias, para ela, tinham sido lua-de-mel. Para ele, não fora senão período de rodagem. O filho fora confeccionado nesses namoros de unha suja, restos de combustível manchando o lençol. E oleosas confissões de amor.

Tudo corria sem mais, a oficina mal dava para o pão e para a escola do miúdo. Mas eis que começaram a aparecer, pelos recantos da casa, papéis rabiscados com versos. O filho confessou, sem pestanejo, a autoria do feito.

— São meus versos, sim.

O pai logo sentenciara: havia que tirar o miúdo da escola. Aquilo era coisa de estudos a mais, perigosos contágios, más companhias. Pois o rapaz, em vez de se lançar no esfrega-refrega com as meninas, se acabrunhava nas penumbras e, pior ainda, escrevia versos. O que se passava: mariquice intelectual? Ou carburador entupido, avarias dessas que a vida do homem se queda em ponto morto?

Dona Serafina defendeu o filho e os estudos. O pai, conformado, exigiu: então, ele que fosse examinado.

— O médico que faça revisão geral, parte mecânica, parte eléctrica.

Queria tudo. Que se afinasse o sangue, calibrasse os pulmões e, sobretudo, lhe espreitassem o nível do óleo na figadeira. Houvesse que pagar por sobressalentes, não importava. O que urgia era pôr cobro àquela vergonha familiar.

Olhos baixos, o médico escutou tudo, sem deixar de escrevinhar num papel. Aviava já a receita para poupança de tempo. Com enfado, o clínico se dirigiu ao menino:

— Dói-te alguma coisa?

— Dói-me a vida, doutor.

O doutor suspendeu a escrita. A resposta, sem dúvida, o surpreendera. Já Dona Serafina aproveitava o momento: Está a ver, doutor? Está ver? O médico voltou a erguer os olhos e a enfrentar o miúdo:

— E o que fazes quando te assaltam essas dores?

— O que melhor sei fazer, excelência.

— E o que é?

— É sonhar.

Serafina voltou à carga e desferiu uma chapada na nuca do filho. Não lembrava o que o pai lhe dissera sobre os sonhos? Que fosse sonhar longe! Mas o filho reagiu: longe, porquê? Perto, o sonho aleijaria alguém? O pai teria, sim, receio de sonho. E riu-se, acarinhando o braço da mãe.

O médico estranhou o miúdo. Custava a crer, visto a idade. Mas o moço, voz tímida, foi-se anunciando. Que ele, modéstia apartada, inventara sonhos desses que já nem há, só no antigamente, coisa de bradar à terra. Exemplificaria, para melhor crença. Mas nem chegou a começar. O doutor o interrompeu:

— Não tenho tempo, moço, isto aqui não é nenhuma clinica psiquiátrica.

A mãe, em desespero, pediu clemência. O doutor que desse ao menos uma vista de olhos pelo caderninho dos versos. A ver se ali catava o motivo de tão grave distúrbio. Contrafeito, o médico aceitou e guardou o manuscrito na gaveta. A mãe que viesse na próxima semana. E trouxesse o paciente.

Na semana seguinte, foram os últimos a ser atendi dos. O médico, sisudo, taciturneou: o miúdo não teria, por acaso, mais versos? O menino não entendeu.

— Não continuas a escrever?

— Isto que faço não é escrever, doutor. Estou, sim, a viver. Tenho este pedaço de vida — disse, apontando um novo caderninho — quase a meio.

O médico chamou a mãe, à parte. Que aquilo era mais grave do que se poderia pensar. O menino carecia de internamento urgente.

— Não temos dinheiro — fungou a mãe entre soluços.

— Não importa — respondeu o doutor.

Que ele mesmo assumiria as despesas. E que seria ali mesmo, na sua clínica, que o menino seria sujeito a devido tratamento. E assim se procedeu.

Hoje quem visita o consultório raramente encontra o médico. Manhãs e tardes ele se senta num recanto do quarto onde está internado o menino. Quem passa pode escutar a voz pausada do filho do mecânico que vai lendo, verso a verso, o seu próprio coração. E o médico, abreviando silêncios:

— Não pare, meu filho. Continue lendo…

_______ FIM ___________ O Menino que escrevia versos1, por Mia Couto.

Sobre o autor: Mia Couto nasceu em 1955, na Beira, Moçambique. É biólogo, jornalista e autor de mais de trinta livros, entre prosa e poesia. Seu romance Terra sonâmbula é considerado um dos dez melhores livros africanos do século XX. Recebeu uma série de prêmios literários, entre eles o Prêmio Camões de 2013, o mais prestigioso da língua portuguesa, e o Neustadt Prize de 2014. É membro correspondente da Academia Brasileira de Letras.

O início de um novo ano transmite para maioria das pessoas um sensação de renovação, oportunidade para recomeçar, corrigir erros, traçar planos e até mesmo concluir ou iniciar os itens que das listas anteriores nunca saíram.

Defini para mim que de 2015 em diante eu deveria ter mais ação e metas ao invés de meros planos e desejos anotados. Acredito que cumprindo um desafio por ano ajudará a conseguir todas os outros objetivos com mais facilidade e possibilidade de êxito. Habilidades essenciais, como por exemplo disciplina, concentração e definição de metas, estarão em constante treinamento. Não só erros dos anos anteriores serão corrigidos como também novas habilidades adquiridas.

Desse modo, estabeleci que meu único desafio para o ano de 2015 seria ler um livro por mês (totalizando 12 por ano)!

O problema

Parece pouco? Para mim o suficiente para um desafio. Eu gosto de ler, escrever, mas durante 365 dias eu sempre enfrento algumas dificuldades como:

  • Falta de concentração
  • Ausência de disciplina
  • Ansiedade
  • Procrastinação
  • Múltiplas idéias sem concluir ou reaproveitar nenhuma
  • Pensamento constante e fora de controle
  • Branco ou trava criativa.
  • E muitas outras…

Isso me ocorre em diversas situações e percebi que os problemas acima me trazem muitas conseqüências. Por exemplo, inicio a leitura de um livro e na afobação de ler mais livros começo outro sem concluir o anterior. No final das contas, em um ano eu não li livro nenhum por completo e muitas vezes sequer pela metade.

Esse é um exemplo dos muitos vividos, que evidenciam ansiedade, confusão e quão pernicioso é a auto sabotagem que fiz em diversos momentos e assuntos, e pior que o acontecimento é como nos sentimos: Mais ansiosos, mais tristes por não conseguir concluir nada, pensamentos e lembranças que chegam a toda hora, um redemoinho e você lá no meio.

Ao ler um livro por mês pretendo principalmente corrigir os itens citados na lista de problemas e ainda alcançar os itens abaixo, uns são para corrigir conseqüências dos problemas citados anteriormente e outros são para aumentar habilidades:

  • Aumentar vocabulário e melhorar a expressividade (saber o que se quer dizer não adianta muito se não sabemos como expressar o que sentimos)
  • Aprimorar habilidades de escrita (gosto de escrever, mas perdi aos poucos expressividade)
  • Melhorar e corrigir erros gramaticais (odeio gramática, mas com a leitura regular se aprende gramática por osmose e facilita a identificação de erros)
  • Dar asas a imaginação e criatividade (A arte e o contato com a cultura trás paz e conhecimento)
  • Melhorar interpretação textual e de ideias (Ler torna o aprendizado contextualizado e a mente mais aberta) Desenvolver a leitura de um livro por mês como um hábito e não como um desafio.

Como coloco em prática o desafio

Não basta escolher um livro. É preciso saber escolher os livros: Pensar na quantidade páginas, gênero, linguagem do autor e etc. Os detalhes fazem diferença e eu prefiro me desenvolver aos poucos de forma permanente: Começar pelo mais fácil e treinar progressivamente para o mais difícil.

Ex.: Começar por um livro que contém muitas páginas pode ser desanimador e dar mais ansiedade por ver longe o seu término. Melhor deixar estes para quando concluir pelo menos a leitura do segundo livro.

Para quem vive procrastinando a sensação de ter concluído algo com êxito faz muita diferença.

  • Ter metas e disciplina, pois são elas que vão me fazer alcançar o resultado do desafio mês a mês. E ainda, um hábito é construído por ações diárias.

Ex.: Ler 10 páginas por dia, ler 1 capítulo por dia, etc.

  • Escolher um local e ambiente tranquilo para ler. De preferência não faço duas coisas ao mesmo tempo. Por exemplo, Ler e ouvir música. Ao fazer duas coisas ao mesmo tempo dividimos a atenção e por mais que queiram nos enganar: nós não somos multi tarefa. Fazer uma coisa de cada vez dá mais qualidade ao que está sendo feito pois estamos empregando todos os recursos ali. Concentro-me na sua leitura e faço pausas para pensar no que li.

Leitura é uma habilidade e como qualquer outra ela está sendo treinada. Procuro respeitar o tempo da minha evolução.

O Primeiro mês

Para começar o desafio de um livro por mês resolvi ler um livro de contos1 de Machado de Assis. O livro editado pelo projeto “De mão em mão”2 da prefeitura de SP contém 10 contos: Missa do galo, Uns braços, A cartomante, O relógio de ouro, Cantiga de esponsais, A igreja do Diabo, Conto de escola, O enfermeiro, Capítulo dos chapéus, O espelho.

Eu tinha a meta de ler três contos por semana para cumprir o objetivo de terminar esse livro em um mês. Mas não consegui terminar por falta de disciplina, conclui a leitura do livro em 1 mês e 20 dias.

O prazo não foi alcançado mas já percebi o quanto foi importante ter feito isso e os benefícios que adquiri. Ao terminar de ler o conto e ter pensado sobre ele, eu sempre pesquisava resenhas, análises e opiniões de críticos. Essa foi uma forma de confrontar com as minhas conclusões e entender em mais profundidade a obra, o autor, o contexto histórico e social.

Os contos que mais gostei e/ou os quais Machado de Assis me surpreendeu em algum momento da leitura: O Relógio de Ouro, Uns braços, Conto de Escola, A igreja do Diabo, O enfermeiro.

Referências

“E se as histórias para crianças passassem a ser de leitura obrigatória para os adultos? Seriam eles capazes de aprender realmente o que há tanto tempo têm andado a ensinar?”

José Saramago não se considerava capaz de escrever para crianças:

“Este era o conto que eu queria contar. Tenho muita pena de não saber escrever histórias para crianças. Mas ao menos ficaram sabendo como a história seria, e poderão contá-la doutra maneira, com palavras mais simples do que as minhas, e talvez mais tarde venham a saber escrever histórias para crianças…”

No entanto na mesma obra, em “A maior Flor do Mundo”1, Saramago imaginou que se possuísse qualidades suficientes para colocar no papel “seria a mais linda de todas as que se escreveram desde o tempo dos contos de fadas e princesas encantadas…”. E como era de se esperar pelo público, de fato foi um resultado extraordinário e genial, digno de José Saramago.

“E se as histórias para crianças passassem a ser de leitura obrigatória para os adultos? Seriam eles capazes de aprender realmente o que há tanto tempo têm andado a ensinar?”

A história de uma criança que faz crescer a maior flor do mundo é rica em ensinamentos, ele usa o retrato da realidade que adultos e crianças se relacionam com o meio ambiente para trazer múltiplas reflexões.

Com caráter lúdico e pedagógico em a “A maior Flor do Mundo”1 José Saramago revela, assim como na tradição da literatura infantil uma das partes mais esperadas: “…E é essa a moral da história”. Que tal você mesmo ver e ouvir as reflexões de Saramago e descobrir a moral da história em “A maior Flor do Mundo”?! Assista esse maravilhoso curta de 9 minutinhos!