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[bb] 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[bb] 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[bb]. 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[bb], 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

Outros textos que você pode gostar:

  1. Sistema de Autenticação em PHP – Parte2 Bem vindos à segunda parte do desenvolvimento do sistema de...
  2. CodeIgniter 2.0.0 Olá, pessoal! No dia 28 de janeiro de 2011 foi...
  3. Migrations no CodeIgniter Olá, pessoal! Hoje vou falar sobre o sistema de Migrations...

Related posts brought to you by Yet Another Related Posts Plugin.

Esta entrada foi publicada em CodeIgniter, Desenvolvimento, PHP, WEB e marcada com a tag , , , . Adicione o link permanente aos seus favoritos.

10 respostas a Evoluindo em programação com PHP

  1. Amei o

    “Mas a vida é melhor para quem quer evoluir e se livrar do mar caótico dos sobrinhos”

    mas bem que poderia ter uma palavrinha a mais “openSUSE” na frase abaixo, e para nao entrarmos em conflitos, afinal cansei de ser o chato, coloque tambem o Red Hat. evitara discusoes desnecessarias.

    “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.”

    No resto, esta OTIMO, parabens e obrigado por compartilhar tua experiencia, rsrs

    Apesar de eu nao seu um desenvolvedor profissional, tambem dou meus pulos e me vi em diversas linhas que colocou, muito legal.

    Abracos
    te cuida

    CarlosRibeiro

  2. Bruno Almeida disse:

    Foi bem legal você falar o tempo todo no texto o termo ‘separar em camadas’ e não se prender unicamente ao MVC e nem vender o MVC como a única solução possível e resposta para todos os problemas :)

    Eu acho que um bom passo seguinte – e continuando no PHP – é o symfony2. Pelo menos é onde eu tenho investido o meu tempo e tenho aproveitado bastante!

    Belo artigo.

  3. Benjamin Lara disse:

    Parabéns Evaldo.
    Eu também me vi em muitas linhas que descreve. Acho que esta na hora de partir para um framework, alias, acho não, tenho certeza.

    Abs.

  4. Evaldo,

    Parabéns pelo artigo =D
    Gostaria só de fazer UMA ressalva: eu entendendo sua colocação quando diz que com o “PHP não é necessário aprender sobre HTTP”, mas da forma como você coloca isso soa como uma coisa boa. Quando na verdade não é.

    Não conhecer o protocolo para o qual a linguagem foi desenvolvida é a mesma coisa que usar um carro como uma casa. É de extrema importância conhecer sobre o protocolo, acho bacana deixar isso sempre claro uma vez que a maior parte dos problemas que as pessoas possam ter no futuro é gerada por utilizar o protocolo de uma forma errada. ;)

    Parabéns de novo pelo artigo =D

    • InFog disse:

      Então, a minha ideia era justamente fazer parecer uma coisa ruim.
      Esse é o problema da comunicação escrita =]

      Valeu pela visita e pelo comentário!

  5. AeeEe Sumido, lancei um livro… Hehehe.. Virei apenas usuário de Slack agora… Olha aee: http://www.grobsch.com.br/?p=2225.

    Abs

  6. Faltou só contar que no blog post original o autor começa com PHP e depois vira pythonista. Comparar a curva de aprendizado de Python com Java é um exagero. Como linguagem, Python é tão ou mais fácil de aprender que PHP. Basta comparar código de programas Python para GUI, linha de comando, jogos etc. O que é mais difícil de aprender é que no mundo Python (assim como em Java, .Net, Ruby etc) ninguém mais escreve uma aplicação Web embutindo a lógica e o SQL no meio do HTML, como muita gente faz em PHP. Isso é “fácil”, mas na verdade não funciona nada bem para qualquer projeto não trivial. O que todo mundo faz em Python é a mesma coisa que vc recomenda no final: a gente usa algum framework, para organizar o código e evitar reinventar a roda. E neste setor, novamente a suposta vantagem da “facilidade” do PHP não é real: já ouvi vários depoimentos de programadores que usavam frameworks em PHP e ao descobrirem Python e Django percebem que é mais fácil.

    • InFog disse:

      Olá, Luciano!

      Poxa, que legal um comentário seu aqui no blog =D
      Então, eu também estou seguindo esta sequência e atualmente tenho estudado bastante Python para WEB.
      Eu já uso Python faz um bom tempo, mas nunca foi um relacionamento muito sério. Eu até tenho um projeto maior usando Django, mas ainda não é o meu dia a dia.

      Hoje estou estudando microframeworks como o Bottle e o Flask e estou gostando muito da experiência.

      E o lance é que o Python, por não ser tão “simples para web” como o PHP, acaba de forçando a entender melhor o que está acontecendo, em vez de simplesmente escrever um monte de tags PHP no meio do HTML para gerar páginas dinâmicas.

      InFog

  7. João disse:

    Excelente artigo amigo, isso nos ajuda a evitar mais sobrinhos, quem já não passou por essa fase não?! Vi um artigo muito bom que fala sobre frameworks pra quem tá começando nesse mundo, segue o link http://blog.glaucocustodio.com/2012/07/31/porque-usar-um-framework/.

    Abraços!

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>