Evoluindo em programação com PHP
Há poucos dias li um texto muito interessante sobre a evolução de um programador web. E o mais interessante é que pude me ver em várias das situações descritas. Por isso resolvi fazer uma versão minha, mostrando como você também pode evoluir e ser um programador melhor. Não fiz como o autor do texto que buscou novas linguagens, em vez disso foquei no PHP e em como melhorar usando esta linguagem.Bem, não é segredo para ninguém que o PHP não é exatamente o que podemos chamar de melhor linguagem do mundo. O PHP tem lá seus problemas, suas "despadronizações", mas continua sendo uma ótima linguagem para se trabalhar e resolver problemas no dia a dia.
Mas vamos à evolução de um programador!
Tudo começa quando você ouve falar que é possível fazer páginas dinâmicas na WEB usando um tal de PHP e instala um pacotão tudo em um como o EasyPHP e descobre que com apenas uma linha de PHP já é possível enviar um "Olá mundo!" para o navegador.
Então você começa a escrever pequenos scripts no bloco de notas e logo descobre que precisa de um editor de textos melhor, que deixe a sintaxe colorida, pelo menos. Esta é uma boa hora para se conhecer o Notepad++.
Aí vem uma das maiores "mágicas" para quem está começando a programar: Banco de dados! Nessa hora você começa a brincar com o MySQL, e descobre as funções do PHP para tratar as conexões e fazer o acesso aos dados.
Oba! Com acesso a banco e paginas dinâmicas já dá para fazer uma agenda, uma lista de afazeres, um cadastro de clientes...
E este é o momento onde surgem as ervas daninhas do mundo PHP: Os sobrinhos!
O que? Você ainda não ouviu falar dos sobrinhos? Deixe-me lhe falar um pouco sobre eles, e principalmente, como evitar ser um. Alias, daqui para frente o texto continua a evolução de um programador, mas também mostra o mundo dos sobrinhos.
PHP é simples de aprender, isso é um fato. Comparado a outras linguagens como Java e Python, a curva de aprendizado do PHP é bem mais suave. E isso tem seus pontos positivos e negativos. Como eu disse logo no início deste texto, com apenas algumas linhas você já consegue fazer pequenas aplicações em PHP, e nem precisa estudar o protocolo HTTP, como funciona uma requisição ou uma resposta, o que são os códigos de status de um servidor... E essas são coisas que outras linguagens de obrigam a aprender.
Veja bem, PHP foi feito para a WEB, e é uma linguagem que realmente ajuda a resolver os problemas de forma rápida e, de preferência, com poucas linhas.
Os tais dos sobrinhos são programadores que pararam de evoluir neste ponto. Eles conhecem um editor de textos razoável, sabem fazer umas chamadas ao banco de dados e conhecem um pouco de HTML e CSS para "colorir" as páginas. Este é um estado onde todos chegamos, mas que é necessário passar.
Ser um programador que parou neste status não é exatamente uma coisa ruim, quando se deseja ficar apenas no básico e desenvolver uns projetos pessoais.
O problema começa quando vamos evoluindo mais e começamos a pegar os primeiros "freelas". Os primeiros projetos para amigos e conhecidos. E isso se torna um problema pois ainda não se tem o conhecimento de design de aplicações, separação de camadas, organização e padronização do código, etc.
E é aí que o PHP ganha a má fama. Não pela linguagem em si, mas pelas pessoas que preferem ficar neste estágio da evolução. Perceba que em geral os "projetinhos" começam a virar projetos maiores e que exigem uma arquitetura melhor, e sem a busca por mais conhecimento, os projetos acabam ficando desorganizados e caóticos.
Mas a vida é melhor para quem quer evoluir e se livrar do mar caótico dos sobrinhos.
Que tal começar por estudar e aprender mais sobre Programação Orientada à Objetos? Logo depois é hora de aprender uns padrões de projeto (design patterns) e decidir quais são os melhores para a sua aplicação.
Mas espere um pouco! A maioria dos servidores para onde você envia seus códigos são GNU/Linux! Então que tal começar a usar um no desktop também? Assim é possível ter um ambiente local mais parecido com o ambiente de produção. Ai você começa a estudar GNU/Linux, instala um Ubuntu ou um Debian e começa novamente a jornada para buscar novas ferramentas para desenvolvimento.
Ei, que tal experimentar o editor Vim? Dá para fazer coisas bem legais com ele.
Um sistema de controle de versões também vai muito bem para organizar a evolução de um projeto e conseguir trabalhar em equipes de forma mais simples. O Mercurial é ótimo para começar, mas o Git é a estrela do momento e vale a pena estar no GitHub para mostrar seu trabalho para outros desenvolvedores, além de aprender com eles.
Então você ouve falar de uns tais frameworks, e aqui é um outro grande ponto de parada. Vários desenvolvedores chegam até aqui e param, pois acreditam que não precisam de uma ferramenta como um framework para evoluir ainda mais.
Mas afinal, o que é um framework?
Um framework é um conjunto de ferramentas e também uma base organizacional para projetos de software. Mas não confunda um framework com um CMS. O famoso Wordpress é um CMS, um Sistema de Gestão de Conteúdo, assim como o Joomla e outros tantos. Um CMS é um pacote já funcional que, em geral, basta instalar, configurar, e começar a publicar conteúdos.
Já um framework é um conjunto de ferramentas desenvolvido por pessoas que já passaram pelos problemas que você está passando agora. E você pode aproveitar todo este conhecimento acumulado em seus projetos. Como fazer para validar entrada de dados? E para enviar e-mails? Como criar URLs amigáveis? Como fazer cache da aplicação? Como separar as camadas lógicas?
E existem diversas opções de frameworks PHP em software livre. A minha recomendação é o CodeIgniter, um framework leve, rápido e muito versátil. É claro que existem outras opções, para os mais variados gostos e necessidades. Se você se interessou pelo CodeIgniter, eu ofereço um curso online para que você aprenda mais rápido, o Turbine-se com CodeIgniter.
E como o PHP também evolui, é necessário conhecer as evoluções das versões mais recentes do PHP, como a versão 5.3 e a 5.4.
Após os estudos e evoluções com o backend do desenvolvimento WEB, chega a hora de conhecer mais sobre o frontend. Nesse momento as páginas da Mozilla Developer Network se tornam suas grandes amigas.
Lá dá para aprender muito sobre JavaScript, DOM, CSS, HTML5... Já deu para entender né?
E a evolução não deve parar por aqui. Busque novas ferramentas, conheça outras opções, outros editores, outras linguagens, outros modos de se fazer as coisas. O importante é ter a noção de que nunca sabemos o suficiente e, por isso, sempre devemos ter sede de mais conhecimento.
InFog