+11

Aprenda PHP e torne-se um bom programador sem gastar quase nada

criado por Alfred R. Baudisch em 27/01/2005 2:43pm
Introdução
Provavelmente uma das coisas mais difíceis e, digamos, chatas quando queremos aprender algo novo é achar o caminho para o qual devemos iniciar a caminhar. Falando mais claramente: por onde começar quando queremos iniciar algo novo? Quais as fontes que devo ir atrás? Qual livro devo ler? E assim vai... E, com certeza, isso afirma-se melhor quando tratamos de linguagem de programação. Vide os inúmeros livros e tutoriais que existem para cada linguagem, fica difícil escolher um para poder iniciar o estudo em certa linguagem.

Como já passei por isso várias vezes e como tinha muito tempo disponível (comecei com isso aos 13 anos), acabei criando um padrão de aprendizagem eficaz. Nesse artigo mostrarei exatamente o que fiz para aprender PHP. E, posso lhe dizer que é algo muito bom e que funciona. Você verá que terá empresas indo atrás de você, não você atrás delas.
Só que antes de ler esse artigo e querer realmente aprender PHP (ou qualquer linguagem de programação), você terá que ter:

1) Muita vontade. Esqueça que existe algo chamado "preguiça".

2) MUITA persistência. Não adianta tentar 1 ou 2 vezes e desistir caso não consiga. Tente infinitas vezes até achar, pois te garanto que na programação qualquer coisa é possível.

3) Contato com a linguagem, principalmente durante a aprendizagem, pelo menos 1 hora por dia. Ou o que for possível para você.

4) Para tudo nesse mundo capitalista você precisa de dinheiro. E aqui não seria diferente. Mas, no caso, você precisará de dinheiro apenas para a energia que irá gastar com seu PC ligado, conexão de internet e com alimentos, pois isso dá MUITA fome! (Risos)

Para facilitar a leitura, os itens "a se fazer" estão enumerados. Vamos lá!

O-que-fazer
1) Antes de iniciar seu aprendizado em qualquer linguagem WEB do lado do servidor, você deve saber HTML, principalmente a parte de tabelas e formulários. A minha recomendação é o manual oficial do HTML, com as especificações completas: http://www.w3.org/TR/html4/ (infelizmente não tem em português). Também recomendo: instalar um editor com destaque de sintaxe; entre em sites que contenham formulários, tabelas, etc.., vá em "Exibir Código Fonte" e cole esse código HTML no editor. Assim, observe o HTML da página e veja o que linha por linha faz, alterando e vendo o resultado. Em menos de 2 dias você saberá HTML caso "xerete" em vários sites.
Recomendo logo após aprender HTML, aprender as especificações do XHTML. Os novos conceitos de layout na web são baseados no XHTML + CSS, então, caso você queira estar atualizado para vagas de emprego, recomendo que estude a ambos.
http://www.w3.org/TR/xhtml1/
http://www.w3.org/TR/xhtml11/
http://www.w3.org/TR/REC-CSS2/
http://www.westciv.com/style_master/academy/css_tutorial/index.html

2) Antes de iniciar em qualquer linguagem de programação, você deve saber a lógica de programação. Para isso, existe essa excelente apostila: http://www.auriumsoft.com.br/alfred/aprendendo/logica.zip

3) Instale o PHP em sua máquina. Assim, você poderá programar, testar e ver os resultados quase em tempo real. Escrevi um artigo completo sobre como instalar Apache + PHP + MySQL: http://www.phpbrasil.com/articles/article.php/id/847

4) Instale um editor PHP com destaque de sintaxe. Um dos melhores gratuitos que existe é o PHP Editor (que também tem destaque de sintaxe para o HTML): http://www.phpeditor.kit.net

5) Sabendo HTML, lógica de programação, tendo um editor PHP instalado e o PHP rodando em seu PC, você já pode partir para o aprendizado do PHP! Primeiro, aprenda a sintaxe da linguagem, os tipos de dados, a orientação a objetos do PHP (vai por mim, é importante saber OOP). O melhor lugar para isso é o manual oficial: http://www.php.net/manual/pt_BR/preface.php
Recomendo que vá lendo e copiando os exemplos contidos no manual para o seu editor e os execute no seu PC. Não esqueça também de ir alterando os exemplos e ver o que sua alteração faz.
Leia até o capítulo 20, ignorando o capítulo sobre Instalação, visto que você já tem o PHP instalado. Achando que você já sabe o básico do PHP o suficiente, vá para o próximo passo.

6) Agora, um dos itens mais importantes desse artigo. O que lhe fará realmente aprender a linguagem e aprender técnicas e lógicas.
Acesse http://sourceforge.net/softwaremap/trove_list.php?form_cat=183 efetue o download do eGroupWare, phpMyAdmin, SugarCRM e o phpBB. Extraia todos para o Apache do seu PC. E rode primeiro o phpBB. De início, o phpBB mostra uma tela de instalação. Abra esse arquivo de instalação no editor PHP e analise linha por linha tentando entender o que as mesmas fazem. Execute o script para entender melhor. Após instalá-lo, o fórum aparecerá. Coloque para postar uma mensagem e envie. Após isso abra o arquivo que processa os posts (veja na linha de endereços do navegador) e veja como cada item foi enviado ao PHP, salvo no Banco de Dados e assim sucessivamente. Estude principalmente como os dados são recebidos dos formulários, processados e salvos no banco de dados. Com o phpBB você também poderá aprender completamente sobre sessões e sistemas de usuários.
Execute os demais programas por mim aqui citados. Faça o mesmo com todos: teste, observe o código, altere, veja o resultado e assim vai. Com o eGroupWare você aprenderá praticamente TUDO que o PHP é capaz de fazer e, principalmente, métodos de boa programação. Você verá em funcionamento: upload e manipulação de arquivos, sistemas de login e multiusuários, bancos de dados, manipulação de imagens e assim vai.
Posso lhe garantir: se você observar, alterar e testar cada linha desses scripts exaustivamente, em menos de alguns meses você se tornará um expert em PHP. Abaixo um exemplo de como seguir o que foi explicado nesse item.

7) Não pára por aí. Enquanto você vai estudando os scripts ou em TODO seu momento de programação em PHP, esteja SEMPRE com o manual do PHP aberto. Assim, caso você encontre uma função que você não conheça, esqueça parâmetros de uma função, etc..., digite no manual e aparecerá tudo sobre ela. Sabendo sobre ela.. você saberá como ela funciona realmente, já que ela estará num programa pronto (phpBB, por exemplo).

8) Todos os scripts que você achar, efetue o download, rode em seu computador, tente corrigir defeitos e adaptar novas funcionalidades. Mesmo se você nunca ir a usar isso novamente em sua vida, mas faz parte do aprendizado, você estará aprendendo coisas novas da linguagem ou treinando o que já foi visto.

9) Visite fóruns e listas de discussão e tente ajudar os outros o máximo possível, analisando e corrigindo os scripts deles. Você estará aprendendo mais.

10) Sempre leia artigos e tutoriais que você encontrar.

10) É isso. Não tem mais segredo. Como você pode ver, a comunidade Open-Source (Source Forge) é a maior responsável pelo melhor aprendizado de uma linguagem. Abaixo links com mais scripts e classes PHP para você estudar, bem como sites com artigos, etc.

Sites com Artigos, Tutoriais, Scripts, Sistemas Prontos
www.sourceforge.net (O mais completo de todos!)
www.phpkitchen.com
www.phpbuilder.com
www.superphp.com.br
www.hotscripts.com/PHP/index.html
www.phpclasses.org
www.phpbrasil.com
www.phparena.net
www.programmersheaven.com/zone27/index.htm
http://php.resourceindex.com/
www.devarticles.com/c/b/PHP/
www.devshed.com/c/b/PHP/
www.wmonline.com.br/
www.imasters.com.br
www.linhadecodigo.com.br

Fóruns e Listas de Discussão
http://forums.devshed.com/f5/s (O melhor)
http://br.groups.yahoo.com/group/php-pt/
http://www.php.net/mailing-lists.php

Exemplo de como estudar algo que executa em um sistema pronto
Mostrarei nesse exemplo como você deve estudar o processamento de formulário executado no phpBB.
Execute o phpBB, selecione um fórum e clique em "New Topic". Aparecerá o formulário. Coloque para exibir o código fonte HTML e procure pelo formulário (não direi como, você tem que saber =) ). Ache o nome do textbox do "Subject" e "Message Body", no caso são: subject e message. Procure também pelos campos de formulário hidden. Você encontrará esse: <font size="2" face="Courier New"><input type="hidden" name="mode" value="newtopic" /></font>. Ok, feito isso.. escreva qualquer coisa em ambos os campos e clique em Submit. Veja que a página que aparece na barra do navegador é a posting.php, ou seja, a mesma página que exibe o formulário também o processa.

Abra a posting.php no PHP Editor (ou no editor que você tenha instalado) e procure por subject (o nome do campo do formulário). Retornará uma vez. Busque novamente, até encontrar essa linha:
<font size="2" face="Courier New">$subject = ( !empty($HTTP_POST_VARS['subject']) ) ? trim($HTTP_POST_VARS['subject']) : '';
$message = ( !empty($HTTP_POST_VARS['message']) ) ? $HTTP_POST_VARS['message'] : '';</font>
É nessas linhas que os dados por você digitado no formulário são recebidos e repassados para as variáveis <font size="2" face="Courier New">$subject</font> e <font size="2" face="Courier New">$message</font>. Veja que o phpBB ainda usa a antiga <font size="2" face="Courier New">$HTTP_POST_VARS.</font> Você deve usar <font size="2" face="Courier New">$_POST</font> Mas, isso é apenas um detalhe.
Sempre coloque esse tipo de validação em seus formulários como o phpBB faz.

Desça um pouco no código e verá que há uma chamada para a função <font size="2" face="Courier New">prepare_post</font> onde <font size="2" face="Courier New">$subject</font> e <font size="2" face="Courier New">$message</font> fazem parte da lista de parâmetros. Procure o arquivo que contém a declaração dessa função (olhe a lista de includes em posting.php até achar com essa função) e estude o que a mesma faz, após isso, retorne ao código e verá que a função submit_post (que processa o post - a função principal) também usa $subject e $message. Faça o mesmo, vá ao arquivo com a declaração da função e a estude. Após isso.. retorne para onde você parou e continue a estudar o processamento do formulário.

Considerações Finais
Espero ter ajudado e minhas sinceras desculpas se em algumas partes não fui muito claro, pois realmente esse foi um dos artigos mais difíceis que escrevi. Não pela falta de conteúdo de minha parte, mas é uma abordagem que nunca vi em outro lugar. É algo que fica difícil de se esclarecer em palavras, o melhor seria mostrando pessoalmente para cada um que tem interesse, mas isso fica inviável, por isso existem os artigos.

Caso você não tenha entendido algo, não hesite em perguntar, tentarei lhe responder no possível.

Até a próxima!
Alfred Reinold Baudisch
alfred.baudisch@gmail.com
Blog: http://www.auriumsoft.com.br/blog/

Auriumsoft :: Inteligência, Tecnologia e Vídeo
http://www.auriumsoft.com.br

Auriumsoft Hosting
http://www.auriumhost.com.br

Comentários:

Mostrando 1 - 10 de 37 comentários
Muito bom o artigo, desde que li este artigo pela primeira vez, a dois anos e sempre tentei seguir os ensinamentos e com certeza me ajudou muito como profissional, parabéns
20/10/2010 9:43am (~13 anos atrás)

Olá Muito bom seu artigo, gostaria de saber se tem como eu criptografar meus códigos fonte em php. Tem algum programa, algum comando???

Como faço isso?

Agradeço
19/03/2007 6:15am (~17 anos atrás)

Prezados,

Muito obrigado a todos pelos comentários, pelos elogios, críticas e reclamações. Tudo é muito bem-vindo. Fica aqui minhas desculpas se demorei em lhes dar atenção, mas realmente ando muito ocupado.

Eu estou preparando mais 3 novos artigos voltados para iniciantes nesses: AJAX, Orientação a Objetos (Camadas) e Consultas Complexas de Banco de Dados (meio contraditório com o termo "iniciante", mas o público alvo é esse!).

Para quem está com problemas em baixar a apostila ela se encontra: http://www.auriumsoft.com.br/alfred/aprendendo/logica.zip

Abraços.
21/02/2006 4:18pm (~18 anos atrás)

Parabéns Alfred! Artigo adicionado nos favoritos...
01/10/2005 10:04pm (~18 anos atrás)

Parabéns pelo artigo. Posso dizer que ele foi a base de onde eu parti para o aprendizado da linguagem... confesso que nao o sigo a risca :X
Porem foi graças a ele que eu me senti seguro o bastante para ler a Documentação Oficial e para analizar os codigos da comunidde OpenSource. Gostei tando do artigo que procurei outros com o seu nome... te parabenizo novamente pois eu vi que você eh um grande contribuidor para quem está inicando o aprendizado (tanto com este artigo como com outros) sem contar que cansei de receber links de artigos seus com recomendações de "ótimos" e "execlentes" em diversas comunidades de aprendizado de PHP, o que demosntra a grande quantidade de pessoas que tiram proveito deles.
03/09/2005 11:05pm (~18 anos atrás)

Cara você esta de parabens!!!
muito bom mesmo!
14/08/2005 7:34am (~18 anos atrás)

Sandro Caiado disse:
Excelente cara, parabéns!
16/07/2005 1:21pm (~19 anos atrás)

Deco Oliveira disse:
Achei ótimo este artigo, no entanto, não consegui efetuar download da apostila de lógica no endereço: http://alfred.auriumsoft.com.br/aprendendo/logica.zip
Onde poderia obter esta apostila? Existe um endereço alternativo?
Obrigado
11/05/2005 5:50pm (~19 anos atrás)

Porquê é tão díficil se conseguir apostilas sobre PHP na internet? já procurei várias vezes e só acho apostilas iguais ao manual do PHP. Tó afim de comprar um livro, qual vc recomenda?
03/05/2005 12:45pm (~19 anos atrás)

Eu achei bem interessante para quem quer ingressar nessa area
30/04/2005 6:38pm (~19 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)