Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Estrutura e conteúdo do curso. #1

Open
lflimeira opened this issue Aug 5, 2017 · 42 comments
Open

Estrutura e conteúdo do curso. #1

lflimeira opened this issue Aug 5, 2017 · 42 comments

Comments

@lflimeira
Copy link
Member

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

@wilcorrea
Copy link
Contributor

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
Copy link
Contributor

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

@lflimeira
Copy link
Member Author

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 ?

@preetender
Copy link

@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

@wilcorrea
Copy link
Contributor

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

@danilosilvadev
Copy link

danilosilvadev commented Aug 5, 2017

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.

@lflimeira
Copy link
Member Author

@preetender, @danilosilvadev e @wilcorrea todas as ideias são boas, acho que seria legal propor as estruturas la na openschoolbr/forum#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.

@oliveiraev
Copy link

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.

@lflimeira
Copy link
Member Author

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

@khaosdoctor
Copy link

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

@kvnol
Copy link
Contributor

kvnol commented Aug 10, 2017

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.

@lflimeira
Copy link
Member Author

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

@oliveiraev
Copy link

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.

@khaosdoctor
Copy link

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

@lflimeira
Copy link
Member Author

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?

@wilcorrea
Copy link
Contributor

wilcorrea commented Aug 15, 2017 via email

@wilcorrea
Copy link
Contributor

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

@lflimeira
Copy link
Member Author

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

@wilcorrea
Copy link
Contributor

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
Copy link
Contributor

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

@lflimeira
Copy link
Member Author

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

@oliveiraev
Copy link

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

@lflimeira
Copy link
Member Author

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
Copy link
Member Author

lflimeira commented Aug 22, 2017

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

@wilcorrea
Copy link
Contributor

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

@oliveiraev
Copy link

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.

@manzoliric
Copy link

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

@lflimeira
Copy link
Member Author

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

@oliveiraev
Copy link

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

A gente podia montar um milestone

@wilcorrea
Copy link
Contributor

@lflimeira na apostila

@ReactGirl
Copy link

cade o curso?

@lflimeira
Copy link
Member Author

Boa noite @ReactGirl, estamos desenvolvendo, atualmente fechamos um conteúdo para o curso, e vamos começar a desenvolver capítulo a capítulo. Logicamente que todos podem ajudar. 😄

@wilcorrea
Copy link
Contributor

@kvnol obrigado pela aprovação : )
@lflimeira fiz algumas alterações no sumário conforme fomos conversando

Introduzi alguns textos da apostila do PHProgramando, mas ela não cobre muita coisa da nossa ementa não. Tem que redistribuir e talz, mas fui colocando.

@oliveiraev
Copy link

Como estamos?

@wilcorrea
Copy link
Contributor

Acho que parados @oliveiraev, eu mexi no final do mês passado e até agora não consegui voltar pro projeto. Estou pensando em ir criar um plano de fazer uns 30 minutos por dia : )

@oliveiraev
Copy link

Mas foi definida uma estrutura, modo de escrita, fluxo de desenvolvimento da ideia??

Tendo um capítulo de exemplo a gente pode dividir outros capítulos entre quem se prontifica e depois juntar tudo pro time (ou alguém da coordenação) fazer a revisão.

@wilcorrea
Copy link
Contributor

Aparentemente esse modelo aqui foi aprovado pelo pessoal @oliveiraev eu cheguei a fazer esse cara aqui, mas esbarrei em duas questões:

  1. falar de http desde o início
  2. padrão de exibição de códigos e formatação

O pessoal está tendo dificuldades de dar feedback, mesmo o @lflimeira que era uma das pessoas com quem eu estava tendo mais contato tem estado muito atolado e no Slack o feedback tem sido demorado.

Estava pensando em:

  1. Começar com php pelo terminal
  2. Definir um esboço de marcações para os capítulos e usar apenas markdown mesmo para tudo

@oliveiraev
Copy link

  1. falar de http desde o início

Também sou contra. Apesar de ser justamente a facilidade do PHP de "cuspir" páginas web que seja atraente...

  1. padrão de exibição de códigos e formatação

Não entendi a questão sobre padrão de exibição de códigos. A gente consegue incorporar os snippets do próprio github e usar as PSR?

  1. Começar com php pelo terminal

👍 👍 👍 👍 ...

Se precisar de ajuda pra dar um suporte em ambientes Windows, abre issues e já me marca como asignee que eu toco.

  1. Definir um esboço de marcações para os capítulos e usar apenas markdown mesmo para tudo

Pra mim que isso já tava subentendido desde o começo kkkkkkk

@lflimeira
Copy link
Member Author

Opa, eae pessoal, então eu submeti o sumário como proposta, podemos alinhar melhor ele de uma forma que faça mais sentido. Estou um pouco parado por causa do trampo novo e organização do PHP TestFest, mas estou de olho aqui ainda rsrsrs

Podemos alinhar para fazer um capítulo e depois a galera vai complementando e criando outros capítulos.

Qual a sugestão de vcs quanto aos pontos ques vcs levantaram @wilcorrea e @oliveiraev?

@lflimeira
Copy link
Member Author

Podem mandar um PR com a proposta, assim já vamos discutindo nele e tiramos a ideia daqui.

@oliveiraev
Copy link

E se a gente recebesse o conteúdo/material e depois fizesse a "curadoria" com code-review, análise gramatical e discussão a respeito do que pode ser quebrado em outros capítulos??

Eu, particularmente, acredito que é mais fácil se basear em algo concreto, palpável do que a gente ficar discutindo toda a ementa de cabo a rabo, se HTTP tem que ser ou não o primeiro capítulo antes da primeira linha de conteúdo relevante realmente aparecer.

A gente montaria apenas um fluxo de "aceite" de pull requests. Alguém manda um capítulo, ele é revisado gramaticalmente, a gente delibera sobre o conteúdo e um head do projeto aceita ou não a PR.

Desviando sem desviar, o que vcs acham do PHP do jeito certo?

@lflimeira
Copy link
Member Author

Esse fluxo já foi definido @oliveiraev, na verdade o projeto deu uma parada na questão de enviar conteúdo, já está disponível para enviar, quem quiser contribuir pode contribuir 😁

Acho realmente válido gerar conteúdo e depois nós reorganizamos isso.

Quanto ao PHP do jeito certo eu n entendi muito bem sua pergunta, em qual sentido?

Mas eu acho um material muito bom e necessário.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants