Curso de JavaScript e TypeScript do básico ao avançado JS/TS
Javascript e TypeScript - front-end e back-end (Full Stack) - Node, Express, noSQL, React, hooks, Redux, Design Patterns
Description
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
What You Will Learn!
- JavaScript Básico, Funcional e Orientado a Objetos (ES6+, front-end e back-end)
- TypeScript - um superset do JavaScript com tipagem estática (front-end e back-end)
- Node, Express, MongoDB e MySQL/MariaDB (Back-end)
- Webpack e Babel (Front-end)
- Sistema de login com session (front-end e back-end)
- Sistema de login com JWT (front-end e back-end)
- Criação de projetos com Node, Express e EJS (front-end e back-end)
- Configuração de um servidor Linux para Deploy (Ubuntu Server)
- Configurações de segurança para o servidor (SSH e TLS - Https)
- Utilização de noSQL com mongoose (MongoDB)
- Utilização de SQL com sequelize (MySQL e MariaDB)
- Criação de API Rest com Node + Express + Sequelize (back-end)
- React JS com React Hooks + Redux com Redux Saga (front-end)
- Princípios da programação orientada a objetos
- Princípios S.O.L.I.D
- Testes automatizados com o Jest
- Expressões Regulares (Bônus)
- Padrões de projeto GOF - Design Patterns (Bônus)
- NestJS + Strapi + PostgreSQL (com CSR, SSR, SSG e ISR)
- HTML5 e CSS3 (Bônus Extra)
Who Should Attend!
- Para aqueles que desejam aprender JavaScript Moderno (ES6+) do zero
- Para desenvolvedores experientes que desejam aprimorar seu conhecimento em JS
- Para desenvolvedores que desejam trabalhar com front-end e back-end (fullstack)
- Para quem deseja aprender TypeScript