curso-php icon indicating copy to clipboard operation
curso-php copied to clipboard

Estrutura e conteúdo do curso.

Open lflimeira opened this issue 7 years ago • 42 comments

Vamos utilizar essa issue para organizar o conteúdo e estrutura do curso de PHP.

lflimeira avatar Aug 05 '17 01:08 lflimeira

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)

wilcorrea avatar Aug 05 '17 02:08 wilcorrea

Podemos usar branches para o Nível e Pastas para os Capítulos para tentar manter tudo em um repositório só

wilcorrea avatar Aug 05 '17 02:08 wilcorrea

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 avatar Aug 05 '17 03:08 lflimeira

@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

preetender avatar Aug 05 '17 03:08 preetender

@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.

wilcorrea avatar Aug 05 '17 04:08 wilcorrea

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.

danilosilvadev avatar Aug 05 '17 12:08 danilosilvadev

@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.

lflimeira avatar Aug 05 '17 15:08 lflimeira

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 avatar Aug 07 '17 22:08 oliveiraev

@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:

lflimeira avatar Aug 07 '17 22:08 lflimeira

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 é?

khaosdoctor avatar Aug 10 '17 17:08 khaosdoctor

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.

kvnol avatar Aug 10 '17 19:08 kvnol

Mas essa ideia de Branch que está em votação na issue de estrutura, meia que foi deixada de lado já, não?

lflimeira avatar Aug 10 '17 20:08 lflimeira

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.

oliveiraev avatar Aug 10 '17 20:08 oliveiraev

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

khaosdoctor avatar Aug 11 '17 01:08 khaosdoctor

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?

lflimeira avatar Aug 15 '17 12:08 lflimeira

O que acham de a gente usar esse material aqui como referência https://github.com/PHProgramando/phprogramando ?

wilcorrea avatar Aug 15 '17 13:08 wilcorrea

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 avatar Aug 15 '17 13:08 wilcorrea

@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?

lflimeira avatar Aug 15 '17 14:08 lflimeira

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.

wilcorrea avatar Aug 15 '17 14:08 wilcorrea

@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 avatar Aug 15 '17 17:08 wilcorrea

@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?

lflimeira avatar Aug 16 '17 10:08 lflimeira

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

oliveiraev avatar Aug 16 '17 14:08 oliveiraev

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.

lflimeira avatar Aug 16 '17 14:08 lflimeira

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 😄

  1. Introdução ao curso
  2. 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
  3. 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
  4. 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
  5. Capítulo 4: Arrays 5.1. Arrays 5.2. Constant e Arrays Constant 5.3. Fixação do conteúdo do capítulo
  6. 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
  7. 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
  8. 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
  9. Capítulo 8: Funções importantes no PHP e entendendo a documentação
  10. 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
  11. 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
  12. 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
  13. 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
  14. Capítulo 13: DAO
  15. Capítulo 14: Factory
  16. Capítulo 15: Erros e o Try Catch
  17. 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
  18. Capítulo 17: Segurança
  19. Capítulo 18: Projeto final

lflimeira avatar Aug 22 '17 23:08 lflimeira

Top! Vamos colocar isso no repo?! Let's start?!

wilcorrea avatar Aug 22 '17 23:08 wilcorrea

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.

oliveiraev avatar Aug 22 '17 23:08 oliveiraev

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

manzoliric avatar Aug 23 '17 00:08 manzoliric

@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?

lflimeira avatar Aug 23 '17 00:08 lflimeira

@wilcorrea Qual melhor lugar para colocar? No readme inicial ou já colocar na apostila?

A gente podia montar um milestone

oliveiraev avatar Aug 23 '17 01:08 oliveiraev

@lflimeira na apostila

wilcorrea avatar Aug 23 '17 02:08 wilcorrea