Web2schools – Gerenciamento de escolas com Web2py

Há um tempo atrás a minha amiga Júlia Rizza lançou um projeto pessoal muito interessante, o Web2schools, um sistema de gerenciamento completo de escolas, e feito com Python/Web2py. Com isso fiz uma pequena entrevista para que ela comentasse sobre o projeto, suas ideias, problemas e soluções e diversas outras coisas.

Uma entrevista bem interessante para quem deseja saber mais sobre o processo de aprendizado de programação e como funciona o Web2py em produção.

Júlia, por favor fale um pouco de você e suas experiências.

Meu nome é Júlia Rizza, tenho 16 anos, sofrendo a pressão do 3º ano do ensino médio e comecei a aprender Python há mais ou menos 2 anos e meio. Comecei a me interessar muito pelo desenvolvimento de sites quando tinha 12 anos e, lá pelos 14, descobri que eu poderia fazer aplicações web também. Foi aí que conheci Python e iniciei meus estudos na linguagem, aprendendo web2py assim que senti já ter uma base sólida na linguagem. Iniciei minhas experiências reais em projetos Open Source, principalmente com o pessoal da comunidade Kolaborativa (http://kolaborativa.com), e consegui tirar muito aprendizado deles.

julia

O que te motivou a fazer essa aplicação? 

Minha motivação é a mais comum em quem está incomodado com algo: o que eu utilizava não prestava, então decidi fazer eu mesma. Por ainda estar na escola, sei da realidade do uso de um sistema de gerenciamento escolar, pois eu mesma uso um fornecido pela minha escola e vejo os professores/coordenadores da escola usando também. Ainda assim, todos nós sempre passamos raiva porque falta alguma ferramenta, ou ela existe e não funciona direito, ou não é completa, entre outros problemas.

Por isso, pensei “eu posso fazer algo melhor que isso“. Foi então que da necessidade nasceu um sistema. Mas não, eu não pretendo que minha escola use ele. Ele é focado em pequenas escolas de ensino básico ou cursos técnicos, porque não existe a urgência e nem a cobrança de uma escola imensa como a minha. Em escolas como a que eu estudo, a burocracia é imensa e é preciso ter uma equipe de funcionários treinados e uma disponibilidade imensa para resolver problemas que sequer são do sistema. Ou seja, muita dor de cabeça!

foto_1

Por que escolheu Web2py? Quais foram tanto as facilidades e as dificuldades que essa escolha trouxe?

Uso web2py desde o início da minha aprendizagem de Python para web. Isso se deve ao simples fato de que, quando eu estava começando a aprender, ele era o que tinha uma curva de aprendizado mais rápida e tranquila. Porém, ainda agora, depois de já ter adquirido experiência com o framework, sinto receio de trocá-lo por outro, como o Django (poderoso e popular). Isso se deve a vários fatores.

Um deles é que penso que o web2py segue de melhor forma os princípios da linguagem Python, porque, enquanto o Django segue firmemente a sintaxe, o web2py torna a experiência melhor com o uso sempre objetivo, para manter o código claro (explícito) e não se repetir. Além disso, é com ele que consigo sempre manter uma linha de pensamento clara sobre meu código, ao invés de ter que interromper meu pensamento com erros e peculiaridades do framework, porque até mesmo seu sistema de exibição de erros deixa tudo muito claro.

Quanto as dificuldades, devo dizer que é a documentação. Noventa porcento dos programadores web2py que conheço te responderiam nessa parte, com certeza, a documentação. Vou explicar isso melhor adiante.

Pelo que soube o feedback das pessoas foi muito bacana, quais sugestões por exemplo irá implementar?
Recebi muitos feedbacks legais e fico muito contente por isso. Orgulho-me de constatar que todos que falavam sobre erros no sistema já foram resolvidos! O próximo passo é implementar as ideias bacanas que recebi, e foram muitas.
Uma que achei muito boa e que vai melhorar em muito o sistema é o cadastramento da disponibilidade do professor, para que o sistema calcule e sugira possíveis rotinas de aulas baseadas na disponibilidade de cada professor. Essa é a próxima da minha lista de feedbacks e (novidade) agora tenho um pessoal muito bacana com quem estou trabalhando (http://cacho.la) que está me ajudando na branding do projeto, para deixar ele com uma interface ainda melhor!
foto_2
A aplicação é bem completa, abordando desde as notas dos alunos, gerenciamento de salas e até ocorrências, por acaso alguma escola ou empresa mostrou interesse na aplicação?

Já tive resposta de várias pessoas, sim, que fazem parte da equipe de algumas escolas e mostraram interesse. Por enquanto ainda não houve nenhuma negociação, apenas o início de algumas, até porque estou numa fase delicada na escola e preciso gerenciar bem os meus horários esse ano.

Mas fico muito contente por ter visto interesse ou elogios por parte de várias pessoas e saber que fiz algo que pode realmente auxiliar alguém. O que, aliás, penso que deveria ser o objetivo de muitos desenvolvedores, não só meu. Minha maior alegria é ver que algo que eu fiz pode ajudar ou mudar algo para melhor.

Foi difícil encontrar informações em como desenvolver o projeto assim como na parte conceitual como técnica com Web2py?

Um dos pontos negativos do web2py é que nem sempre a documentação da aplicação está completa ou atualizada. Mas um dos pontos positivos é que com uma aprendizagem básica você consegue desenvolver grandes aplicações. Como eu já tinha alguma experiência com uso de sistemas escolares, o conceito e a lógica do que eu queria desenvolver já estava todo planejado e foi desenvolvido muito rápido com web2py, pois, como eu disse, com pouco de web2py você consegue muito de uma aplicação. As maiores dificuldades, quando eu encontrava uma dúvida e não conseguia uma resposta na documentação, geralmente não levavam muito tempo para serem resolvidas.

No caso da documentação falhar, nada como uma pesquisa no Google ou no StackOverflow (os melhores amigos de um programador, ou meus, pelo menos) para entender o que estava faltando na documentação e continuar o processo de desenvolvimento ainda mais motivada. Dessa forma, não foi realmente difícil encontrar informações, porque parte eu já tinha e outra parte não me custou uma vida para conseguir, e como todo conhecimento é ouro, fico contente mesmo quando a documentação está desatualizada e eu consigo uma solução.

Por que Python?

Bom, a minha história toda com Python resumidamente é a seguinte: eu não fazia ideia de que existia programação, tudo o que eu sabia era que alguém, fazendo bruxaria ou voodoo, talvez por mágica ou com um sofrimento infinito, um dia criou programas para o meu computador (devem ser aqueles hackers de novo haha). Porém, eis que eu descubro, que meu pai foi programador antes mesmo de eu nascer, mesmo que ele trabalhe em uma área completamente diferente disso agora. E foi nessa de “Olha pai, eu tô montando um site” que meu pai me disse “Você já pensou em aprender programação? Pra desenvolver programas e essas coisas.” que eu descobri que programação era possível para gente simples que nem eu. Tudo bem que eu pensei “Noooooossa, vou fazer mágica de computador” e imaginei que seria muito difícil. Meu pai, que era bem mais informado que eu, falou “Tem uma linguagem que está fazendo sucesso recentemente chamada Python, que dizem que é muito boa para aprender programação. Quer aprender?”. Eu aceitei, claro, e ele me passou vários links de apostilas online e livros sobre lógica de programação.

Depois fiz cursos onlines só para reforçar, mas já estava toda empolgada pelo meu primeiro “Hello World!”. Dizem que a primeira vez a gente nunca esquece (sem sentidos obscenos, por favor), então desde então eu me apaixonei por Python, porque mesmo tentando aprender Java ou PHP depois, parecia que nada se igualava a Python, seja por sua praticidade, por sua capacidade ou até mesmo pela sensação que eu sinto quando estou desenvolvendo. É um caso de amor que vêm da infância haha. Mas, tecnicamente, a lista de qualidades de Python é enorme e eu sei que não preciso citá-la aqui, mas posso afirmar que minha decisão se baseia na ideia de que “É simples, prático, funciona bem e muitas vezes melhor que outras mais difíceis e complexas. Então, por que eu devo dificultar as coisas?” (keep it simple).

foto_3

Quais são suas dicas para quem deseja aprender Python?

Minha dica é gostar do que se está fazendo. Porque vi muitos casos de gente que viu que programador Python ganhava bem (até porque eles andavam em falta no mercado) e decidiu aprender sem nem mesmo gostar de programação, porque falaram que é fácil. Realmente é muito fácil e a sensação é ótima ao programar em uma linguagem como Python (I am Superman! /o/), mas é preciso gostar do que está fazendo. É sempre importante definir um objetivo de curto prazo, como “Até o final da semana eu vou desenvolver uma calculadora”. Tudo bem que você pode pegar um tutorial por aí e fazer isso em meia hora, mas antes da velocidade é preciso ter uma prática natural e com objetivos que não sejam impossíveis, porque a sensação de objetivo cumprido só te motiva ainda mais.

Estar sempre motivado te faz aprender cada vez mais, e isso só te dá benefícios e te torna um profissional excelente no futuro. Começando aos poucos, com o que chamamos de baby steps, e fazendo um passo de cada vez é muito mais provável que sua experiência com qualquer atividade seja melhor e menos frustrante.

Deixe os contatos para quem tiver dúvidas ou queira informações a respeito, e também suas considerações.

Fico muito agradecida por poder falar sobre mim, minha experiência com Python/web2py e sobre minha aplicação mais recente (sobre mim nem tanto). Gostaria de poder ver muitas pessoas inspiradas em fazer aquilo que gostam e com objetivos bons, que motivem e sejam prazerosos, independente do que fazem, porque isso é muito importante.

Pessoas que fazem o que não querem, não experimentam nunca a sensação de se sentir realizado por algo, como se aquilo que você faz fosse mudar o mundo (o que eu realmente acredito ser possível). Se quiserem falar comigo, seja por dúvida, elogio, porque está carente e não tem ninguém pra conversar, se quiser me xingar, pode me encontrar por julia.rizza@gmail.com ou webmaster@juliarizza.com ou facebook Júlia Rizza, ou twitter @Outrora_, ou G+ pelo mesmo e-mail do gmail ou pelo mesmo nome do facebook, ou por aí.


Uma das coisas que mais fico empolgado com a linguagem e que já ouvi comentários de muitos outros é a produtividade e agilidade que oferece, construindo desde pequenas a médias aplicações e muito pouco tempo. Se tem o mínimo de conhecimento sobre lógica de programação você acaba criando aplicações fantásticas com pouco esforço.

Infelizmente Web2py é um framework que peca em relação a documentação, porém temos uma comunidade fantástica no Brasil que sempre dá suporte para quem precisa, vale a visita no grupo do Web2py no Google Groups.

A Júlia fez o curso de Web2py que comentei aqui no post de fontes de estudos junto comigo, isso no final de 2012, e vejam, em menos de 2 anos aproximadamente já está criando sistemas profissionais e funcionais em muito pouco tempo.

Fica então a dica pra galera que deseja saber mais sobre o Web2py e também o processo de desenvolvimento desde a criação da ideia até o final do processo, e isso que ela tem apenas 16 anos.

Anúncios

#1 Links – Por que só de Python ninguém vive

Tenho um e-mail só para receber newsletters tanto de notícias, informações e coisas aleatórias, e geralmente as leio sempre no final do dia para me manter informado. Lembrando então de um dos gráficos que mudaram minhas ideias completamente, inspirando o blog (abaixo), talvez compartilhando alguns desses links possa ajudar o pessoal. 

fonte: http://www.forbes.com/sites/jessicahagy/2011/11/30/how-to-be-interesting/
fonte: http://www.forbes.com/sites/jessicahagy/2011/11/30/how-to-be-interesting/

Se gostarem da ideia podemos com o tempo, talvez a cada semana colocar uma lista de links que acho legal, e de preferência vocês comentando e indicando links, podemos criar aqui um canal de troca de informações bem rica. O que acham?

Bem, vamos lá.

Como começar um projeto Python de forma certa

Jeff Knupp mostra seu fluxo de trabalho em como iniciar seus projetos em Python, criando desde um ambiente com Virtualenv, Git e na declaração de funções e classes.

Models gordos – Uma estratégia de organizar o código no Django

Todo projeto em algum momento pode tomar tamanhos desproporcionais, com isso acabamos perdendo o controle tanto do que nele está contigo como na refatoração e entendimento das funcionalidades, com isso o John Schulte mostra algumas precauções que devemos ter ao trabalhar em nossos models.

Full stack Python

Beleza, já entendi esses paranauê de loop, lambda, declaração de variáveis e até um pouco de orientação a objetos, mas como posso partir para frameworks web, ou senão banco de dados, ou pior ainda com caching?! Esse guia ajuda a tirar essas pedras no caminho do seu aprendizado. Ótima dica.

Se pudesse mudar algo em Python, o que mudaria?

Abrindo uma discussão no Reddit, o Yasoob perguntou para a galera o que gostariam de mudar, veja os resultados.

Programa Python: Regimento de treinamento

Como começar do zero com Python até ter uma aplicação Django pronta. Imperdível e completíssimo. Confesso que é um artigo que fiquei muito empolgado, a didática é bem legal e as dicas são muito boas, só os frameworks que não indicaria, no caso seriam mais indicados tanto Flask ou Web2py ao invés de Turbogears. Abordando desde declaração de variável, tipos de dados, orientação a objetos e muitas outras coisas fundamentais.

O que é phishing e engenharia social

Texto bem informativo do Alberto Brandão que é um dos caras que sempre acompanho os artigos, sempre falando sobre superar obstáculos. Engenharia social é algo que as pessoas pouco sabem do tamanho do perigo que representa, e que é aquela coisa, você nunca pensa que pode acontecer com você.

Como ganhar a vida fazendo só o que você gosta, em 7 passos

Tá começando o ano (O carnaval ainda não chegou), e tá pensando em mudar de emprego? Veja essas dicas de como ser mais feliz em seu novo emprego e mudar um pouco as perspectivas, unindo o útil ao agradável.

O que realmente te motiva a persistir em um projeto

Já teve aquela ideia que seria muito boa, mas passa um tempo você esquece? Ou senão tem uma ideia que já dá seus primeiros passos, mas logo depois desiste? Então sabia o porque acontece isso e como fugir de ter diversos projetos inacabados.

E aí, o que acharam? Deixem seus comentários, são muito importantes.