Curso de JavaScript e TypeScript do básico ao avançado JS/TS
- Descrição
- Currículo
- FAQ
- Revisões
Curso de JavaScript e TypeScript do básico ao avançado (JS e TS) – O curso mais completo sobre todas as nuances do JavaScript você você vai encontrar na atualidade.
Aprenda Javascript moderno (ES6+) para front-end (com Webpack, babel, React, React Hooks, Redux, HTML5, CSS3 e mais) e back-end (com Node, Express, MySQL / MariaDB, MongoDB, PostgreSQL, Next.Js, Strapi e mais) e se torne um(a) desenvolvedor(a) full stack.
Este curso inclui JavaScript e TypeScript (JS e TS), você vai aprender ambas as linguagens no mesmo pacote.
Fundamentos
Inicialmente, o aluno aprenderá a utilizar recursos nativos do JavaScript sem a necessidade de utilizar frameworks ou bibliotecas adicionais (Javascript puro, conhecido como Vanilla JS). Trabalharemos tanto no Node.Js (back-end) quanto no navegador (front-end).
Node.Js, Frameworks e bibliotecas
Apresentarei o Node JS, Express e o MongoDB (noSQL) para trabalhar com Javascript no Back-end. Apresentarei frameworks e bibliotecas que são padrão no mercado atualmente, como Express (servidor Web) e Mongoose (para modelar bases de dados MongoDB). Também apresentarei em detalhes o sistema de módulos do NodeJS.
JS Tooling
Falaremos do Babel e Webpack, o que nos permitirá utilizar o sistema de módulos do ES6 em navegadores mais antigos que não teriam suporte para tal.
Projeto #1
Também vamos criar um projeto realizando um CRUD (create, read, update e delete) na base de dados mongo com sistema de login real usando sessions (posteriormente com JWT).
Deploy (Linux)
Ao longo do curso, o aluno aprenderá tecnologias adicionais ao JS, como: criar um servidor web com NGINX para fazer proxy reverso com Node; gerenciar projetos node com o pm2; configurar um servidor linux no Google Cloud Platform (GCP), adicionar certificado SSL/TLS (HTTPS) com letsencrypt gratuitamente, configurar um repositório com o Git (e comandos adicionais do git em geral), configurar chaves SSH no servidor e computador pessoal, TypeScript do básico ao avançado e muito mais.
TypeScript
Uma novidade neste curso é o TypeScript, o aluno não precisará comprar outro curso para aprender essa linguagem que está tão em alta no momento.
Segurança
Também tive o cuidado de focar bastante na parte de segurança de todos os serviços utilizados ao longo do curso, com isso o aluno poderá fazer deploy de suas aplicações sem medo.
API Rest
Criaremos uma API Rest utilizando MariaDB/MySQL (SQL) e o Sequelize, com sistema de login que utiliza JSON Web Tokens (JWT). Nesta seção, o aluno aprenderá ainda mais recursos que são padrão de mercado, como: editorconfig, eslint, prettier, JWT, middlewares e mais.
React
Na seção básica de React JS, criaremos uma lista de tarefas utilizando class components e functional components (com classes e funções). Também utilizaremos o localStorage do navegador para salvar os dados da lista de tarefas, fazendo algo muito similar ao que faríamos com bases de dados.
Na seção avançada do React JS utilizaremos React Hooks, Redux + Redux Saga e muito mais. Também vamos consumir a API Rest que criamos em aulas anteriores. Criaremos um sistema de Login com JWT e o axios e faremos um CRUD (create, read, update e delete) na base de dados MySQL/MariaDB da nossa API Rest.
Expressões Regulares
Você vai aprender a criar suas próprias expressões regulares (regex). Melhor que isso, você vai entender o que está fazendo com suas expressões regulares.
Princípios SOLID
O curso tem seções específicas sobre os pilares da programação orientada a objetos (POO) e princípios SOLID (S.O.L.I.D), que são parte extremamente importante na formação de qualquer programador, independente da linguagem de programação escolhida.
Testes com o Jest
Testes automatizados são de extrema importância para qualquer desenvolvedor. Abordaremos testes unitários e testes de integração utilizando o jest.
Design Patterns (Padrões de projeto)
Uma outra novidade deste curso é que temos uma seção inteira sobre padrões de projeto (Design patterns). O foco aqui é aprender os padrões de projeto da GoF (que são os mais clássicos e mais relevantes atualmente).
NextJS + Strapi
Vamos criar um blog usando NextJS + Strapi com SSR (server-side rendering), SSG (static site generation) e ISR (Incremental Static Regeneration). Neste blog também vamos fazer deploy da aplicação usando servidor Linux (Ubuntu), PostgreSQL (base de dados) e Github Webhooks para Continuous Deployment (CD). Além disso, vamos falar de muitas outras coisas que vão muito além do código em si (infraestrutura).
Bancos de dados SQL (MySQL)
Temos uma seção específica onde você aprender a executar as consultas mais comuns em bases de dados SQL (MySQL). Após essa seção o aluno será capaz de criar, apagar, atualizar, ler e fazer relações entre tabelas da base de dados.
Knex – Query Builder
Também falaremos especificamente do Knex, um Query Builder para construir queries SQL em bases de dados Postgres, MSSQL, MySQL, MariaDB, SQLite3, Oracle, e Amazon Redshift.
HTML5 e CSS3 (Bônus)
Recentemente adicionamos à grade do curso HTML5 e CSS3 para quem não conhece nada sobre HTML e CSS. Essa seção é um bônus, visto que seria um requisito para aprender JavaScript de maneira eficaz.
Listagem do conteúdo principal
Lista do que será ensinado nas seções:
-
Instalação dos programas utilizados ao longo do curso (Node, Visual Studio Code e mais)
-
Javascript básico (variáveis e coisas básicas de programação)
-
Javascript com lógica de programação (estruturas condicionais, de repetição e mais)
-
Javascript orientado a objetos (classes, funções construtoras, factory functions, e mais)
-
Javascript funcional (seções específicas para funções, arrays e objetos)
-
Javascript assíncrono (com promises, ajax, axios e fetch API)
-
Webpack e Babel (para uso de recursos modernos em navegadores mais antigos)
-
Node.js (básico de Node + Express e MongoDB)
-
Projeto agenda (Um projeto real utilizando tudo o que foi descrito anteriormente)
-
Deploy – Criar, configurar e manter um servidor Linux (inclui configuração de várias tecnologias diferentes)
-
Api rest – Criar uma API Rest do zero usando Express, JWT e o Sequelize (com MariaDB/MySQL).
-
React JS Básico – Nesta seção, criaremos uma lista de tarefas utilizando o React JS e o localStorage do navegador.
-
React JS Avançado – React Hooks, Redux + Redux Saga, Autenticação com JWT, Redux Persist e muito mais.
-
Bônus: Expressões Regulares (Regex)
-
TypeScript – Você não precisa comprar outro curso para aprender TypeScript
-
Princípios da programação orientada a objetos e princípios S.O.L.I.D (SOLID)
-
Testes automatizados com o Jest
-
NextJS + Strapi – vamos a criar sites com SSR e SSG usando o NextJS
-
Bancos de dados SQL (MySQL)
-
Knex – Query Builder
-
Bônus: Padrões de projeto (Design patterns)
-
Bônus: HTML5 e CSS3
-
1Instalando NodeJS, VSCode e Chrome no WindowsVídeo Aula
Vamos instalar o Google Chrome, Visual Studio Code e o NodeJS. Todos os links estão nos recursos da aula para você baixar.
-
2Instalando NodeJS, VSCode e Chrome no Linux (Ubuntu 18.04)Vídeo Aula
-
3Não se esqueça de salvar seus arquivos antes de executarTexto
-
4Entenda como o curso está estruturadoVídeo Aula
-
5Perguntas e Respostas - Como funciona?Vídeo Aula
-
6Seção de HTML e CSS (Novo)Vídeo Aula
-
7Console.log - A primeira coisa que você vai ver em JSVídeo Aula
-
8ExecíciosVídeo Aula
-
9Repositório do curso no GithubTexto
-
10Me ajude a produzir conteúdo gratuitoTexto
-
11Comentários de códigoVídeo Aula
-
12Navegador vs Node (HTML + JavaScript)Vídeo Aula
-
13Variáveis com letVídeo Aula
-
14Constantes com constVídeo Aula
-
15CorreçãoTexto
-
16Exercícios - Const e LetVídeo Aula
-
17Código do exercício solucionadoTexto
-
18Let vs Var - Primeira diferençaVídeo Aula
-
19Tipos de dados primitivosVídeo Aula
-
20Operadores aritméticos, de atribuição e incrementoVídeo Aula
-
21alert, confirm e prompt (Navegador)Vídeo Aula
-
22Exercícios - SoluçãoVídeo Aula
-
23Exercício com variáveisVídeo Aula
-
24Mais sobre stringsVídeo Aula
-
25Exercícios com stringsVídeo Aula
-
26Mais sobre numbersVídeo Aula
-
27Objeto MathVídeo Aula
-
28Exercícios com numbers e MathVídeo Aula
-
29Arrays (Básico)Vídeo Aula
-
30Const com valores mutáveisTexto
-
31Funções em JavaScript - Uma introdução ao básicoVídeo Aula
-
32Objetos (Básico)Vídeo Aula
-
33Valores primitivos e valores por referênciaVídeo Aula
-
34Exercício para função, array e objetosVídeo Aula
-
35Sobre lógicaTexto
-
36Extensões que utilizo no VSCodeVídeo Aula
-
37Operadores de comparaçãoVídeo Aula
-
38Operadores LógicosVídeo Aula
-
39Avaliação de Curto-Circuito (Short-Circuit)Vídeo Aula
-
40if, else if e else (1)Vídeo Aula
-
41if, else if e else (2)Vídeo Aula
-
42Modelo HTML e CSS para exercícios posterioresVídeo Aula
-
43Nota sobre o próximo exercícioTexto
-
44Exercício (unindo tudo aprendido até aqui e mais)Vídeo Aula
-
45Operação ternáriaVídeo Aula
-
46Objeto DateVídeo Aula
-
47Switch/CaseVídeo Aula
-
48Exercício com switch e dateVídeo Aula
-
49Mais diferenças entre var e let/constVídeo Aula
-
50Atribuição via desestruturação (Arrays)Vídeo Aula
-
51Atribuição via desestruturação (Objetos)Vídeo Aula
-
52For - Clássico - Estrutura de repetiçãoVídeo Aula
-
53Exercícios com forVídeo Aula
-
54DOM e a árvore do DOMVídeo Aula
-
55For in - Estrutura de repetiçãoVídeo Aula
-
56For of - Estrutura de repetiçãoVídeo Aula
-
57Exercícios com NodeList (Browser)Vídeo Aula
-
58While e Do While - Estrutura de repetiçãoVídeo Aula
-
59Break e ContinueVídeo Aula
-
60Exercício com lógica de programação - 01Vídeo Aula
-
61Exercício com lógica de programação - 02Vídeo Aula
-
62Exercício com lógica de programação - 03Vídeo Aula
-
63Tratando e lançando erros (try, catch, throw)Vídeo Aula
-
64Tratando e lançando erros (try, catch, finally)Vídeo Aula
-
65setInterval e setTimeoutVídeo Aula
-
66Exercício - Criando um timer com setIntervalVídeo Aula
-
67Criando uma Lista de tarefasVídeo Aula
-
68As várias maneiras de declarar funções em JavaScriptVídeo Aula
-
69Parâmetros da funçãoVídeo Aula
-
70Retorno da funçãoVídeo Aula
-
71Escopo léxicoVídeo Aula
-
72ClosuresVídeo Aula
-
73Funções de callbackVídeo Aula
-
74Funções imediatas (IIFE)Vídeo Aula
-
75Funções fábrica (Factory Functions)Vídeo Aula
-
76Praticando com factory functionsVídeo Aula
-
77Funções construtoras (constructor functions)Vídeo Aula
-
78Calculadora com função construtoraVídeo Aula
-
79Funções recursivasVídeo Aula
-
80Funções geradorasVídeo Aula