curso-php
curso-php copied to clipboard
Estrutura e conteúdo do curso.
Vamos utilizar essa issue para organizar o conteúdo e estrutura do curso de PHP.
O ideal para ter uma estrutura bem organizada é ter como dividir o curso em pelo menos dois níveis.
Nível [Básico]
-
Capítulo [Estruturas de Controle]
(módulo, tópico)
Podemos usar branches para o Nível e Pastas para os Capítulos para tentar manter tudo em um repositório só
Então a ideia de deixar em branch os capítulos era para facilitar o download, vamos supor que eu queira baixar apenas um capitulo, ai separando em branchs seria possível. E se colocássemos os níveis de complexidade em um sumario no Readme? Exemplo: No readme ficaria.
PHP Básico:
- capitulo 1
- capitulo 2 ...
PHP Avançado:
- capitulo 10
- capitulo 11 ...
O que vc acha @wilcorrea ?
@lflimeira acho que ficaria muito bom seu estilo de organização, seria de fácil entendimento e facilitaria nas buscas.
- PHP Básico
- Capítulo
- Parte Teórica
- Exemplo Prático
- Capítulo
@lflimeira a ideia de separar assim é interessante para download se o cabra for baixar através de git. Se for para gerenciar como um livro dá um pouco mais de trabalho. Aqui https://github.com/phpzm/php-like-a-boss eu montei um arcabouço que vira pdf, epub, mobi e/ou git book no ghpages.
É bom a gente pensar no formato de distribuição para não ter que ficar batendo cabeça depois com merge de várias branches para a master para publicar as tretas.
Uma sugestão pode ser através de projetos. Ex: tipo: hello world ae tinha os exemplos explicados em php, java, js etc CRUD: java, php, js etc e assim vai os conceitos em si podia ter link dos docs e/ou materiais grátis q já dao a teoria, tem teoria demais na net ja e muito curso parecido Ae podia ter uns exercícios/desafios e o gabarito em algum lugar/fórum de discussão/video aula respondendo sei la vcs q sabem.
@preetender, @danilosilvadev e @wilcorrea todas as ideias são boas, acho que seria legal propor as estruturas la na https://github.com/openschoolbr/forum/issues/9 e abrir uma votação. Eu realmente achei que a estrutura do @wilcorrea faz mais sentido para distribuição, a pessoa n precisaria saber git para consumir o curso.
Quando li a proposta de capítulos em branches fiquei meio "wtf?!" mas, com o desenrolar da thread eu entendi a motivação e achei bem bacana.
se entendi direito a preocupação do @wilcorrea, pode-se ou definir uma convenção de nomenclatura ou fazer a "junta" de forma automatizada.
Fiz um fork e adicionei arquivos em branco como exemplo. https://github.com/oliveiraev/curso-php
Vale lembrar que esse formato não impede em nada que o conteúdo também seja organizado por diretórios.
@oliveiraev o @wilcorrea havia dito que essa estrutura prejudicaria a criação do Git books. Ele ficou de demonstrar a estrutura que ele pensou aqui e fazer um vídeo explicando como seria o fluxo, vamos esperar ele fazer aí mostramos para a galera o seu exemplo e o dele para ver qual atende o que precisamos :smile:
Eu acho que se for dividido por branch vai ser legal, mas vamos ter um problema. Se o cara atualizar ou adicionar um novo capítulo, vamos ter que atualizar o Readme de todos os branches. Porque nele vai ter que ter as coisas de todos não é?
vamos ter que atualizar o Readme de todos os branches
Por isso que é legal o adm do curso já saber quantos capítulos terão os cursos, para que todas as pastas e readme já sejam, previamente, criados.
Mas essa ideia de Branch que está em votação na issue de estrutura, meia que foi deixada de lado já, não?
Eu acho que se for dividido por branch vai ser legal, mas vamos ter um problema. Se o cara atualizar ou adicionar um novo capítulo, vamos ter que atualizar o Readme de todos os branches. Porque nele vai ter que ter as coisas de todos não é?
na minha opinião, apenas o branch master deveria ter README. Se o cara se dá ao trabalho de navegar até o repositório, selecionar da lista de branches o capítulo que ele quer para, só então, fazer o download do conteúdo segmentado, não é a falta do README que vai ser um problema.
O README tem que conter informações relevantes pra quem "cai de pára quedas" no repositório e não sabe onde está, pra que serve, como se orientar, etc.
na minha opinião, apenas o branch master deveria ter README. Se o cara se dá ao trabalho de navegar até o repositório, selecionar da lista de branches o capítulo que ele quer para, só então, fazer o download do conteúdo segmentado, não é a falta do README que vai ser um problema.
Não é nem por isso, é mais para o cara navegar de um capítulo até outro quando ele está fora da master...
Galera, bora começar a discutir sobre o conteúdo do curso. :smile:
Vamos definir os assuntos abordados em cada capitulo, e depois começamos a montar um conteúdo.
O primeiro capitulo tem que ser de Introdução ao PHP.
Ter uma apresentação do curso, mostrar como instalar o PHP (uma coisa que os cursos fazem, é sempre escolher um OS para mostrar a instalação, poderíamos mostrar a instalação nos 3 principais) , falar um pouco da história e evolução do PHP e a ultima versão estável, falar sobre aplicações web a questão cliente/servidor e onde o PHP se encaixa nisso. Esse, para mim, seria o primeiro capitulo. O que vcs acham?
O que acham de a gente usar esse material aqui como referência https://github.com/PHProgramando/phprogramando ?
Uma parada interessante também é ter uma qualidade visual diferenciada, tipo nesse e-book aqui http://static.umbler.com/news/static/ebook-boas-praticas-nodejs.pdf, ou, algo menos "moderno" como esse cara aqui https://leanpub.com/vuejs2-portuguese
@wilcorrea podemos pegar como referencia sim, só temos que ver com os autores se eles liberam.
Vc acha que no meio do curso, n seria legal colocar um projeto? Mas sem ser um ToDo rsrsrsr
Quanto a qualidade visual, eu gostei bastante, acho que pode prender mais a atenção dos alunos e tornar mais agradável. @kvnol, você acho que o pessoal de design conseguiria fazer uma identidade visual para as apostilas?
Está no Github e é MIT, isso quer dizer que eles esperam que a gente use. Conheço pelo Telegram o pessoal que está trabalhando na apostila, acredito que eles irão gostar da ideia.
Criar algo durante o curso é sempre um diferencial. É uma abordagem que me agrada é até a que a gente usa no nosso canal do PHPZM.
@lflimeira está tudo certo com o pessoal que começou a apostila. Creio que já que a gente tem os dados brutos o primeiro passo agora seja criar o sumário com base nos conteúdos que ele tem, e, em seguida "mergear" com outros conteúdos para chegar a um sumário final.
@wilcorrea que bom, então vamos usar como base sim. Podemos pegar o sumário deles e colocar aqui e ir modificando. Melhor colocar o sumário lá no gitbooks e vamos alterando, ou colocamos aqui na issue e vamos discutindo?
Galera, bora começar a discutir sobre o conteúdo do curso.
Vamos definir os assuntos abordados em cada capitulo, e depois começamos a montar um conteúdo.
O primeiro capitulo tem que ser de Introdução ao PHP.
Ter uma apresentação do curso, mostrar como instalar o PHP (uma coisa que os cursos fazem, é sempre escolher um OS para mostrar a instalação, poderíamos mostrar a instalação nos 3 principais) , falar um pouco da história e evolução do PHP e a ultima versão estável, falar sobre aplicações web a questão cliente/servidor e onde o PHP se encaixa nisso. Esse, para mim, seria o primeiro capitulo. O que vcs acham?
Só discordo da abordagem HTTP cliente/servidor. Acho que dá pra ser o capítulo 2. Uma coisa que todo curso faz e que dá pra ser um diferencial é o capítulo um ser exclusivamente PHP. Explicamos o que é uma linguagem de programação interpretada (script) a diferença para linguagens compiladas, como instalar e como testar a instalação.
O capítulo 2 explicaria como funciona o protocolo HTTP a diferença entre cliente e servidor (pra tentar explicar de uma vez por todas porque não dá pra fazer um <button onclick="<? header('Location: /checkout.php'); ?>">
) e aí introduzir apache, nginx, lighttp, etc
Então @oliveiraev o @wilcorrea propôs de seguir esse curso que já existe. https://github.com/PHProgramando/phprogramando
Vamos ver os tópicos do curso passado como referência e depois vamos adicionando conteúdo.
Galera, eu fiz um sumário inicial, o que vcs acham? o que poderia ser inserido no curso? Se tiverem dúvida sobre algum tópico, podem perguntar 😄
- Introdução ao curso
- Capítulo 1 2.1. O que é PHP e sua história até hoje 2.2. Preparando o Ambiente 2.3. Arquitetura Cliente/Servidor, entendendo a Web 2.4. Primeiros passos com o PHP 2.5. Fixação do conteúdo do capítulo
- Capítulo 2 3.1. Variáveis 3.2. Tipos de dados 3.3. Escopo de variáveis 3.4. Operadores 3.5. Fixação do conteúdo do capítulo
- Capítulo 3: Estruturas de controle 4.1. Condicional: if, elseif e else 4.2. Switch Case 4.3. Expressões condicionais e ternárias 4.4. For 4.5. Foreach 4.6. While 4.7. Do while 4.8. Fixação do conteúdo do capítulo
- Capítulo 4: Arrays 5.1. Arrays 5.2. Constant e Arrays Constant 5.3. Fixação do conteúdo do capítulo
- Capítulo 5: Funções 6.1. Criando funções 6.2. Parâmetros 6.3. Funções anônimas 6.4. Funções recursivas 6.5. Fixação do conteúdo do capítulo
- Capítulo 6: Sessões 7.1. Funcionamento da Sessão 7.2. Funções para Sessão 7.3. Fixação do conteúdo do capítulo
- Capítulo 7: Trabalhando com HTTP 8.1. Post, Get e Resquest 8.2. Tratamento de dados 8.3. Upload de arquivos 8.4. Data e Hora 8.5. Enviando E-mails com o PHP 8.6. Fixação do conteúdo do capítulo
- Capítulo 8: Funções importantes no PHP e entendendo a documentação
- Capítulo 9: Programação Orientada a Objeto 10.1. Entendendo POO 10.2. Classe, Atributos e Métodos 10.3. Métodos estáticos e mágicos 10.4. Encapsulamento 10.5. Herança 10.6. Interface 10.7. Classe Abstrata 10.8. Polimorfismo 10.9. Fixação do conteúdo do capítulo
- Capítulo 10: Composer 11.1. Instalação 11.2. Entendendo o Composer 11.3. Namespace 11.4. Fixação do conteúdo do capítulo
- Capítulo 11: Banco de Dados (MySQL) 12.1. Instalação e configuração 12.2. Visão geral 12.3. Fixação do conteúdo do capítulo
- Capítulo 12: PDO 13.1. Conexão 13.2. Inserindo Dados 13.3. Alterando Dados 13.4. Deletando Dados 13.5. Transactions 13.6. Fixação do conteúdo do capítulo
- Capítulo 13: DAO
- Capítulo 14: Factory
- Capítulo 15: Erros e o Try Catch
- Capítulo 16: Arquivos e Imagens 17.1. Lendo e manipulando diretórios 17.2. Criando e lendo arquivos 17.3. Download de arquivos 17.4. Mover arquivos 17.5. Tratando imagens 17.6. Fixação do conteúdo do capítulo
- Capítulo 17: Segurança
- Capítulo 18: Projeto final
Top! Vamos colocar isso no repo?! Let's start?!
Você já pensou em conteúdo? Não dá pra jogar arquivos e imagens pra antes de Programação orientada a objetos? :D Nem é uma crítica, é uma pergunta, mesmo.
Legal a estrutura, hoje falta cursos tão completos assim, ainda mais de graça, o que achei mais interessante é a parte do "Fixação do conteúdo do capítulo" normalmente os cursos não tem isso, alguns só...
Outra coisa interessante é no andamento ou no final criar um projeto, acho que é muito importante isso..
@wilcorrea Qual melhor lugar para colocar? No readme inicial ou já colocar na apostila?
@oliveiraev Pode ser, só que para lidar com imagens existem algumas bibliotecas, por isso pensei em POO antes, para dar uma base.
@richmanzoli obrigado pelo feedback, o que vc acha melhor o projeto durante o curso ou no final do curso para relembrar e agregar tudo que foi aprendido?
@wilcorrea Qual melhor lugar para colocar? No readme inicial ou já colocar na apostila?
A gente podia montar um milestone
@lflimeira na apostila