Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/suissa/curso-javascript-super-sayajin

:rice: Curso COMPLETO de JavaScript do básico ao avançado, trilhando o caminho Funcional.
https://github.com/suissa/curso-javascript-super-sayajin

caraio completo curso estrutura-de-dados foda iniciante javascript pa saiyajin super

Last synced: about 1 month ago
JSON representation

:rice: Curso COMPLETO de JavaScript do básico ao avançado, trilhando o caminho Funcional.

Awesome Lists containing this project

README

        

# AVISOS

**Precisei remover todos os dados das ISSUES a pedido do Github.**


**Soltarei as atualizações desse Curso diretamente por esse Twitter [@curso_jsssj](https://twitter.com/curso_jsssj)**


![Curso - JavaScript Super Saiyajin](http://i.imgur.com/jGXoRO6.png)

# Curso - JavaScript Super Saiyajin

*depois de criar que percebi que faltou um i em Saiyajin*

> **Curso COMPLETO de JavaScript do básico ao avançado trilhando o caminho Funcional com ES6.**

*ps: ensinarei tudo que eu sei e ainda vou estudar sobre ES6/ES7*

## ES6

Essa é uma pequena lista das *features* que o ES6 nos provê, ainda não

domino todos os itens, mas com o decorrer de cada aula estudarei cada vez

mais e mais para poder **passar o melhor conteúdo possível para você!**

Separei pelos módulos onde cada uma será destrinchada:

- [arrows](): Nível I - Módulo 1
- [template strings](): Nível I - Módulo 1
- [destructuring](): Nível I - Módulo 1
- [default + rest + spread](): Nível I - Módulo 1
- [let + const](): Nível I - Módulo 1
- [array API](): Nível I - Módulo 1
- [set + weakset](): Nível I - Módulo 1
- [map + weakmap](): Nível I - Módulo 2
- [number](): Nível I - Módulo 1
- [math](): Nível I - Módulo 2
- [string API](): Nível I - Módulo 2
- [object APIs](): Nível I - Módulo 2
- [symbols](): Nível I - Módulo 2
- [enhanced object literals](): Nível I - Módulo 3
- [classes](): Nível I: Módulo 3
- [iterators + for..of](): Nível I - Módulo 3
- [proxies](): Nível I - Módulo 3
- [unicode](): Nível I - Módulo 4
- [modules](): Nível I - Módulo 4
- [module loaders](): Nível I - Módulo 4
- [subclassable built-ins](): Nível I - Módulo 4
- [generators](): Nível I - Módulo 4
- [promises](): Nível I - Módulo 4
- [binary and octal literals](): Nível I - Módulo 4
- [reflect api](): Nível I - Módulo 4
- [tail calls](): Nível I - Módulo 4

*fonte: lista retirada de [https://github.com/lukehoban/es6features](https://github.com/lukehoban/es6features)*



## Exercícios

Para responder os exercícios crie um repositório chamado:

`Curso-JavaScript-Super-Sayajin-Nível-1-Módulo-1-exercícios`

Dentro dele crie uma pasta chamada aula01 ou aula02 ou aulaNumeroDela e coloque

dentro todos seus códigos, sendo cada exercício separado por arquivo `.js`!

**POR FAVOR teste seu código com Node.js ANTES DE ENVIAR!**

## Pré-requisitos

- Usar o cérebro
- Ensino Médio
- Ter [brio](https://www.youtube.com/watch?v=dpn1JL15AXA)
- Ter Internet

## Meta

Como teve uma busca enorme e em no máximo 4 dias estamos chegando em 100 inscritos

**a meta ATUAL agora é 200 alunos e para isso adicionarei alguns sorteios no curso!**

**E o valor é de R$35 POR MÓDULO.**




## Início

**Dia 15 de Agosto de 2017.**




## Inscrição

Para se inscrever basta abrir uma issue nesse repositório com seus seguintes dados:

Email
Facebook/Twitter
Telegram








## Antes do Curso

![Antes do Curso](http://i.imgur.com/PllOhHs.jpg)

## Depois do Curso

![Depois do Curso](http://i.imgur.com/D1HX4AP.jpg)

## O Curso

Esse curso, por mais que você odeie, irá iniciar pela Matemática mais básica possível,

pois EU acredito que a Matemática Discreta é OBRIGATÓRIA para todo o programador, assim como é:

- algoritmo
- lógica ( booleana e matemática )
- estrutura de dados
- inglês

> **Para você conseguir programar QUALQUER COISA, você no mínimo, precisa saber os itens acima.**

> **Sabe o por quê?**

> Simplesmente porque é com essa Matemática que você aprende os conceitos de função e conjuntos, que

para mim é muitíssimo importante, pois antecede a própria Estrutura de Dados.

Além disso veja a definição de uma função:

> Uma função ou aplicação é uma relação de um conjunto A com um conjunto B.

*fonte: [https://pt.wikipedia.org/wiki/Fun%C3%A7%C3%A3o_(matem%C3%A1tica)](https://pt.wikipedia.org/wiki/Fun%C3%A7%C3%A3o_(matem%C3%A1tica))*

Trocando em míudos:

> Uma função é a ação de transformação entre conjuntos, onde você SEMPRE

terá dois conjuntos: de entrada e de saída. Ou seja, qualquer tipo de transformação

que você faça será uma função que SEMPRE retornará algo.

*ps1: se não retorna algo não é função*

*ps2: em uma função de `set` você pode retornar o próprio objeto*

*que contém a propriedade setada, para que você possa encadear suas funções,*

*por exemplo.*



## Níveis

- **Super Sayajin I**
- **Super Sayajin II**
- **Super Sayajin III**
- **Super Sayajin IV**
- **Super Sayajin V**

Antes de falar da ementa de cada um eu quero que você entenda que o conteúdo

matemático será voltado para casos reais e eu LHE GARANTO que você usará algum dia,

porém antes você precisa entender como cada operação matemática funciona por trás dos panos,

depois disso você sempre re-usará as funções previamente criadas, ou seja, para criar a próxima

função você deverá obrigatóriamente ter criado as anteriores.

### Super Sayajin I



#### Módulo 1 - Funções e Lógica

Nesse módulo ensinarei como você irá traduzir seu conhecimento prévio,

principalmente em Matemática do Ensino Médio, em JavaScript Funcional.

Esse módulo É **OBRIGATÓRIO** para quem:

- Não saiba a definição de função e/ou conjunto;
- Não sabe como compor operações matemáticas complexas usando apenas soma e números negativos;
- Não tem lógica matemática forte

###### Quantidade de aulas: pelo menos 20.

#### Tópicos

##### Matemática Discreta

Vamos aprender como criar TODAS as operações mais utilizadas na Matemática

e como trabalhar com o tipo `Number`, para isso inciaremos direto na função,

para que o aluno entenda que esse é o conceito mais importante que ele precisa.

As primeiras funções irão utilizar os números passados por parâmetro para que ele

não precise iniciar nenhuma constante que não seja a função, só depois disso que você

aprenderá a trabalhar com o tipo `Number`, encapsulando e usando suas principais funções.

Depois iremos aprender a parte de coleções de números e conjuntos, onde emularemos

o conceito de conjutos com `Array` e `Set`, pois o `Set` não possui NENHUMA das operações

de conjuntos, como: adição, subtração e intersecção.

Além disso eu ensinarei como podemos inferir fórmulas e resolver problemas matemáticos/físicos

sem a necessidade de utilização da fórmula.

> **Se você não sair MONSTR(A|O) em lógica matemática e booleana eu programarei só em JAVA!**

###### Conceitos

- Constante;
 - nada de `var` **aqui!**
- Função;
- sempre pura!
- Números;
- Operações matemáticas:
- soma, subtração, multiplicação, divisão, exponenciação e radiciação;
- todas baseadas apenas na soma;
- Boolean;
- Lógica: matemática e booleana;
- Conjuntos;
- Operaçes com Conjuntos;
- Correlações entre os números;
- Matemática: como inferir fórmulas baseando-se nos conceitos.
- Física: como inferir fórmulas baseando-se nos conceitos.

###### JavaScript

- `while`/`for`;
- `Function`;
- `Number`;
- `Array`;
- `Set`.

#### Pré-requisitos

- Ensino Médio (cursando ou completo)
- Não ter medo da Matemática pq ela é uma LINDA!

#### Artigo

Sim além dos exercícios que serão passados em cada aula ainda teremos **pelo menos**

um artigo sobre algum dos temas abordados.

#### Projeto Final

Criação de uma calculadora com o máximo possível de funções matemáticas e físicas, cada aluno

deverá criar pelo menos 2 funções novas.




#### Módulo 2 - Estatística & Estrutura de Dados
##### Super Saiyajin Dai Ni Dankai (第2形態)

Nesse módulo mostrarei como criar funções de Estatística baseando-se apenas
na sua explicação e porque a estatística é a base para se usar as Redes Neurais
e muito provavelmente no futuro a programação seja mais probabilística do que determinística.

Com isso você aprenderá a organizar seus dados e retirar informações em cima de um conjunto

de dados numéricos.

###### Objetivo

Construir uma calculadora, via API, com a maiorias das funções de Matemática Estatística utilizadas

pela Inteligência Artificial para que não precisemos depender do *Python* ou *R* para isso.

###### Conceitos

- Recursividade;
- Métodos de Matriz;
- Média;
- Moda;
- Desvio Padrão;
- Como inferir fórmulas baseando-se em conceitos;
- Organização e estruturação dos dados;
- etc.

##### Química - INCOMPLETO

- Estruturação dos dados dos átomos;
- Estruturação dos dados das moléculas;
- Reações Químicas Inorgânicas: síntese e decomposição;
- Distribuição Eletrônica;
- Balanceamento de Reações;
- Cálculo de Lei de Hess.

###### JavaScript

- `let`;
- `map`/`filter`/`reduce`/`concat`/etc;
- `Object`;
- `Math`;
- `Symbol`.

##### Projeto Final

[Uma Tabela Periódica diferente utilizando-se UX e API](https://github.com/Webschool-io/Elementos-Quimica).





#### Módulo 3 - Biologia e Arquitetura de API - INCOMPLETO
##### Super Saiyajin Dai San Dankai (超サイヤ人第3段階)

##### Pré-requisitos

- Conclusão do Módulo 2

##### Biologia

##### JavaScript




#### Módulo 4 - O JavaScript nú - INCOMPLETO
##### Super Saiyajin Full Power (超サイヤ人フルパワ)

Nesse módulo aprenderemos como o JavaScript funciona por trás das cortinas, tanto

no navegador como no Node.js

###### JavaScript

- Async
- Call Stack
- EventLoop
- Events
- Promises
- Prototype








### Super Saiyajin II - INCOMPLETO



Vários conceitos teóricos da Programação Funcional serão explicados e implementados, como:

- Aridade
- Immutable data
- Pipe/Compose
- Currying
- Partial application
- Trampoline
- Y-Combinator
- TCO
- [FantasyLand](https://github.com/fantasyland/fantasy-land)

##### Pré-requisitos

- Conclusão do Nível Super Saiyajin I








### Super Sayajin III - INCOMPLETO



##### Pré-requisitos

- Conclusão do Nível Super Saiyajin II

#### Módulo 1 - NoSQL

- MongoDb
- Redis
- Neo4J

#### Módulo 2 - Arquitetura

- Arquitetura Backend (Redux)
- Atomic Fucking Design
- Programação Reativa








### Super Sayajin IV - INCOMPLETO



- Teoria das Categorias
- Point-free programming,
- Morphisms,
- Data structures

##### Pré-requisitos

- Conclusão do Nível Super Saiyajin III








### Super Sayajin V - INCOMPLETO



##### Pré-requisitos

- Conclusão do Nível Super Saiyajin IV

#### Ementa

- Socket.io
- WebRTC
- Webtorrent
- Blockchain
- Redes Neurais

### Certificado

O aluno receberá um certificado mediante a entrega de todos os requisitos obrigatórios.

# Forma de pagamento

Será feito via depósito diretamente na conta do professor. O valor de investimento do curso é 35R$.

## Exercícios

## Suporte

O curso conta com o suporte da própria comunidade e também dos professores da Webschool através do [Telegram](https://t.me/forumwebschool) e do nosso [Fórum](https://github.com/Webschool-io/forum). Vamos utilizar as Issues nosso repositorio [Fórum](https://github.com/Webschool-io/forum) para poder documentar as duvidas, assim podendo manter um histórico que possa ajudar outras pessoas que venham a ter a mesma dúvida que você. Além disso o nosso fórum e conectado com o grupo do telegram para que sua dúvida possa ser respondida facilmente.

## Apoio

Entre em contato para apoiar esse curso.