openschoolbr / curso-js

:yellow_heart: Curso de JavaScript
MIT License
23 stars 1 forks source link

Ementa #1

Closed yuriploc closed 2 years ago

yuriploc commented 7 years ago

Podemos usar a estrutura do Eloquent JavaScript e inserir elementos do You Don't Know JavaScript:

Introduction
(Part 1: Language)
Values, Types, and Operators
Program Structure
Functions
Data Structures: Objects and Arrays
Higher-order Functions
The Secret Life of Objects
Project: Electronic Life
Bugs and Error Handling
Regular Expressions
Modules
Project: A Programming Language
(Part 2: Browser)
JavaScript and the Browser
The Document Object Model
Handling Events
Project: A Platform Game
Drawing on Canvas
HTTP
Forms and Form Fields
Project: A Paint Program
(Part 3: Node)
Node.js
Project: Skill-Sharing Website 

Seria interessante ter mais inputs/opiniões :)

houstondapaz commented 7 years ago

Você que é interessante "ensinar" node nesse curso? Ou a idéia é só mostrar que da pra usar fora do browser e as diferenças entre usar no browser e no server?

Ahhh acho interessante ter um modulo sobre "class" com os gets e contructors E tb sobre prototypes

larismourullo commented 7 years ago

@houstondapaz acredito q seja necessário, mas poderia ser mostrado q da pra fazer javascript na web no servidor, onde você quiser. E seria meio q uma intro pra um curso de node logo em seguida não sei.

yuriploc commented 7 years ago

@houstondapaz acho que a @larismourullo transmitiu bem a ideia. Ensinar a linguagem e mostrar as duas aplicações mais famosas: browser e servidor. Pode-se até comentar um pouco sobre IoT também, e servir de preâmbulo pras outras trilhas.

larismourullo commented 7 years ago

@yuriploc porque ao meu ver esse seria um curso mais introdutório de início, então acho legal pegar e mostrar o quanto a ferramente é útil.

IsmaelEzequiel commented 7 years ago

Uma boa seria criando projetos também.

andersoonweb commented 7 years ago

a ideia do @IsmaelEzequiel é fenomenal! De preferências, projetos que pode auxiliar alguém. Talvez auxiliar alguma organização. Se não me engano, o freecodecamp no seu canal do Youtube fazia uma live desenvolvendo um projeto sem fins lucrativos. Dessa forma, matamos dois coelhos em apenas uma paulada. Ensina e ajuda quem realmente precisa.

IsmaelEzequiel commented 7 years ago

Exato @andersoonweb foi mais ou menos o que pensei. Também acompanho a comunidade do FCC, daí essa seria mais que uma boa pra todos.

muniz95 commented 7 years ago

Organizar um hackaton pra essa finalidade seria uma ideia bacana mesmo, algo nos moldes do Hackaton do Bem do OneBitCode

bernardocs commented 7 years ago

Assumindo que será ensinado já com as features do ES6, seria legal adicionar Set e Map na ementa. 😄

larismourullo commented 7 years ago

@bernardocs concordo. O modelo do Eloquent JavaScript atualmente é ES5 ainda, poderíamos incrementar as coisas do ES6 no conteúdo.

fabiomirandaa commented 7 years ago

Para mim é necessário abordar tanto esses temas que são basicamente o JS até a ES5.1 e abordar os conteúdos como o do livro de ES6 da casa do código. O Sumário do livro é esse:

1 ECMAScript x JavaScript
1.1 Implementações da especificação
1.2 Breve histórico
1.3 Futuro
2 Precisamos falar sobre o Babel
2.1 Outras ferramentas
3 Métodos auxiliares para Array
3.1 A maneira tradicional de iterar um Array
3.2 forEach
3.3 map
3.4 filter
3.5 find
3.6 every
3.7 some
3.8 reduce
4 Iteração com iteradores e iteráveis
4.1 Iteradores
4.2 Iteráveis
4.3 Iteradores e iteráveis na prática
5 Iteração com o laço for...of
5.1 Diferenças entre o for...of e for...in
5.2 break e continue
5.3 Voltando para o Chapéu Seletor
6 As novas estruturas de Map e WeakMap
6.1 Map
6.2 WeakMap
6.3 Administrando uma biblioteca
7 Listas sem repetições com Sets e WeakSets
7.1 Set
7.2 WeakSet
8 Declaração de variáveis com const e let
8.1 Constantes com const
8.2 let é o novo var
8.3 Qual a diferença, no final das contas?
9 Manipulação de textos com template strings
9.1 Template strings simples
9.2 Template strings marcado
10 Arrow functions
10.1 São menos verbosas
10.2 O contexto de execução é diferente
11 Melhorias em objetos literais
11.1 Declaração de propriedades
11.2 Índices de propriedades computadas
11.3 Objetos literais x JSON
12 Parâmetros predefinidos em funções
12.1 Atribuindo valores padrões
12.2 Valores undefined
12.3 Referenciando outros valores padrões
12.4 Referenciando variáveis internas
12.5 Utilizando funções como valores padrões
12.6 Tornando parâmetros obrigatórios
13 Parâmetros infinitos com operador Rest
13.1 Entenda o que arguments faz
13.2 Arguments X Operador Rest
13.3 Particularidades do operador Rest
13.4 Podemos utilizar em conjunto com parâmetros “fixos”
14 Expansão com o operador Spread
14.1 Fazendo compras com o Spread
14.2 Adicionando itens a um Array
14.3 Operador Spread em chamadas de funções
14.4 Operador Rest x Operador Spread
15 Desestruturamento de Arrays e Objetos
15.1 Rotulando propriedades
15.2 Desestruturamento de vários objetos
15.3 Desestruturamento em retorno de chamadas de métodos
15.4 Desestruturamento de Arrays
15.5 Desestruturando Arrays — Parte 2
16 Modelando com classes
16.1 Utilize classes do ES6
16.2 Estendendo classes
16.3 Hoisting em classes
16.4 Declaração por meio de expressões
16.5 Métodos estáticos
16.6 Atributos privados com WeakMap
16.7 Últimas considerações
17 Módulos
17.1 CommonJS x AMD
17.2 Importar e exportar módulos
17.3 Exportando classes
17.4 Rótulos em módulos
17.5 Últimas considerações
18 Funções geradoras
18.1 O que são funções geradoras?
18.2 Iterações com geradores
18.3 Entendendo o Symbol.iterator
18.4 Delegação de funções geradoras
19 Operações assíncronas com promises
19.1 O que são promises?
19.2 Os estados das promises
19.3 O esqueleto de uma promise
19.4 Operações assíncronas
19.5 Aninhamento de then e catch
19.6 Como lidar com erros inesperados
20 Metaprogramação com proxies
20.1 O que é metaprogramação?
20.2 Voltando para os proxies
20.3 Validações de inputs com proxies e traps
20.4 Desativando um proxy
20.5 Últimas considerações1 ECMAScript x JavaScript
1.1 Implementações da especificação
1.2 Breve histórico
1.3 Futuro
2 Precisamos falar sobre o Babel
2.1 Outras ferramentas
3 Métodos auxiliares para Array
3.1 A maneira tradicional de iterar um Array
3.2 forEach
3.3 map
3.4 filter
3.5 find
3.6 every
3.7 some
3.8 reduce
4 Iteração com iteradores e iteráveis
4.1 Iteradores
4.2 Iteráveis
4.3 Iteradores e iteráveis na prática
5 Iteração com o laço for...of
5.1 Diferenças entre o for...of e for...in
5.2 break e continue
5.3 Voltando para o Chapéu Seletor
6 As novas estruturas de Map e WeakMap
6.1 Map
6.2 WeakMap
6.3 Administrando uma biblioteca
7 Listas sem repetições com Sets e WeakSets
7.1 Set
7.2 WeakSet
8 Declaração de variáveis com const e let
8.1 Constantes com const
8.2 let é o novo var
8.3 Qual a diferença, no final das contas?
9 Manipulação de textos com template strings
9.1 Template strings simples
9.2 Template strings marcado
10 Arrow functions
10.1 São menos verbosas
10.2 O contexto de execução é diferente
11 Melhorias em objetos literais
11.1 Declaração de propriedades
11.2 Índices de propriedades computadas
11.3 Objetos literais x JSON
12 Parâmetros predefinidos em funções
12.1 Atribuindo valores padrões
12.2 Valores undefined
12.3 Referenciando outros valores padrões
12.4 Referenciando variáveis internas
12.5 Utilizando funções como valores padrões
12.6 Tornando parâmetros obrigatórios
13 Parâmetros infinitos com operador Rest
13.1 Entenda o que arguments faz
13.2 Arguments X Operador Rest
13.3 Particularidades do operador Rest
13.4 Podemos utilizar em conjunto com parâmetros “fixos”
14 Expansão com o operador Spread
14.1 Fazendo compras com o Spread
14.2 Adicionando itens a um Array
14.3 Operador Spread em chamadas de funções
14.4 Operador Rest x Operador Spread
15 Desestruturamento de Arrays e Objetos
15.1 Rotulando propriedades
15.2 Desestruturamento de vários objetos
15.3 Desestruturamento em retorno de chamadas de métodos
15.4 Desestruturamento de Arrays
15.5 Desestruturando Arrays — Parte 2
16 Modelando com classes
16.1 Utilize classes do ES6
16.2 Estendendo classes
16.3 Hoisting em classes
16.4 Declaração por meio de expressões
16.5 Métodos estáticos
16.6 Atributos privados com WeakMap
16.7 Últimas considerações
17 Módulos
17.1 CommonJS x AMD
17.2 Importar e exportar módulos
17.3 Exportando classes
17.4 Rótulos em módulos
17.5 Últimas considerações
18 Funções geradoras
18.1 O que são funções geradoras?
18.2 Iterações com geradores
18.3 Entendendo o Symbol.iterator
18.4 Delegação de funções geradoras
19 Operações assíncronas com promises
19.1 O que são promises?
19.2 Os estados das promises
19.3 O esqueleto de uma promise
19.4 Operações assíncronas
19.5 Aninhamento de then e catch
19.6 Como lidar com erros inesperados
20 Metaprogramação com proxies
20.1 O que é metaprogramação?
20.2 Voltando para os proxies
20.3 Validações de inputs com proxies e traps
20.4 Desativando um proxy
20.5 Últimas considerações
larismourullo commented 7 years ago

O legal de abordar o ES5 é que pode ter gente que ainda cai de mexer com o mesmo (e porque tem coisas do ES6 que atualmente ainda não são aceitas pelo browser se não me engano).

bernardocs commented 7 years ago

Achei a ementa bem completa! ❤️

yuriploc commented 7 years ago

Vamos fazer um merge, então!

On Aug 7, 2017 16:55, "Bernardo da Costa Santos" notifications@github.com wrote:

Achei a ementa bem completa! ❤️

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/openschoolbr/curso-js/issues/1#issuecomment-320763617, or mute the thread https://github.com/notifications/unsubscribe-auth/ACdL_wjxL5SSWSkSxuZ1KkwaGB92X8Zeks5sV2uugaJpZM4OuneI .

ghost commented 5 years ago

Para mim é necessário abordar tanto esses temas que são basicamente o JS até a ES5.1 e abordar os conteúdos como o do livro de ES6 da casa do código. O Sumário do livro é esse:

1 ECMAScript x JavaScript
1.1 Implementações da especificação
1.2 Breve histórico
1.3 Futuro
2 Precisamos falar sobre o Babel
2.1 Outras ferramentas
3 Métodos auxiliares para Array
3.1 A maneira tradicional de iterar um Array
3.2 forEach
3.3 map
3.4 filter
3.5 find
3.6 every
3.7 some
3.8 reduce
4 Iteração com iteradores e iteráveis
4.1 Iteradores
4.2 Iteráveis
4.3 Iteradores e iteráveis na prática
5 Iteração com o laço for...of
5.1 Diferenças entre o for...of e for...in
5.2 break e continue
5.3 Voltando para o Chapéu Seletor
6 As novas estruturas de Map e WeakMap
6.1 Map
6.2 WeakMap
6.3 Administrando uma biblioteca
7 Listas sem repetições com Sets e WeakSets
7.1 Set
7.2 WeakSet
8 Declaração de variáveis com const e let
8.1 Constantes com const
8.2 let é o novo var
8.3 Qual a diferença, no final das contas?
9 Manipulação de textos com template strings
9.1 Template strings simples
9.2 Template strings marcado
10 Arrow functions
10.1 São menos verbosas
10.2 O contexto de execução é diferente
11 Melhorias em objetos literais
11.1 Declaração de propriedades
11.2 Índices de propriedades computadas
11.3 Objetos literais x JSON
12 Parâmetros predefinidos em funções
12.1 Atribuindo valores padrões
12.2 Valores undefined
12.3 Referenciando outros valores padrões
12.4 Referenciando variáveis internas
12.5 Utilizando funções como valores padrões
12.6 Tornando parâmetros obrigatórios
13 Parâmetros infinitos com operador Rest
13.1 Entenda o que arguments faz
13.2 Arguments X Operador Rest
13.3 Particularidades do operador Rest
13.4 Podemos utilizar em conjunto com parâmetros “fixos”
14 Expansão com o operador Spread
14.1 Fazendo compras com o Spread
14.2 Adicionando itens a um Array
14.3 Operador Spread em chamadas de funções
14.4 Operador Rest x Operador Spread
15 Desestruturamento de Arrays e Objetos
15.1 Rotulando propriedades
15.2 Desestruturamento de vários objetos
15.3 Desestruturamento em retorno de chamadas de métodos
15.4 Desestruturamento de Arrays
15.5 Desestruturando Arrays — Parte 2
16 Modelando com classes
16.1 Utilize classes do ES6
16.2 Estendendo classes
16.3 Hoisting em classes
16.4 Declaração por meio de expressões
16.5 Métodos estáticos
16.6 Atributos privados com WeakMap
16.7 Últimas considerações
17 Módulos
17.1 CommonJS x AMD
17.2 Importar e exportar módulos
17.3 Exportando classes
17.4 Rótulos em módulos
17.5 Últimas considerações
18 Funções geradoras
18.1 O que são funções geradoras?
18.2 Iterações com geradores
18.3 Entendendo o Symbol.iterator
18.4 Delegação de funções geradoras
19 Operações assíncronas com promises
19.1 O que são promises?
19.2 Os estados das promises
19.3 O esqueleto de uma promise
19.4 Operações assíncronas
19.5 Aninhamento de then e catch
19.6 Como lidar com erros inesperados
20 Metaprogramação com proxies
20.1 O que é metaprogramação?
20.2 Voltando para os proxies
20.3 Validações de inputs com proxies e traps
20.4 Desativando um proxy
20.5 Últimas considerações1 ECMAScript x JavaScript
1.1 Implementações da especificação
1.2 Breve histórico
1.3 Futuro
2 Precisamos falar sobre o Babel
2.1 Outras ferramentas
3 Métodos auxiliares para Array
3.1 A maneira tradicional de iterar um Array
3.2 forEach
3.3 map
3.4 filter
3.5 find
3.6 every
3.7 some
3.8 reduce
4 Iteração com iteradores e iteráveis
4.1 Iteradores
4.2 Iteráveis
4.3 Iteradores e iteráveis na prática
5 Iteração com o laço for...of
5.1 Diferenças entre o for...of e for...in
5.2 break e continue
5.3 Voltando para o Chapéu Seletor
6 As novas estruturas de Map e WeakMap
6.1 Map
6.2 WeakMap
6.3 Administrando uma biblioteca
7 Listas sem repetições com Sets e WeakSets
7.1 Set
7.2 WeakSet
8 Declaração de variáveis com const e let
8.1 Constantes com const
8.2 let é o novo var
8.3 Qual a diferença, no final das contas?
9 Manipulação de textos com template strings
9.1 Template strings simples
9.2 Template strings marcado
10 Arrow functions
10.1 São menos verbosas
10.2 O contexto de execução é diferente
11 Melhorias em objetos literais
11.1 Declaração de propriedades
11.2 Índices de propriedades computadas
11.3 Objetos literais x JSON
12 Parâmetros predefinidos em funções
12.1 Atribuindo valores padrões
12.2 Valores undefined
12.3 Referenciando outros valores padrões
12.4 Referenciando variáveis internas
12.5 Utilizando funções como valores padrões
12.6 Tornando parâmetros obrigatórios
13 Parâmetros infinitos com operador Rest
13.1 Entenda o que arguments faz
13.2 Arguments X Operador Rest
13.3 Particularidades do operador Rest
13.4 Podemos utilizar em conjunto com parâmetros “fixos”
14 Expansão com o operador Spread
14.1 Fazendo compras com o Spread
14.2 Adicionando itens a um Array
14.3 Operador Spread em chamadas de funções
14.4 Operador Rest x Operador Spread
15 Desestruturamento de Arrays e Objetos
15.1 Rotulando propriedades
15.2 Desestruturamento de vários objetos
15.3 Desestruturamento em retorno de chamadas de métodos
15.4 Desestruturamento de Arrays
15.5 Desestruturando Arrays — Parte 2
16 Modelando com classes
16.1 Utilize classes do ES6
16.2 Estendendo classes
16.3 Hoisting em classes
16.4 Declaração por meio de expressões
16.5 Métodos estáticos
16.6 Atributos privados com WeakMap
16.7 Últimas considerações
17 Módulos
17.1 CommonJS x AMD
17.2 Importar e exportar módulos
17.3 Exportando classes
17.4 Rótulos em módulos
17.5 Últimas considerações
18 Funções geradoras
18.1 O que são funções geradoras?
18.2 Iterações com geradores
18.3 Entendendo o Symbol.iterator
18.4 Delegação de funções geradoras
19 Operações assíncronas com promises
19.1 O que são promises?
19.2 Os estados das promises
19.3 O esqueleto de uma promise
19.4 Operações assíncronas
19.5 Aninhamento de then e catch
19.6 Como lidar com erros inesperados
20 Metaprogramação com proxies
20.1 O que é metaprogramação?
20.2 Voltando para os proxies
20.3 Validações de inputs com proxies e traps
20.4 Desativando um proxy
20.5 Últimas considerações

Essas informações devem ficar dentro do repositório também.

ghost commented 5 years ago

Seria interessante adicionar exemplos. Existe um repositório da usuária "maschinedreams" que contém esses exemplos feitos em Javascript. Referência: https://github.com/maschinedreams/exercicios-js