Guia para iniciantes a programação em Python

python-language_318-1898

Por mais que existam diversas fontes de estudos espalhados pela internet, aprender a programar não é uma ciência exata que basta seguir uma receita e funciona. Mas isso não é exclusividade para futuros programadores, é para tudo e todos.

Pensando nisso, vejo que muitas das dúvidas que a o pessoal tem é relacionado a não ter a base fundamental para compreender como Python funciona.

Com isso, faço a versão atualizada do guia para iniciantes em programação, uma trilha para que a pessoa tenha um aprendizado sem rodeios, pulando armadilhas e evitando posteriores dores de cabeça.

Um pouco de história

Para aprender Python, antes é bem melhor entender porque Python, qual é a sua história, características, e porque ela é do jeito que é, com Pep’s, Identação obrigatória e comunidade.

Grok Podcast

Grok Podcast não canso de indicar, o Carlos Brando e o Rafael Rosa Fu fazem um trabalho fantástico conversando com uma galera para entender e compartilhar o que estão fazendo. Veja abaixo os 2 episódios em que batem um papo com o Henrique Bastos sobre a linguagem Python.

A linguagem Python


http://www.grokpodcast.com/2010/10/20/episodio-6-a-linguagem-python-parte-1/


http://www.grokpodcast.com/2010/10/28/episodio-7-a-linguagem-python-parte-2/

E Python no Brasil? – Castálio Podcast

Castálio segue a mesma linha do Grok Podcast, entrevistando pessoas interessantíssimas sobre seus projetos e ideias, independente da linguagem. Nessa entrevista com o Luciano Ramalho, ele conta a história do Python no Brasil, quais são as influências e quem usa.


http://castalio.info/luciano-ramalho-oficinas-turing.html

E o que Python pode fazer? – Hack ‘n’ Cast

Hack ‘n’ Cast é um podcast aberto, qualquer pessoa pode ir lá, sugerir pautas, gravar e utilizar o espaço do Hack ‘n’ Cast. E nesse episódio sobre Python (em que participo), falamos sobre os poderes do Python, a história, onde é usado, as filosofias e diversas histórias (e gargalhadas).


http://mindbending.org/pt/hack-n-cast-v06-python


Tá, já entendi o que é Python, mas onde posso aprender?

E como instalo e os primeiros passos?

Cacho.la – Júlia Rizza – Início de Python


Cursos gratuitos

Curso de Python e Django | Osvaldo Santana

Introdução a programação com PHP e Python | Codesquad

Introdução ao Python e Django | Allisson Azevedo

Python para Zumbis | Pycursos

Python e Google App Engine | Renzo Nuccitelli


Livros

Blog Pycursos – Livros Python


Frameworks


Aulas direcionadas

Aula Scikits Learn | Péricles Miranda

Diferenças entre o Python 2.x e o Python 3.x | Marcel Caraciolo

Iniciando Desenvolvimento de Jogos com PyGame | Marcel Caraciolo

Gerando gráficos com PyLab | Ramiro B. da Luz

Testando Aplicações Django | Bernardo Fontes

Manipulando Planilhas do Excel com as bibliotecas xlrd e xlwt | Gileno Filho

Requests: HTTP For Humans | Marcel Caraciolo

Web2py sem preconceitos | Vinicius Assef

Python for Zombies | Fernando Masanori

robustNewton – newton-raphson robusto com Python/numpy | Emanuel Woiski

O Depurador Onisciente | Rodrigo Senra

Hackeando o Facebook e o Twitter com Python – Parte 1 | Fernando Masanori

Hackeando o Facebook e o Twitter com Python – Parte 2 | Fernando Masanori

Tudo o que você já deveria saber sobre Unicode | Álvaro Justen — Turicas

Crawleando a Web Utlizando o Scrapy | Bernardo Fontes

Vivenciando o deploy antes do deploy – Parte 1 | Rafael Carício

Vivenciando o deploy antes do deploy – Parte 2 | Rafael Carício

Como construir sistemas de recomedação com Python | Marcel Caraciolo

Trabalhando com Django para não ter trabalho | Henrique Bastos

Tornado :: mais do que um framework web bonitinho | Marcel Nicolay

Entendendo Metaclasses | João Sebastião de Oliveira Bueno

Uma Introdução a Visão Computacional Com SimpleCV | Rodrigo Gomes Da Cunha

Django Rest Framework 2.0 | Fernando Rocha

Muito prazer – Flask | Sergio Berlotto Jr

Inteligência Computacional com Python | José Alexandre Nalon

Deploy completo de uma aplicação Django | Allisson Azevedo

Introdução ao VPython – construindo objetos 3D | Samuel Texeira

Introdução Banco de Dados com Sqlite3 e Python | Cássio Botaro

Consumindo API’s OAuth{1,2} com Python | Allisson Azevedo

Projeto Django com Twitter Bootstrap | Fabiano Góes

Tudo o que você devia saber sobre Django Migrations | Renato Oliveira

Manipulando arquivos XML em Python | Guilherme Carvalho

Construindo um micro framework web em Python | Allisson Azevedo

Simplesmente Python: Por que você deve conhecer essa linguagem | Eric Hideki

tsuru – fazendo deploys de forma simples e divertida | Andrews Medina

Aprendendo sobre Coding Dojo com Python – Aula Ao Vivo – Python Para Zumbis

Usando o Docker para deploy de aplicações Django | Allisson Azevedo

Autenticação em Sites Django Utilizando Redes Sociais | Julio Freitas

Aplicações Web Semânticas com Python | Tatiana Al-Chueyr Martins

Introdução à Análise e Exploração de Dados com Python e Pandas | Marcel Caraciolo

O que Python pode fazer e você não sabia | Eric Hideki


Comunidade

Tomer Simis, CTO da EventPlatz

Osvaldo Santana

Andrews Medina, desenvolvedor na globo.com

Eric Hideki

Tania Moreira

Thiago Avelino

Henrique Bastos

Massimo Di Pierro

Osvaldo Matos Júnior


Acho que já tem material para a galera gastar um bom tempo, mas como sempre, falta ainda algumas coisas, e aí, o que falta? Coloca aí nos comentários 🙂

Anúncios

Python no Brasil: Passado, presente e o futuro – Part:1

Ao ver os resultados que a Lidiane Monteiro apresentou sobre sua pesquisa da comunidade Python brasileira foi um sinal para mim. Sinal dos pontos que devem ser louvados, tanto quanto pontos a serem melhorados. Analisando slide por slide é possível tirar diversas conclusões, e algumas delas não diretamente a Python, e sim a área de TI em geral.

Em cada slide irei colocar MINHAS OPINIÕES a respeito, sinta de a vontade para criticar, concordar ou ressaltar, até porque discussões de pontos de vista são uma excelente forma de aprendizado conjunto ;).

Gênero

Python: Passado, presente, futuro - Part: 1

Infelizmente isso é um número geral em todas as áreas de TI. Ainda há quem sabe um dia que acabe o machismo, brincadeiras nocivas e descriminação do sexo feminino em relação a área de exatas. Vide esse artigo:

http://blog.msoledade.com.br/?p=205

TODAS as mulheres com quem tive contato já falaram que pelo menos uma vez na vida sofreu preconceito no local de trabalho, por isso existem iniciativas sensacionais para que esse cenário mude. Se caso não conhece, veja esses projetos fantásticos:

home


http://pyladiesnatal.github.io/
#SerMulherEmTech
http://rodadahacker.com/
http://inspiradanacomputacao.wordpress.com/
http://www.pyladies.com/
http://railsgirls.com/

Uma das premissas do código de conduta do Python é que visa o respeito e a diversidade de tudo e todos. Isso é um dos motivos de gostar da linguagem, construir um ambiente inclusivo no qual todos possam ser equivalentes, em que o respeito seja o pilar de qualquer relação entre as pessoas.

Esses números são tristes, a área poderia ser muito mais rica, diversificada e repleta de evoluções se esse tipo de coisa não acontecesse. Mas isso não acontece só na área de TI, acontece de forma geral, até porque em muitos casos é tão verdade que a mulher recebe menos do que o homem, mesmo executando os mesmos serviços.

Novamente, ainda bem que existem iniciativas de pessoas como a Lucia Freitas, Camila Archutti, Daniela Silva e diversas outras pessoas que se esforçam diariamente para contornar a situação.

Escolaridade

py2

Esse gráfico mostra diversos pontos interessantes. Ter como a grande maioria pessoas de Superior Incompleto são estudantes, ou seja, são pessoas que estão aprendendo a programar. A outra fatia grande do gráfico são pessoas com Superior Completo. Então temos a leve ideia de que a maioria das pessoas no Brasil que estão mexendo com Python são pessoas na faixa entre 18~25 anos, então haverá uma grande safra de pessoas com conhecimentos em Python dentro de alguns anos no mercado.

Já as pessoas com Superior Completo são a maioria do qual já trabalham há algum tempo com programação, fora os níveis acima como Pós-graduação, Mestrado e Doutorado, que por um lado é ruim termos poucas pessoas com esses níveis.

Acredito que isso venha da cultura brasileira no qual o curso Superior é o suficiente. Até porque a grande maioria entra na faculdade com intuito de ingresso no mercado de trabalho, sendo que o requisito mínimo seja o Superior Completo.

Concluindo, isso mostra que Python tende a crescer com o passar do tempo devido a grande maioria ser jovem.

Quantos anos programando?

py3

Olhe só, 40% das pessoas são entre 1 a 3 anos, aí entra novamente a questão dos estudantes. Já a outra maioria de 28% são as pessoas que estão dentro do mercado. E algo surpreendente é uma fatia de programadores Sênior com 16%.

Isso é bom, e algo também ruim. Bom no sentido que mais da metade das pessoas contém no mínimo 3 anos de experiência com programação. Por outro lado entra o que muitos tem reclamado: Despreparo das pessoas para preencher vagas de emprego.

E já digo na lata: Não arranja emprego na área quem não quer. Como já coloquei esse vídeo uma vez, colocarei de novo para reforçar minha tese:

“Quem quer dá um jeito, não arranja desculpa. Se não tem tempo, então está na hora de você repensar na forma como gasta suas horas. Todos temos 24 horas por dia e mesmo assim consegue fazer as coisas nas horas livres”

Para eu aprender Python, melhor ainda, aprender de forma plena como COMEÇAR a programar, levei 2 anos estudando por conta. Como também já falei em minhas palestras, tentei mais de 100 vezes nos mais diversos tipos de apostilas, aulas, tutoriais.

“Água mole em pedra dura, tanto bate até que fura.”

Quem consegue as coisas são aqueles que persistem, não que desistem ao primeiro obstáculo.

Aí novamente entra o vídeo do Bruno Tikami para a Python Brasil do ano passado: “Quer ganhar 10k por mês? Tem que ralar!”

Em que nível você está?

py4

36% são iniciantes, metade são intermediários, ou seja, a maioria que ou está tentando arranjar emprego, ou já trabalha há algum tempo. E ter apenas 14% de avançado mostra que falta gente capacitada.

O que isso significa? O mercado ainda sofrerá com as pessoas inacapacitadas, e isso sempre será. Bons profissionais são disputados e nunca faltam oportunidades, se tá faltando oportunidade para você, quer dizer que tem alguns pontos a serem melhorados.

Em que usa Python?

py5

Maioria para projetos pessoais, já a outra grande fatia como Hobby, ou seguidos de trabalhos acadêmicos.

Novamente relacionado as pessoas que estão na faculdade. Não tem como comentar muito a respeito.

Em que áreas você usa Python?

py6

Desenvolvimento web ganha disparado, isso é fácil devido a grande parte dos projetos serem desenvolvidos em Django ou Flask. Olha a outra fatia interessante de 16% que apenas estudam.

Já perceberam que os dados são muito bacanas, mas tem que levar em consideração que a grande maioria das pessoas que estão respondendo o formulário são estudantes? Não que isso seja ruim, mas não leve esses dados como verdades proporcionais absolutas.

E outro dado interessante são as diversas aplicações da linguagem em campos diferentes. Confesso que fiquei impressionado com a quantidade de aplicações Desktop e processamento de imagens.

Quais frameworks utilizados?

py7

A ordem é natural, Django é o framework mais popular do Python, devido a ser full-stack, ótima documentação e fontes de referências, seguidos de Flask, alternativa natural caso Django não atenda aos requisitos do projeto.

Web2py no Brasil está em destaque como terceiro lugar devido aos esforços das pessoas da comunidade no Brasil, como o Bruno Rocha e Elcio Ferreira escrevendo artigos e vídeos a respeito.

E os outros frameworks, tão importantes quanto os demais acima, Pyramid e Bottle são muito bacanas, outras alternativas ao Flask, caso queira, Tornado para aplicações com altas requisições, e um número engraçado, Plone em terceiro.

Plone talvez seja tão usado quanto os outros acima citados, diversos projetos brasileiros de grandes portais como os Correios, sites governamentais são feitos em Plone, então esse número seja um pouco errado.

Qual SO usa para programar Python?

py8

Esse ponto se contradiz um pouco. Grande maioria dos estudantes estão usando Windows para aprender a programar, e eles são a grande maioria nessa pesquisa.

O que significa isso?

Significa que a grande maioria está aprendendo por conta própria, saber usar sistemas Linux se torna muito mais fácil e rápido aprender Python do que Windows.

Windows em segundo lugar, então entra a questão das pessoas que tem preferência ao sistema, ou necessidade e tal. Normal.

E Mac em terceiro, provavelmente pessoas que já trabalham na área e precisam de tecnologia mais alta para trabalho.

Em que outras linguagens você programa?

py9

Isso é bacana. Ter Java e C/C++ como as linguagens principais mostra aqueles que trabalham com essas diariamente e usam Python como projetos pessoais ou Hobby.

Outro ponto como PHP, não há de negar que é mais fácil encontrar projetos PHP para dar manutenção do que Python, isso devido ao número de projetos feitos com WordPress, Joomla ou Drupal, ou até mesmo sites mais antigos.

E seguindo a ideia, vejo por exemplo que apenas 3% apenas trabalham com Python. Isso quer dizer que tem muita gente que gostaria de trabalhar com Python, mas por inúmeras razões não trabalham.

Trabalha com programação?

py10

Grande maioria sim, então isso é um ponto positivo. Mas ainda ter 42% não trabalhando quer dizer que a situação poderia ser melhor, a questão é? Quais são as razões para que não haja mais ingresso das pessoas na área de programação?

Alguma vez já trabalhou com Python?

py11

Outro número interessantíssimo. Apenas 36% já trabalharam. Menos da metade já trabalhou com Python.

Isso quer dizer que não há oportunidades?

Na verdade já me perguntei em relação a isso, as vagas de Python em grande parte necessitam de que haja experiência, mas como posso arranjar experiência se não arranjo emprego?

Projetos Open Source. Colabore e o torne como portifólio. Programador bom é aquele que expõe seu código para ser julgado, até porque julgá-lo o tornará um programador melhor.

E também estar dentro da comunidade, 75% das vagas são preenchidas antes de serem postadas em sites de emprego. Se você não está em contato com as pessoas que trabalham com Python, como é que você irá saber sobre as vagas que abrem? Como é que irão saber que você é bom se não tem código aberto para ser avaliado?

Você trabalha atualmente com Python?

py12

Novamente entra a questão, você está preparado para essas vagas? E isso não é só Python, é o mercado em geral? Tem o mínimo de conhecimento sobre testes? Controle de versão com Git? Sabe trabalhar com mais de um framework? E trabalhar com API’s?

O que o Bruno disse: “Se você não sabe, tem que correr, virar noites estudando, se esforçando para aprender.”

O que você acha da documentação de Python?

py13

Um dos pontos fortes de Python é a documentação, tanto é que a metade das pessoas o consideram boa, claro que há pontos a serem melhorados. Já a outra parte que é mais de 1/4 da pesquisa diz que é ótimo, ponto positivo.

Ter 4 pessoas dizendo que é ruim é normal, mas o que eu gostaria de saber quais são os pontos negativos que essas pessoas viram? Talvez possamos melhorar com simples mudanças.

E olha, 7% das pessoas nunca usaram a documentação. Isso novamente entra a questão dos novatos. 7% é muito alto.


 

Farei disso como primeira parte, acredito que no decorrer da semana irei lançar a continuação dos slides. Comentem, sua opinião é muito importante.

#3 Bruno Rocha | Pythonistas que você devia conhecer

Orgulhosamente digo as pessoas que realmente aprendi Python através do curso de Python que o Bruno ministrou, tanto que na época escrevi um artigo comentando.

Até então ficava batendo a cabeça na parede tentando entender alguns conceitos da linguagem e como poderia criar alguns programas com ele, nisso fiz um curso de Python, Web2py e HTML/CSS/JS para me atualizar.

Então hoje convidei o Bruno para falar um pouco dele e sobre os projetos em que atuou e o que anda fazendo atualmente.

Bruno, fale um pouco de você

b48ee8f5f9432b4d291136ad98cd6333

Moro em Cotia/SP, sou apaixonado por animais (dá para perceber pelo nome de meus projetos) e tenho feito alguns trabalhos voluntários envolvendo a proteção animal e a promoção dos direitos animais. Sou vegetariano desde que nasci e vegano desde 2003 (coincidentemente ano em que comecei a trabalhar com Python). Quando não estou programando com certeza estou em algum parque com os cães, no meio do mato onde moro ou cuidando dos 31 animais (entre ratos, jabutis, esquilos, pombos, cães e gatos) que vivem sob minha tutela em casa (todos animais resgatados da rua ou de alguma situação de maus tratos).

Como não rolou (ainda) ser veterinário eu decidi seguir minha segunda paixão que é a tecnologia e hoje sou Programador!

Entrei na T.I como professor em escola de informática e pouco depois comecei a programar em Perl e PHP, isso em meados de 1998, ai depois disso tive uma série de experiencias com outras tecnologias como ASP, C, C/CASL (uma linguagem C based especifica para Palm O.S), inclusive já estive durante algum tempo no lado negro da força quando me especializei em tecnologias Microsoft e fiz até uma certificação em C#/.NET (MCAD). Também trabalhei como DBA e programei muito em linguagem SQL no Oracle e no SQLServer. (dá #medo só de lembrar daquelas procedures, jobs e triggers).

Python eu conheci em 2003, mesma época em que entrei na faculdade de Sistemas de Informação, lá se utilizava Python para automatizar tarefas de SysAdmin e parse de arquivos de texto, ai um pouco depois participei de alguns projetos profissionais e academicos usando e colaborando com o Kurumin Linux e pude aprender muito de Python com o Carlos Morimoto. Por volta de 2005 eu vi a luz no fim do tunel e a chance trocar o PHP por algo melhor quando conheci um novo framework chamado Pylons, passei a acompanhar seu desenvolvimento até que consegui através de uma das listas de discussão do Pylons um Job de grande porte utilizando o framework. (Uma questão curiosa é que o Django teria sido lançado apenas alguns meses antes do Pylons e mesmo assim eu passei um bom tempo sem nem mesmo ouvir falar no Django.).

Infelizmente nesta época não existia mercado de trabalho para Python e então eu logo tive que voltar a trabalhar com .NET, aprendi a programar em C# e tirei minha certificação MS ficando entre 2007 e 2009 desenvolvendo projetos de ECM, ERP, WMS e GEO utilizando tecnologias Microsoft. Assumi um cargo de gerente de projetos/scrum master e em busca de novas tecnologias para a empresa acabei conhecendo o web2py no final de 2008 e apesar de eu estar mergulhado em .NET eu sempre dava um jeito de acompanhar a evolução do web2py, até que por incentivo de meu amigo @elcio da Visie eu acabei tomando a decisão de me aprofundar mais no framework e inseri-lo em novos projetos na empresa em que trabalhava.

Eu comecei então a contribuir com documentação, testes e em pouco tempo estava contribuindo com código, tive a sorte de entrar no time de dev do web2py bem na época em que o framework estava sendo reescrito e aprendi muita coisa, em pouco tempo me tornei um dos principais contribuidores do framework que passou a ser minha ferramenta profissional principal, ai por isso em 2010 eu iniciei o CursoDePython.com.br e desde então tenho trabalhado com treinamentos de Python e de web2py (que na minha opinião é o melhor framework para ensino). Já perdi as contas de quantas pessoas já passaram pelo curso, mas com certeza foram muitas tanto no online quanto no in-company, posso dizer que a frase “é ensinando que se aprende” é realmente verdadeira pois grande parte do que sei de desenvolvimento web e Python eu aprendi mesmo com nas experiências com os alunos.

Mas o mercado de trabalho para web2py infelizmente ainda não é dos melhores e eu tive que dar uma “abandonada” no projeto para me manter no mercado de trabalho e então comecei a trabalhar com Django no final de 2011 em uma startup chamada Dr.Busca, foi muito legal aprendi muito sobre Django que até então eu só tinha ouvido falar, aprendi a ama-lo e a odia-lo ao mesmo tempo! Por conta desta experiência com Django eu entrei na YACOWS em 2013 e tive a oportunidade de trabalhar com projetos bem bacanas, desenvolvemos um CMS para grandes portais usando Django e mais uma série de tecnologias de alta escala, desenvolvi sites de grande visibilidade como os portais JovemPan, Virgula e Revista Rolling Stone. Na Yacows trabalhei com profissionais muito competentes com quem aprendi muita coisa e com uma galera muito bacana que eu já conhecia da comunidade Python.

No ínicio de 2014 eu decidi sair da YACOWS em busca de novas experiências e atualmente sou Programador na equipe de inovação da Catho Online, trabalhamos com Machine Learning, Big Data, Data Mining e uma série de experimentos legais todos com Python! — “Python é vida!” – A frase que a galera utiliza por aqui!

E Web2py? O que você poderia falar sobre ele, já que é um dos principais colaboradores do projeto? E qual será o futuro dele?

O web2py na minha opinião é uma obra de pura genialidade, o Massimo Di Pierro é uma das pessoas que eu mais admiro pela seu conhecimento e visão, além disso é admiravél a dedicação dele ao projeto tendo conseguido durante tanto tempo manter e evoluir o web2py para um dos principais frameworks web do mercado apesar de todas as controvérsias envolvendo o web2py.

O que muita gente não percebe é que o web2py não é apenas um framework web, o web2py é um manifesto pela liberdade de expressão, ou melhor, liberdade de codificação, como o próprio Massimo diz em suas palestras “Desenvolvimento web deveria ser fácil” e é exatamente isso que o web2py propoe, uma ferramenta fácil e acessível para que qualquer pessoa com mínimos conhecimentos técnicos possa desenvolver seus próprio aplicativos web, escaláveis e com tudo o que tem direito. Só por isso o web2py já merece um lugar bem especial na comunidade Python, o web2py deveria ser muito mais amado pelos Pythonistas!

Além disso o web2py é o único framework realmente full-stack, ou seja, ele tem tudo, é auto contido, não depende de nada além dele mesmo e isso é realmente mágico, eu já treinei pessoas que não conheciam quase nada de programação e essas pessoas criaram portais e até iniciaram empresas com web2py. é lindo!

Mas, nem tudo são flores, e o mercado funciona um pouco diferente, grandes empresas precisam de uma certa “validação” e isso o web2py só tem na area acadêmica e em projetos internos, além disso a própria comunidade não conseguiu absorver a idéia de um framework cheio de mágicas e isso acabou gerando muita confusão, tem gente que nunca usou o web2py, nem sabe como funciona e mesmo assim fala mal do framework.

Hoje em dia eu continuo mantendo o portal web2pyslices que foi desenvolvido com o Movuca CMS (que criei usando o web2py), além disso tenho o portal www.menuvegano.com.br que também roda com esse CMS. Mas não utilizo web2py em meus novos projetos pois acabei não concordando com algumas decisões do time de desenvolvimento do framework, eu cheguei a codificar e sugerir mudanças na forma como o web2py lida com os models de dados, também acredito que o sistema de plugins deveria ser mais desacoplado além de que tem melhorias a serem feitas as ferramentas de admin e geração de widgets. Porém entendo perfeitamente o fato do Massimo e do time quererem seguir os principios de compatibilidade e independencia, portanto no fundo admiro bastante esta estabilidade como projeto Open Source focado em facilidade e ensino, mas tenho objeções ao uso dele em projetos com times muito grandes e projetos que precisem crescer de verdade.

O futuro do web2py na minha opinião não está bem definido, não existem esforços para ele funcionar no Python 3 e o web2py parece que será um projeto totalmente diferente e isso realmente daria muito trabalho (assim como aconteceu com o Pylons na transição para Pyramid). Eu vejo o web2py com um futuro brilhante como ferramenta de prototipação, de ensino, como framework para desenvolvimento de aplicativos de baixa escala e em equipes pequenas principalmente quando o time ainda não é tão experiente. Além disso o web2py é perfeito para startups que precisam validar suas idéias. Com certeza a melhor forma de aprender desenvolvimento web e Python é através do web2py.

Você desenvolveu 2 projetos de CMS em Python, o Opps CMS feito em Django e o Quokka CMS em Flask? Quais são as vantagens de cada um e como foi a experiência?

O Opps CMS foi um dos maiores projetos em que já trabalhei tanto pelo tamanho do projeto quanto pela quantidade de pessoas envolvidas, em poucos meses desenvolvemos mais de 20 apps para o CMS e colocamos no ar grandes portais como o Virgula, JovemPan AM e JovemPan FM. Esses projetos além de Django envolveram tecnologias diversas como NoSQL, Redis, mongo, SSE, PostGres, Mysql e servidores web de alta disponibilidade com Nginx, varnish etc. Foi uma experiência em que pude aprender muita coisa mesmo. O Opps tem a vantagem de ser um CMS desenvolvido durante o “voo” pois em todos esses projetos nós migramos os sites existentes e continuamos desenvolvendo junto o feedback das redações de cada meio de comunicação e isso dá uma base muito boa para conhecer o mercado editorial e desenvolver coisas realmente uteis para eles. É um projeto bem legal que está em pleno desenvolvimento!

Com a experiência do Opps eu pude aprender muito sobre CMS e fui pesquisar mais sobre o tema, testei Plone, Drupal, Concrete5, Liferay e comecei até chegar a conclusão de que CMS precisa principalmente de 3 coisas:

  1. Instalação fácil e automatizada
  2. Temas e plugins faceis de instalar e desenvolver
  3. Dinamismo na estrutura de dados

O item 3 é o mais critico e por isso conclui que bancos de dados relacionais com esquema fechado não servem para CMS em que você tem mais de um portal com necessidades diferentes utilizando e nesse ponto até os mais famosos como wordpress e drupal sofrem com esquema de banco de dados. Ai é que mora o segredo do Plone e por isso decidi criar um CMS utilizando um banco schemaless.

O Quokka CMS surgiu dessa vontade de ter uma CMS realmente dinâmico em que eu pudesse desenvolver tanto um blog quanto um mega portal sem a dor de cabeça de manter migrations de bancos de dados e utilizando Python. Como não achei nenhum projeto Python que fosse ao mesmo tempo simples de programar e com estas caracteristicas eu decidi pegar o que aprendi com o Opps e aplicar em um novo projeto.

logo

Para este projeto escolhi o Flask (que se tornou meu framework Python preferido para projetos de larga escala) e o MongoDB por conta de sua facilidade e esquema dinamico.

Hoje no Quokka conto principalmente com a colaboração do Ellison Leão que trabalhou comigo na Yacows é o co-maintainer do Quokka, ainda tem muito a evoluir e a lista de issues tanto de bugfixes quanto de melhorias está bem grande mesmo, porém o Quokka já provou que é um projeto viável e tem um grande número de pessoas utilizando, eu inclusive já coloquei mais de 3 sites no ar com o CMS e como o Quokka a maioria das features que um framework full-stack precisa ele acabou virando uma espécie de aplication framework e tenho feito apps de todo tipo, até mesmo de ecommerce e e-learning já tem módulos desenvolvidos.

Gostaria de ter mais gente da comunidade Python brasileira para integrar o time de maintainer junto comigo e com o Ellison e levarmos esse projeto para o nível de um CMS como wordpress ou Joomla, sei que parece muita pretensão mas é preciso pensar grande.

E temos também uma publicação do livro Web2py Development Application CookBook? Do que ele se trata?

Em 2011 ajudei a escrever o livro junto com o Massimo e outros membros do time de desenvolvimento do web2py, foi escrito em conjunto com mais 7 autores, o resultado final da diagramação não ficou muito bom por alguns vacilos da editora, mas eu considero o livro uma fonte essencial para quem deseja conhecer web2py, tem receitas fáceis para fazer quase tudo.

Escrever não dá muito retorno financeiro e por isso nós decidimos doar os royalties do livro, primeiro foi para Red Cross e depois doamos uma parte da grana também para patrocinar a Python Brasil do Rio de janeiro.

Além disso a experiência de publicar um livro rendeu bons frutos e atualmente estou escrevendo um novo livro de desenvolvimento web com Python e Flask que será lançado em portuguẽs!

Livro na amazon: http://www.amazon.com/Bruno-Cezar-Rocha/e/B007KZBV4M

Como foi ser nomeado um dos membros da Python Software Foundation? E o que acha da nova medida abrindo as inscrições a todas as pessoas interessadas?

Fui nomeado pelo Massimo Di Pierro que já era membro da PSF, eu fiquei muito feliz e honrado e ao mesmo tempo na época achei que a nomeação era injusta pois temos tantos nomes na comunidade brasileira que com certeza mereciam a nomeação mais do que eu, cheguei a pensar em recusar a nomeação pois achava que gente como o @osantana, @rsenra entre muitos outros mereciam mais do que eu entrar para a lista de brasileiros na PSF pois são pessoas com muito mais contribuições para a comunidade Python.

Porém nessa época coincidiu com algumas threads envolvendo o web2py onde um conhecido desenvolvedor da comunidade internacional “desdenhou” da participação do web2py no mercado de frameworks, o Massimo havia nomeado eu e mais um integrande do time web2py e eu recebi muitas mensagens e acabei ficando amigo de muita gente de dentro da PSF e isso então me fez aceitar que tinhamos que particpar principalmente por causa do web2py.

Portanto considero que a minha nomeação para a PSF foi uma forma de validar a importância que o web2py tem para a comunidade Python e achei que era válido ter mais pessoas da comunidade web2py na PSF, isso foi realmente uma quebra de barreiras para mim e coincidentemente depois de vários episódios o web2py parece que finalmente passou a ser um framework respeitado e entendido.

Resumindo, agradeço muito ao Massimo pela minha nomeação e dedico a nomeação a toda a comunidade web2py pois foi por conta do meu trabalho com o web2py que fui reconhecido como um MVP (Most Valuable Pythonista). LOL!

Apoio a medida de abrir a inscrição a PSF para qualquer membro da comunidade, isso com certeza será benéfico ao Python e irá fortalecer a comunidade, porém acredito que deva ser feito com estratégias mais elaboradas e oferecendo vantagens de verdade para os afiliados, simplesmente abrir um formulário de filiação não é algo que vai melhorar em nada.

Eu fui vice-presidente da APyB (associação Python Brasil) e acompanhei de perto muita discussão e até uma quase “morte” da associação justamente por este problema de falta de “sentido” e falta de rumo, a APyB tanto quantoa PSF precisam definir melhor qual o papel e quais as vantagens de ser um membro, caso contrário tenho certeza que a maioria das pessoas não irá se filiar apenas por caridade a comunidade. Volto a frisar uma coisa que disse que e que fui altamente criticado “Somos uma comunidade de profissionais e não uma rede de caridade!” opinião pessoal, Python para mim é trabalho, profissional e eu gostaria de ter as associações que o representam voltadas a esta visão, para permitir que a linguagem e o ecossistema cresça, seja mais respeitado e considerado por grandes empresas e tenha mais emprego, que no final é o que todo mundo quer!

Há também o projeto Natal Animal, no qual foi feito com o Quokka CMS. Conte um pouco sobre a experiência de utilizar esse framework em produção?

NatalAnimal.com.br foi iniciado em 2010 e é um projeto que a cada ano arrecada recursos no modelo “crowfunding” para ajudar abrigos e santuários de animais abandonados ou que sofreram maus tratos, é como um “criança esperança” mas é para os animais não humanos que não costumam ter apoio de grandes empresas ou dos governos.

A versão inicial era feita em web2py mas como em 2013 eu estava desenvolvendo o Quokka desenvolvi fazer a nova versão em Flask com o Quokka e foi super legal, por causa disso desenvolvi o módulo quokka-cart e integrei com meios de pagamentos, desenvolvi tbm o quokka-fundraising e coloquei o projeto no ar meio em cima da hora, o quokka aguentou bem a demanda que cresceu muito neste ano tivemos muitas transações de pagamento e validações que funcionaram com celery e eu fiquei bem feliz de ver o CMS sendo usado para algo além de páginas e blogs.

Flask é um framework sensacional e muito completo apesar de ser micro, o Quokka tem sido uma tentativa de ter um pacote full-stack em cima do flask e tem funcionado muito bem!


Para mais informações, veja em http://brunorocha.org

#2 Thiago Avelino | Pythonistas que você devia conhecer

1495497_10152040120833726_252377080_n

Thiago Avelino é uma das pessoas que tem grandes contribuições para a comunidade Open Source, trabalhando em projetos grandes como o Django, Plone e agora também um dos core-commiters do Bottle, um microframework web em Python.

Tendo em vista que muitas pessoas tem interesse de aprender em colaborar em projetos mas não sabem por onde começar, compartilho essa conversa que tive com o Thiago para ele falar mais sobre suas experiências e projetos.


Thiago, por favor fale um pouco de você.

Eu não sei muito o que falar de mim, mas sou casado e tenho um filho (que cá entre nós é lindo) que tem 1 ano, trabalho há mais de 7 anos com tecnologia, comecei trabalhar com infra e em pouco tempo comecei programar em Perl, trabalhei com diversas tecnologia (Perl, VB.Net, C++, C, Python, Ruby, Go, entre outras que estudei).

Tive uma fase da minha vida que passei empreendendo, onde tive uma startup e foi comprada por uma empresa de fora do Brasil. Muitos me pergunta se depois da venda da startup porque eu parei de empreender, com filho pequeno não é muito fácil empreender, até porque temos que viver uma vida de desapego de bens materiais (Ao menos o que nos dá conforto, carro por exemplo).

Hoje contribuo com alguns projetos open source, para saber mais de mim dê uma olhada no github e twitter.

https://github.com/avelino
https://twitter.com/avelino0

Eu fiz parte do sprint que a YACOWS havia feito para falar sobre o Opps CMS, que foi feito com Django, sendo utilizado para portais de alta visibilidade. Conte um pouco sobre quais foram as dificuldades e desafios encontrados.

Manter um software open source é um grande desafio. Quando nós desenvolvedores começamos a escrever qualquer código é para solucionar um problema X ou Y, sabendo mais ou menos qual será o nível das pessoas que irão usar. Já em projetos open source não é assim, pois o código está aberto e você não sabe quem irá usar, quais as necessidades reais que são um dos pontos importante para desenvolver um software.

Quando começamos o Opps CMS a YACOWS tinha a necessidade de colocar um portal no ar (ou seja, tínhamos algumas premissas), com isso começamos a versão 0.1.x do Opps, em mais ou menos 3 meses o portal já estava no ar, assim desenvolvemos a primeira versão do CMS em 3 meses.

Mas nem tudo são flores, depois de entregar o projeto comecei a ver que o CMS estava com característica que apenas o cliente precisava, ou seja, não era um CMS flexível e sim um CMS para o cliente X, eis que começamos a desenvolver a nova versão do CMS com novas ideias que discutimos nessa issue (https://github.com/opps/opps/issues/93), o CMS ter um ambiente de plugins (usando a base do Django de apps) e o core do CMS na versão 0.1.x não sabia exatamente o que estava acontecendo dentro dos plugins.

Um outro ponto é evolução rápida, isso realmente é complicado, chega em um ponto que não se sabe o que está implementado dentro do projeto, começando a implementar novos métodos sendo que tem outro implementado (provavelmente feito por outro contribuidor) que atende sua necessidade, ou seja, um projeto open source precisa de documentação (um ponto muito importante para qualquer projeto).

Tivemos problemas com algumas coisas do core do Django que tivemos que fazer alguns ajustes, estendendo classe para implementar a necessidade do CMS. Muitas ideia e decisões foram tiradas da arquitetura do Plone.

Para o que você indica a utilização de Plone? E quais são as vantagens desse CMS?

Plone é um excelente CMS, não só isso, eu em particular contribuí pouco com o projeto, mas tenho orgulho da comunidade e código Plone (100% testado).

Eu indico para uso de qualquer portal de conteúdo e intranet, ou seja, qualquer projeto que precise gerenciar conteúdo ele atente perfeitamente, ele tem uma estrutura de workflow extremamente flexível.

Sobre as vantagens do Plone, a comunidade Python deveria agradecer a existência dele pois via o Plone a comunidade Python tem uma abertura grande no governo Brasileiro, deixe citar algums motivos:

  • Segurança;
  • Workflow flexível;
  • Gerenciamento de conteúdo na mesma pagina do site (não tem um /admin);
  • Foco escritor (facilitando a entrada de dados no CMS);
  • Gerenciamento de imagens;
  • Desenvolvimento de novos recursos simplificado;
  • Zope como base do CMS, isso faz com que tenhamos uma base extremamente robusta;
  • Sistema de Portlets;
  • Desempenho;
  • Diversos outros;

Sei que irão me pergunta o porquê de desenvolver o Opps CMS. Para quem não tem domínio de Plone, a curva de aprendizado é grande, por isso a Opps existe, para quando você tem um time que já trabalha com Django e não tem o tempo para estudar como o Plone funciona.

Também temos o Nacho, um micro web-framework. Para o que ele serve?

Nacho
Nacho

O Nacho nasceu com a existência do Tulip (framework assíncrono para Python 3 mantido pelo Guido), hoje o projeto está parado por falta de tempo mas pretendo voltar mexer nele assim que sair o Python 3.4 (onde o Tulip se tornou a biblioteca asyncio no core do Python 3.4).

Ele é um framework para simplificar o desenvolvimento assíncrono de aplicações web com Python 3.4, criar um framework do zero foi uma iniciativa radical pois estava desenvolvendo um projeto que precisava de processamento paralelo e queria ver como estava se saindo o Python 3, com isso resolvi organizar e disponibilizar o código que estava escrevendo.

Como de forma rápida as pessoas podem começar a colaborar com projetos? 

Contribuir com software livre é um assunto de uma palestra que dei da Campus Party desse ano, eu recomendo a todos contribuírem, principalmente com os softwares que vocês usam no dia a dia, por exemplo trabalho com um framework web X (Django, Flask, Bottle e/ou qualquer outro), porque não contribuir com o projeto, contribuir não é só escrever código, dentro de um projeto open source tem diversas sub-áreas e necessidades, como design, testers, documentação e assim por diante.

Não existe uma fórmula mágica que eu possa falar para vocês, faça assim, isso vai depender de projeto para projeto, recomendo fortemente que comece a participar da comunidade local (nacional) e oficial do projeto, comece a dar ideias para o projeto, interagir com o projeto e use IRC (geralmente rede IRC) os desenvolvedores do projeto ficam muito online em canais de IRC, eu comecei a contribuir com o Django por uma demanda que surgiu no IRC.

Uma coisa que ajuda muito os projetos open source quando esta no Github é dá “star”, se você gostou do projeto, dê star, isso ajuda a você localizar o projeto futuramente.

E por último seu projeto mais recente é o Open Mining, que é uma aplicação de análise escrita em Python, feito com Numpy, Riak, MongoDB e Bottle.

O projeto final será uma aplicação de BI, ele nasceu da necessidade da empresa que eu trabalho UP!  onde a diretoria precisa saber como anda a empresa. Sei que existe o Pentaho (e outros softwares open source de BI), passei 1 mês estudando o Pentaho e realmente é muito bom, só que peca na parte que eu jugo mais importante para o projeto, o dashboard (nome usado para montar um conjunto de relatório). Para criar um dashboard dentro do Pentaho você usa um plugin chamado ctools (desenvolvido pela comunidade e precisa evoluir muito) ou você compra a licença do Pentaho, julgo mais importante pois é onde o usuário final vai usar.

Com essa carência do Pentaho logo vi uma ótima oportunidade no mercado de BI para desenvolver um novo projeto open source que seja simples e flexível criar dashboard.

Começamos o projeto com Tornado que é um ótimo framework, por gostar muito de gevent resolvi mudar para Bottle com gevent (para processar async onde precisa), o projeto é um SPA (Single-page application) cenário ideal para o Bottle (por isso resolvi mudar para Bottle).

O projeto está em desenvolvimento, seguem alguns screenshots – https://github.com/avelino/mining#screenshot

Usamos o Riak (Em um futuro próximo será possível usar outros banco como hadoop) como data warehouse e MongoDB como armazenamento de dados do admin.

Desde já convido a todos a participar do projeto, https://github.com/avelino/mining (estou 100% disposto a ajudar no que for necessário).


Há algum tempo o Marcel Caraciolo fez uma série muito bacana entrevistando diversas pessoas da comunidade, e nessa oportunidade o Thiago também foi entrevistado. Caso queria saber mais a respeito, dê uma olhada. E também outra palestra sobre MongoDB.

Aproveite e veja também sobre outro pythonista, o Alex Gaynor.

Por que escolher Django?

Django Unchained
Não esse Django.

Quando se está iniciando um projeto surge a questão sobre qual ferramenta escolher. Python tem uma infinidade de possibilidades de acordo com seus objetivos, e muitas vezes as opções podem atrapalhar sua escolha.

E o Allisson Azevedo fez uma colaboração fantástica para a comunidade liberando seu curso de Django gratuitamente no youtube. E com isso me fez pensar em que o Django se destaca?

Com isso perguntei a alguns amigos porque escolher Django para suas aplicações, quais as vantagens e o que mais gostam desse fantástico framework.


Henrique Bastos

Acho que minha palestra Trabalhando com Django para não ter trabalho expressa cada detalhe sobre isso.

Django é excelente oferecendo convenções e 90% das funcionalidades que todo mundo precisa. Além disso, quando o framework não te atende perfeitamente, torna fácil você contornar e fazer aquele pedaço do seu jeito. Pra mim isso é reflexo de um design focado no uso, no desenvolvimento pragmático.


Allisson Azevedo – Soda Virtual

O Django é um projeto sólido, principal framework web em python, com uma comunidade ativa e operosa. A desconfiança no framework que existia já caiu por terra e sua adoção não para de crescer, principalmente entre startups. Hoje temos um mercado muito promissor e o que falta muitas vezes são candidatos qualificados, por isso que eu tenho bastante interesse nessa área de treinamento.


Filipe Ximenes – Diretor da Associação Python Brasil e sócio da Vinta software studio

Utilizar Django tem pouco a ver com a linguagem [Python] no qual ele é escrito ou até mesmo com as características do framework em si e tem TUDO a ver com ecossistemas. Em primeiro lugar, o ecossitema Python que envolve além de uma linguagem extremamente poderosa, versátil e aberta, uma comunidade acolhedora, que segue os mesmos princípios de liberdade da linguagem e é bastante ativa no Brasil e no mundo. Tudo isso acompanhado do ecossistema Django, que possui uma comunidade nos mesmos moldes de Python e que deixa a disposição dos programadores milhares de bibliotecas [apps], e todo tipo de material necessário para facilitar, acelerar e melhorar o desenvolvimento de aplicações web.


Gilson Filho – Trippics.com

O Django é um framework que se tornou carro chefe para aqueles que desejam entrar no ecossistema Python, como Rails foi para o Ruby. Temos percebido através de pesquisas como também ao olhar o mercado de trabalho, que a linguagem tem sido destaque. Diante da escolha massiva da gema, Python e Django se tornou uma alternativa para as startups nos últimos tempos. Através dos projetos conhecidos como Instagram, Rdio, vemos que eles usam o Django na sua arquitetura, por ser fiel ao que promete:

“O framework web para perfeccionistas com prazos”


Gileno AlvesPycursos

Django foi o primeiro framework web Python com que trabalhei. A coisa que mais me deixou empolgado no início foi o ORM, antes trabalhava com Java e o acesso ao banco era muito precário, nesse caso específico não era culpa do Java e sim do projeto que não usava Hibernate e coisas do tipo.

Atualmente, Django é meu framework favorito porque a minha forma de trabalho se encaixa bem nele e com isso eu consigo ser bastante produtivo. A separação em app’s é muito legal e intuitiva. No início podem gerar dúvidas mas rapidamente se percebe isso.

O fato de ser batteries included é fundamental para aumentar a produtividade, muitas pessoas consideram isso uma coisa ruim porque preferem fazer suas próprias escolhas em relação a quais ferramentas vão usar em: URL’s, Banco de Dados, Templates …, mas para essas pessoas existem outros frameworks que podem se adequar melhor aos seus projetos como o Flask.

Alguns aspectos positivos de Django:

Batteries Included: O fato de vir com várias coisas de “fábrica”, ajuda muito o desenvolvimento, evita que o desenvolvedor perca muito tempo fazendo muitas escolhas e configurações. Muita gente afirma que prefere fazer suas escolhas em relação aos aspectos do projeto, entretanto se você desejar fazer um projeto de fato organizado e bem estruturado você levará um bom tempo para organizá-lo e configurá-lo, se formos procurar esqueletos de projetos em flask ou pyramid (mesmo com o scaffold) por exemplo, vamos ver muito código para deixar as coisas de fato organizadas para começar um projeto de pequeno/médio porte (de grande nem se fala). Além disso o fato de fazer escolhas por você não significa que você precisa adotar todas as escolhas, django é bastante flexível (sim ele é) e você pode deixar de usar algumas coisas, o problema é que quando você começa a “cancelar” algumas escolhas que ele faz por você, o desenvolvimento começa a perder produtividade.

Comunidade: Django sem dúvida nenhuma tem a maior comunidade e aceitação entre os frameworks web Python. Você conseguirá tirar quaisquer dúvida e usar diversas apps prontas para quase tudo que você precise.

Estrutura: Django tem uma excelente estrutura base para projetos, você organiza seu projeto em apps tornando o projeto bem estruturado desde o início e facilita a integração entre projetos e apps de terceiros. Particularmente eu quando começo qualquer projeto a primeira coisa que faço é organizar a estrutura, módulos e coisas do tipo, para que conforme o crescimento do projeto ele não fique desorganizado e com Django isso fica muito intuitivo.

Simplicidade: A startproject do django gera poucos arquivos e pastas, o ORM é um dos mais simples que eu já vi, o sistema de templates também, tudo gira em torno da simplicidade e do DRY.

Alguns aspectos negativos:

Projetos muito pequenos: para projetos muito pequenos django perde um pouco da sua simplicidade, porque ele já considera que você vai precisar de um banco relacional e de diversas outras configurações. Nesses casos o Flask, Bottle e outros microframeworks se saem muito melhor.

Aprendizado: Para ensinar Python e Web django também não se sai bem, pelo mesmo fato de ter várias configurações que poderão ser desnecessárias, principalmente porque normalmente quando se está ensinando web com python você só precisaria de escrever algumas funções para renderizar algum texto (o sistema de templates seria desnecessário) e fazer apenas alguns cálculos simples.

Projetos fora do padrão: Para projetos que precisem de muitas coisas diferenciadas como: um banco de dados não relacional, que não precise exibir páginas html ou que use apenas algum outro ORM que não o padrão do django. Projetos assim, ainda podem ter proveito do django mas dependendo da situação pode gerar uma improdutividade e assim torna-se melhor usar outro framework mas flexível em relação a essas escolhas

Deixo um dos slides mais completos de Python/Django que conheço. Muito bem indicado para aqueles que querem aprender Python e Django ao mesmo tempo.


E deixo também mais 2 vídeos tutoriais atualizados de qualidade excelente em inglês.


E não esqueça de colocar nos comentários sobre o que você mais gosta no Django.

Como ficar expert em Ruby on Rails, Python, Django e outros?

Vi esse texto sendo compartilhado pelo Fábio Akita e achei sensacional e gostaria de compartilhar com a galera. Irei colocar o original em inglês e uma tradução livre minha logo abaixo.

Ruby on Rails (web framework): How to become an expert ruby on rails developer?
What does a ror expert developer need to know? And what are the steps to get to that level of knowledge?

The question is actually “how to become an expert” in anything. Practicing. There is no recipe, no step-by-step solution. The only way is to start practicing. By doing, you will quickly learn where it hurts. Every time you stumble upon an invisible wall, stopping you from going forward, that’s when you will have to go out of your way to Google, books, other colleagues of practice and learn what’s necessary to go over that wall.

More often than not, you will quickly learn that the initial solution for that wall was not the best one, and you will have to humbly relearn. Every time, all the time. It’s a massacre. If it’s not hurting you’re not learning. No pain, no gain.

Then you repeat and keep going over wall after wall. The path is long, frustration will hit you hard many times, and only after you spend years learning how to go over every wall thrown against you, that’s when you start becoming an expert. Takes years of uninterrupted practice.


Ruby on Rails: Como se tornar expert em desenvolver em Ruby on Rails?
O que um programador Ruby on Rails precisa saber? E quais são os passos para chegar a esse nível de conhecimento?

A questão realmente é “Como se tornar um expert” em qualquer coisa. Praticando. Não há receita, nenhuma solução passo a passo. O único caminho é começar praticando. Fazendo, você logo verá onde machuca. Toda hora você tropeçar em uma parede invisível, impedindo de seguir em frente, será então quando deverá fugir do seu caminho normal para procurar no Google, livros, colegas de faculdade e aprender o que é necessário para seguir adiante através dessa parede invisível.

De uma forma aprenderá rapidamente de que solução inicial para atravessar a parede não será a das melhores, e humildemente terá que reaprender. Toda hora, todo tempo. É massacrante. Se não está machucando você não está aprendendo. Sem dor, sem ganho.

1429005_15420938

Então repetirá o processo parede por parede que surgir no processo. O processo é longo, frustrações irão te machucar muito diversas vezes, e apenas gastando anos em aprender a atravessar essas paredes que surgirem contra você é que se tornará um expert. Serão anos ininterruptos de prática.

#1 Alex Gaynor | Pythonistas que você devia conhecer

Alex é um dos maiories contribuidores do Python, tendo atuado em projetos importantes como o framework Django, o Pypy, e criado o Topaz e diversos outros projetos.

Alex Gaynor
Alex Gaynor

Trabalha no Rackspace, empresa voltada a serviços em Cloud, e também tendo passagem por empresas como Rdio e Quora, além de colaborações na Django Software foundation.

Palestrante em diversos países, compartilhando suas experiências e projetos, fazendo parte da PSF(Python software foundation), organização sem fins lucrativos que visa promover e alavancar a linguagem.

As pessoas que fazem parte são aquelas que tem contribuições enormes ao Python, sendo indicado em 2011. Vale lembrar que temos diversos brasileiros dentro dessa lista, tais como Henrique Bastos, Bruno Rocha, Érico Andrei, Luciano Ramalho e outros.

Conheça um pouco mais sobre seus projetos e contribuições.

Topaz

Topaz é uma implementação de Ruby escrito em Python, sendo usado RPython Virtual Machine.

http://docs.topazruby.com/
https://speakerdeck.com/jan/topaz-is-ruby-in-python

Cryptography

Cryptography foi feito para expor receitas e informações para desenvolvedores Python. Alex tendo a necessidade de de trabalhar com criptografia, analisando as possibilidades disponíveis não atendiam de forma ideal, assim como qualquer programador faz, se não existe algo bacana, nada como fazer você mesmo. Podendo ser usando tanto no Python 2.x, 3.x e PyPi.

Em seu blog ele detalha melhor sua experiência ao criar esse projeto: http://alexgaynor.net/2014/feb/12/why-crypto/

Warehouse

Uma iniciativa para criar um novo repositório de pacotes Python para poder substituir os pacotes legados que o PyPi tem atualmente.

E também tem diversas contribuições no Core do Django.

Temos também o destaque em suas diversas palestras, tanto falando sobre Open Source, Django ou PyPy. Podemos acompanhar através dos vídeos disponibilizados pela pyvideo.org. Vejam alguns:

Veja seus projetos no Github ou acompanhe suas ideias no Twitter. Uma coisa legal são as respostas no formspring comentando sobre suas ideias, como aprendeu a programar e porque gosta tanto de Python.