Dominando o JavaScript

Curso completo da linguagem de programação JavaScript

Dominando o JavaScript Dominando o JavaScript Dominando o JavaScript CodDev Cursos
R$ 157 , 90 Em até 12 x de R$ 15,85

O que você vai aprender?

Módulo 01 - Introdução
Plano de estudos Aula gratuita!

Para o acompanhamento e aprendizagem do curso recomendo que o estudante siga o plano de estudos a seguir para o máximo aproveitamento do conteúdos e evolução como desenvolvedor JavaScript.

Pdf
Conteúdo da aula
PDF - 92,8 KB
01 - Mindset
lock

Explico como surgiu esse curso e qual a mentalidade esperada para o aluno do curso Dominando o JavaScript.

Video
Conteúdo da aula
Video - 18:51
02 - O que é um computador? Aula gratuita!

Aqui começamos nossa jornada entendendo o que é um computados. Para os alunos avançados, que já programam em outras linguagens, pode parecer um conteúdo trivial mas é necessário para o nivelamento da turma.

Video
Conteúdo da aula
Video - 4:04
03 - O que é linguagem de programação? Aula gratuita!

Mais um vídeo para o nivelamento da turma onde explico o que é linguagem de programação.

Video
Conteúdo da aula
Video - 4:39
04 - JavaScript Aula gratuita!

Onde e quando surgiu, o que diferencia das outras linguagens e quais versões já foram lançadas da linguagem JavaScript.

Video
Conteúdo da aula
Video - 7:38
05 - Ferramentas Aula gratuita!

Descrevo as ferramentas de software e porque serão utilizadas durante o curso.

Video
Conteúdo da aula
Video - 6:26
06 - Instalação do CMDer Aula gratuita!

Instalando o console emulator: CMDer.

https://cmder.net

Video
Conteúdo da aula
Video - 3:55
07 - Instalação do GIT Aula gratuita!

Instalando o GIT para windows e testando a clonagem de um projeto do GitHub.

https://git-scm.com

Video
Conteúdo da aula
Video - 4:31
08 - Instalação do NodeJS Aula gratuita!

Instalação do NodeJS e demonstração das ferramentas que vem com a instalação do NodeJS para o Windows. https://nodejs.org/en/

Video
Conteúdo da aula
Video - 4:32
09 - Instalação do VSCode Aula gratuita!

Instalação do editor e uma olhada na área de extensões do VSCode. https://code.visualstudio.com/

Video
Conteúdo da aula
Video - 4:02
10 - Hello World - I Aula gratuita!

Primeira parte do Hello World, demonstrando como é criado um projeto NodeJS com o npm e como executar ele com NodeJS. Também mostro como criar um projeto no GitHub e como clonar ela para o desktop.

Video
Conteúdo da aula
Video - 00:00
11 - Hello World - II Aula gratuita!

Segunda parte criando o código para web e enviando para o GitHub.

Video
Conteúdo da aula
Video - 11:45
12 - Bônus - Procrastinação
lock

Pare de uma vez por todas de procrastinar e dedique atenção máxima para conquistar ao seus objetivos.

Vídeo do Tim Urban:

https://www.ted.com/talks/tim_urban_inside_the_mind_of_a_master_procrastinator/transcript?source=facebook&language=pt

Video
Conteúdo da aula
Video - 4:40
13 - Extras: SSH no GitHub Aula gratuita!

Segue um artigo no medium.com que mostra como configurar o SSH no GitHub: https://medium.com/@rgdev/como-adicionar-uma-chave-ssh-na-sua-conta-do-github-linux-e0f19bbc4265

Image
Conteúdo da aula
Imagem - 659 KB
Módulo 02 - Variáveis
01 - Introdução
lock

Variáveis são espaços da memória do computador onde você armazena dados.

Video
Conteúdo da aula
Video - 1:03
02 - Declaração de variável
lock

Você pode dar qualquer nome para variáveis, mas há algumas restrições. Não pode começar com números ou caracteres especiais exceto _ e $.

Validador de nomes de variáveis: https://mothereff.in/js-variables

Video
Conteúdo da aula
Video - 7:45
03 - Console
lock

Para imprimir um valor no console do NodeJS utilizamos: console.log()

Video
Conteúdo da aula
Video - 2:15
04 - Tipo de dados - String
lock

Um texto. Para mostrar que a variável é um texto, você deve envolvê-la em aspas.

Video
Conteúdo da aula
Video - 2:19
05 - Tipo de dados - Number
lock

Um número. Números não tem aspas ao redor deles.

Video
Conteúdo da aula
Video - 2:47
06 - Tipo de Dados - Boolean
lock

Um valor verdadeiro ou falso. As palavras true e false são palavras reservadas em JS e não precisam de aspas.

Video
Conteúdo da aula
Video - 2:37
07 - Tipo de dados - Array
lock

Uma estrutura que permite o armazenamento de vários valores em uma única variável.

Video
Conteúdo da aula
Video - 2:11
08 - Tipo de dados - Object
lock

Basicamente, qualquer coisa. Tudo em JavaScript é um objeto e pode ser armazenado em uma variável. Tenha isso em mente enquanto aprende.

Video
Conteúdo da aula
Video - 3:15
09 - Tipo de Dados - Undefined
lock

Valor atribuído automaticamente a uma variável quando declarada.

Video
Conteúdo da aula
Video - 1:41
10 - Tipo de Dados - Null
lock

Semelhante ao undefined, mas nesse caso a variável pode nem ter sido declarada.

Video
Conteúdo da aula
Video - 1:36
11 - Inferência de Tipo
lock

A inferência de tipos é a capacidade do compilador entender/’adivinhar’ qual é o tipo de dados de determinada variável sem ela ter sido declarada no código escrito.

Video
Conteúdo da aula
Video - 2:09
12 - Tipagem Forte e Fraca
lock

Na tipagem forte teremos a verificação de tipos em todas as operações em tempo de execução ou compilação, já a fraca não temos essa verificação.

Video
Conteúdo da aula
Video - 2:00
13 - Tipagem Dinâmica e Estática
lock

Na tipagem Dinâmica temos a possibilidade de alterar o tipo da nossa variável em tempo de execução.

Video
Conteúdo da aula
Video - 1:48
14 - Coerção
lock

Ao somar duas variáveis o JS tenta descobrir o tipo de dados que as variáveis devem ter para que a operação seja executada corretamente.

Video
Conteúdo da aula
Video - 3:50
15 - Mutação
lock

É como chamamos a mudança de valor de um variável.

Video
Conteúdo da aula
Video - 3:09
16 - Var
lock

Toda variável declarada com var é “elevada” (hoisting) até o topo do contexto de execução.

Video
Conteúdo da aula
Video - 5:03
17 - Let
lock

No ES6 foi introduzido o contexto de bloco pelo uso da palavra reservada let.

Video
Conteúdo da aula
Video - 4:23
18 - Const
lock

Uma vez declarada uma variável como constante (const) seu valor não pode ser alterado.

Video
Conteúdo da aula
Video - 4:24
19 - Readline
lock

Veremos agora como ler um valor do terminal do NodeSJ.

Documentação do Readline: https://nodejs.org/api/readline.html

Video
Conteúdo da aula
Video - 7:03
20 - Comentários
lock

Às vezes seu código não contém todas as informações necessárias para que um ser humano possa ler. Você pode incluir comentários para facilitar o entendimento do código.

Esse artigo fala um pouco sobre comentários e onde é interessante comentar ou não:

https://blog.softfocus.com.br/clean-code-3-e-feio-comentar-99b0ee464ab9

Video
Conteúdo da aula
Video - 4:08
21 - Projeto Prático
lock

Vamos começar a criar um programa de linha de comando NodeJS que ao receber um determinada URL extrai os dados das meta tags Open Graph da página.

Video
Conteúdo da aula
Video - 17:22
22 - Desafios
lock

Agora chegou a hora de colocar em prática os seus conhecimentos obtidos até aqui. 

Qualquer dúvida, sujestão ou reclamação devem ser compartilhadas com o grupo dos alunos no WhatsApp.

Resoluções no GitHub: https://github.com/CodDev2018/DominandoOJavaScript

Bons estudos!

Pdf
Conteúdo da aula
PDF - 116 KB
Módulo 03 - Operadores
01 - Introdução
lock

Nesse módulo veremos operadores aritméticos, operadores de atribuição, operadores de comparação, operadores lógicos, if...else, switch case, um site divertido para aprender a programar trabalhando com jogos e daremos continuidade no nosso projeto prático leitor de Open Graph.

Video
Conteúdo da aula
Video - 00:42
02 - Operadores Aritméticos - Parte 1
lock

Operadores são utilizados em diversos momentos na programação. Podem ser lógicos, aritméticos ou de atribuição e no JavaScript até em chamadas de função. Operadores aritméticos são utilizados para realização de cálculos matemáticos e atribuições de valores a variáveis. Nessa aula demonstro no código os quatro operadores básicos: adição, subtração, multiplicação e divisão.

Video
Conteúdo da aula
Video - 3:13
03 - Operadores Aritméticos - Parte 2
lock

Exemplo de utilização do operador de módulo.

Video
Conteúdo da aula
Video - 1:07
04 - Operadores Aritméticos - Parte 3
lock

Demonstração dos operadores de incremento e decremento.

Video
Conteúdo da aula
Video - 5:15
05 - Precedência de Operadores
lock

Precedência define a ordem de execução da operações aritméticas.

Video
Conteúdo da aula
Video - 6:36
06 - Operadores de Atribuição
lock

Existem mais operadores de atribuição do que o igual (=).

Video
Conteúdo da aula
Video - 5:26
07 - Operadores de Comparação
lock

Operadores de comparação são as bases para criamos decisões lógicas no nosso código fonte.

Video
Conteúdo da aula
Video - 6:03
08 - Operadores Lógicos
lock

Para criar decisões lógicas eficientes vamos entender melhor como lidar com o verdadeiro e falso. A tabela verdade é utilizada para entender corretamente os operadores && (E lógico) e || (OR lógico).

Video
Conteúdo da aula
Video - 9:44
09 - TypeOf
lock

Typeof, que já vimos na aula passada, é um operador que retorna o tipo de uma determinada variável.

Video
Conteúdo da aula
Video - 2:54
10 - Operador Ternário
lock

Operador ternário (?) permite fazer uma tomada de decisão em uma linha de código ao atribuir um valor para uma variável.

Video
Conteúdo da aula
Video - 4:00
11 - IF e Else
lock

O if e o else são as expressões utilizadas no JavaScript para controlar o fluxo de execução do nosso programa através da utilização de operadores lógicos.

Video
Conteúdo da aula
Video - 8:06
12 - Switch
lock

Quando se tem vários if else aninhados, pode parecer mais elegante utilizar o switch.

Video
Conteúdo da aula
Video - 7:41
13 - CodinGame
lock

Além de mostrar esse site que é uma ferramenta muito divertida para quem está dando os primeiros passos na programação, exercito o que vimos ao longo do módulo: if...else, comparações lógicas, incremento, decremento, etc.

Site: https://www.codingame.com/

Video
Conteúdo da aula
Video - 8:04
14 - Projeto Prático
lock

Agora que já sabemos como criar uma expressão lógica para tomada de decisão estamos prontos para fazer a validação da entrada do usuário utilizando expressão regular. Também vamos das um passo alem acrescentando o Axios no projeto e fazendo o download da nossa página de onde extrairemos os dados do Open Graph.

Site do Aurélio Jargas (programador que manja dos "paranaue" das regex): https://aurelio.net/regex/

Site para testar expressões regulares: https://regexr.com/3au3g

Post com uma lista de expressões regulares que podem ser úteis: https://www.c-sharpcorner.com/UploadFile/ee01e6/important-list-of-regular-expressions-and-its-uses/

Video
Conteúdo da aula
Video - 14:32
15 - Desafios
lock

Agora chegou a hora de colocar em prática os seus conhecimentos obtidos até aqui. 

Qualquer dúvida, sujestão ou reclamação devem ser compartilhadas com o grupo dos alunos no WhatsApp.

Resoluções no GitHub: https://github.com/CodDev2018/DominandoOJavaScript

Bons estudos!

Pdf
Conteúdo da aula
PDF - 164 KB
Módulo 04 - Funções
01 - Introdução
lock

Esse módulo trata sobre funções. Vejamos então por que Function é o Xerife de JS City.

Video
Conteúdo da aula
Video - 00:53
02 - DRY (Don’t repeat Yourself)
lock

Além de organização outro importante aspecto das funções é a reutilização do código.

Video
Conteúdo da aula
Video - 1:51
03 - Definindo Funções
lock

Declaração de função deve ser precedida pela palavra reservada function, logo após deve vir o nome da função, parênteses de abertura, parênteses de fechamento e o bloco de código.

Video
Conteúdo da aula
Video - 3:29
04 - Funções em variáveis
lock

No JavaScript uma função pode ser atribuída a uma variável.

Video
Conteúdo da aula
Video - 5:02
05 - Parâmetros
lock

Parâmetros são valores passados para uma função. Dentro da função parâmetros se comportam exatamente igual a variáveis que vimos até agora.

Video
Conteúdo da aula
Video - 9:15
06 - Arrow Function
lock

Statements, Expression e Arrow Functions são as três notações para escrever funções em JavaScript.

Video
Conteúdo da aula
Video - 9:18
07 - Arrow Function - Parte 2
lock

Refatorando Expression Functions com Arrow Function e vendo um pouco sobre recursão.

Video
Conteúdo da aula
Video - 3:24
08 - Call Stack
lock

Qual a ordem de chamada das funções e porque devemos evitar recursos como recursão para evitar erros de maximum call stack size exceeded

Video
Conteúdo da aula
Video - 6:47
09 - Projeto Prático - Parte 1
lock

Organizando o código fonte feito em aulas passadas em funções.

Video
Conteúdo da aula
Video - 12:34
10 - Projeto Prático - Parte 2
lock

Extraindo cada função para um arquivo separado.

Video
Conteúdo da aula
Video - 7:58
11 - Projeto Prático - Parte 03
lock

Implementando função de leitura dos dados da página.

Video
Conteúdo da aula
Video - 8:43
12 - Projeto Prático - Parte 4
lock

Enviando alterações para o github.

Video
Conteúdo da aula
Video - 2:29
13 - Desafios
lock

Agora chegou a hora de colocar em prática os seus conhecimentos obtidos até aqui. 

Qualquer dúvida, sujestão ou reclamação devem ser compartilhadas com o grupo dos alunos no WhatsApp.

Resoluções no GitHub: https://github.com/CodDev2018/DominandoOJavaScript

Bons estudos!

Pdf
Conteúdo da aula
PDF - 76,8 KB
Módulo 05 - Estrutura de Dados
01 - Introdução
lock

Nesse módulo iremos focar em Arrays e Objects e entender como trabalhar com estas estruturas de dados no JavaScript

Video
Conteúdo da aula
Video - 00:59
02 - Estrutura de Dados
lock

Deifinição de estrutura de dados e como isso funciona no JavaScript

Video
Conteúdo da aula
Video - 1:45
03 - Array
lock

Vetores e Matrizes no JavaScript são representados por Arrays.

Video
Conteúdo da aula
Video - 4:54
04 - Percorrendo o Array - Parte 1
lock

Veremos os comandos de Loop de JavaScript que permitem percorrer os Arrays.

Video
Conteúdo da aula
Video - 4:33
05 - Percorrendo o Array - Parte 2
lock

Continuamos com os comandos de Loop de JavaScript que permitem percorrer os Arrays.

Video
Conteúdo da aula
Video - 4:48
06 - Métodos do Array
lock

Veremos alguns dos métodos da global Array.

Mais métodos em: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Array

Video
Conteúdo da aula
Video - 7:33
07 - Funções de Ordem Superior
lock

Nesta aula trago um dos aspectos da Programação Funcional que são as funções de order superior. Funções estas que aceitam funções como parâmetros ou que retornem outras funções.

Video
Conteúdo da aula
Video - 2:21
08 - Programação Funcional com Arrays - Parte 01
lock

Nessa aula exponho os métodos da global Array que abordam o paradgma da programação funcional

Video
Conteúdo da aula
Video - 7:18
09 - Programação Funcional com Arrays - Parte 02
lock

Continuamos com mais métodos da global Array que abordam o paradgma da programação funcional

Video
Conteúdo da aula
Video - 9:32
10 - Programação Funcional com Arrays - Parte 03
lock

Mais dois métodos da global Array que abordam o paradgma da programação funcional

Video
Conteúdo da aula
Video - 2:23
11 - Objetos
lock

Veremos agora como agrupar variaveis numa estrutura de chave-valor que no JavaScript chamamos de objetos.

Video
Conteúdo da aula
Video - 2:55
12 - Objetos - Notação de Ponto e Colchetes
lock

Nessa aula vemos quais notações utilizadas para recuperar valores de dentro de um objeto.

Video
Conteúdo da aula
Video - 1:23
13 - Objetos - This
lock

Quando implementamos médos em um objeto podemos recuperar a instância deste mesmo objeto pela palavra reservada this.

Video
Conteúdo da aula
Video - 3:53
14 - Projeto Prático - Lista de Taferas
lock

Nessa aula veremos a lista de tarefas do projeto Reader OG que iremos crumprir nesse módulo.

Video
Conteúdo da aula
Video - 1:00
15 - Projeto Prático - Objeto Page
lock

Nesta primeira parte do projeto prático neste módulo, iremos definir a estrutura de dados para as páginas lidas.

Video
Conteúdo da aula
Video - 2:01
16 - Projeto Prático - Objeto PageRepository
lock

Criando o objeto PageRepository para gerenciar a lista de páginas lidas.

Video
Conteúdo da aula
Video - 5:12
17 - Projeto Prático - botSpider
lock

Implemento o bot que irá pegar todos os links de uma página e devolver uma lista de urls

Video
Conteúdo da aula
Video - 4:48
18 - Projeto Prático - Resolvendo retorno do Callback
lock

Mostro uma forma de passar N funções de callback para resolver o problema de retorno do mêtodo que faz o download da página.

Video
Conteúdo da aula
Video - 5:34
19 - Projeto Prático - Salvar dados - Parte 1
lock

Vamos utilizar a clarre PageRepository para salvar os dados no nosso array de página lida.

Video
Conteúdo da aula
Video - 5:55
20 - Projeto Prático - Salvar dados - Parte 2
lock

Resolvendo os bugs e finalmente salvando os dados corretamente no array de páginas.

Video
Conteúdo da aula
Video - 6:40
21 - Projeto Prático - Considerações
lock

Considerações finais do Reader OG desenvolvido até aqui.

Video
Conteúdo da aula
Video - 2:01
22 - Desafios
lock

Agora chegou a hora de colocar em prática os seus conhecimentos obtidos até aqui. 

Qualquer dúvida, sujestão ou reclamação devem ser compartilhadas com o grupo dos alunos no WhatsApp.

Resoluções no GitHub: https://github.com/CodDev2018/DominandoOJavaScript

Bons estudos!

Pdf
Conteúdo da aula
PDF - 102 KB
Módulo 06 - Objetos e Funções
01 - Introdução
lock

Agora é hora de entender como funciona o JavaScript por baixo do "capô" e mergulhar fundo nos objetos, constructors e classes.

Video
Conteúdo da aula
Video - 00:31
02 - JavaScript Engine
lock

JavaScript Engine é o Interpretador ou Motor JavaScript.

Video
Conteúdo da aula
Video - 2:27
03 - Contexto de Execução
lock

Contexto de execução é como uma caixa que armazena nossas variáveis. Sendo que essa caixa é um objeto JavaScript.

Video
Conteúdo da aula
Video - 7:19
04 - Call, Bind e Apply
lock

Até as funções no JS são objetos e possuem métodos! Veremos como trabalhar com funções utilizando o Call, Bind e Apply.

Video
Conteúdo da aula
Video - 5:25
05 - Orientação a Objetos
lock

A programação orientada a objeto busca organizar conceitos do escopo do problema que busca-se resolver com programação em: Objetos, Propriedades e Métodos. Veremos como isso é feito no ES5 e ES6.

Video
Conteúdo da aula
Video - 3:09
06 - Constructor
lock

Podemos ter estruturas que fabricam objetos chamadas de classe e veremos isso mais para frente.

Inicialmente vamos trabalhar com o Constructor.

Video
Conteúdo da aula
Video - 2:38
07 - Prototype
lock

Herança é o conceito que torna possível estender comportamentos de uma classe mais abstrata para uma menos abstrata.

A herança de um constructor em JavaScript é feita com algo chamado prototype.

Video
Conteúdo da aula
Video - 5:02
08 - IIFE
lock

Immediately invoked function expression ou Expressão de função Invocada Imediatamente.

Utilizado para ocultar o escopo global.

Video
Conteúdo da aula
Video - 3:28
09 - Closure
lock

O fechamento ou Closuer se beneficia do fato de que uma função carrega o contexto da função superior, dessa forma um constructor que retorna uma função tem seu contexto protegido.

Video
Conteúdo da aula
Video - 3:42
10 - Modulariazação
lock

Podemos utilizar os conceitos de Closure e IIFE para modularizar nossos componentes.

Video
Conteúdo da aula
Video - 3:25
11 - Classes
lock

Foram introduzidas no ECMAScript 2015.

Simplificam o conceito de constructor e prototype.

Video
Conteúdo da aula
Video - 5:14
12 - Modulariazação no ES6
lock

No NodeJS utiliza o CommonJS. No ES6 foi introduzido o conceito de módulos nativamente a linguagem JavaScript.

Video
Conteúdo da aula
Video - 3:14
13 - Projeto Prático - Refatoração Parte 1
lock

Refatorando o projeto OG Reader com os conceitos que vimos nesse módulo.

Video
Conteúdo da aula
Video - 14:35
14 - Projeto Prático - Refatoração Parte 2
lock

Refatorando o projeto OG Reader com os conceitos que vimos nesse módulo.

Video
Conteúdo da aula
Video - 8:03
15 - Projeto Prático - Refatoração Parte 3
lock

Refatorando o projeto OG Reader com os conceitos que vimos nesse módulo.

Video
Conteúdo da aula
Video - 5:13
16 - Projeto Prático - Refatoração Parte 4
lock

Refatorando o projeto OG Reader com os conceitos que vimos nesse módulo.

Video
Conteúdo da aula
Video - 6:34
17 - Projeto Prático - Refatoração Parte 5
lock

Refatorando o projeto OG Reader com os conceitos que vimos nesse módulo.

Video
Conteúdo da aula
Video - 8:08
18 - Considerações finais
lock

Considerações finais do módulo 06.

Video
Conteúdo da aula
Video - 00:56
19 - Desafios
lock

Agora chegou a hora de colocar em prática os seus conhecimentos obtidos até aqui. 

Qualquer dúvida, sujestão ou reclamação devem ser compartilhadas com o grupo dos alunos no WhatsApp.

Resoluções no GitHub:  https://github.com/CodDev2018/DominandoOJavaScript

Bons estudos!

Pdf
Conteúdo da aula
PDF - 78 KB
Módulo 07 - JavaScript no Navegador - Parte I
01 - Introdução
lock

Vamos levar o JavaScript para onde ele nasceu! Vejamos nesse módulo a profunda relação entre o JavaScript e as páginas web.

Video
Conteúdo da aula
Video - 2:15
02 - Redes
lock

Para entender um pouco como funciona a web, vamos falar um pouco sobre Redes de Computadores e Protocolos.

Video
Conteúdo da aula
Video - 1:40
03 - WWW
lock

Entendendo um pouco da World Wide Web, nossa Rede Mundial de Computadores.

Video
Conteúdo da aula
Video - 2:23
04 - Compatibilidade dos navegadores
lock

Entendendo a relação e da história dos navegadores com os padrões web que temos atualmente.

Video
Conteúdo da aula
Video - 2:33
05 - HTML e CSS
lock

Vejamos um pouco de HTML e CSS. Caso não tenha domínio sobre essas linguagens é hora de aprender, acesse: https://coddev-cursos.coursify.me/courses/criacao-de-paginas-web

Video
Conteúdo da aula
Video - 2:29
06 - DOM
lock

Vamos começar a entender melhor como o DOM (Document Object Model) é montado e como manipular os elementos de uma página web.

Video
Conteúdo da aula
Video - 2:55
07 - Percorrendo Elementos
lock

Veremos nessa aula que pulando através dos elementos pais, filhos e irmão é possivel percorrer todos os elementos de uma página.

Video
Conteúdo da aula
Video - 6:05
08 - Pegando Elementos
lock

Existe uma forma mais fácil de pegar os elementos de uma página que navegar por cada elemento.

Video
Conteúdo da aula
Video - 4:34
09 - Mudando Elementos
lock

Nessa aula, veremos como elementos de um página podem ser alterados.

Video
Conteúdo da aula
Video - 3:24
10 - Criando Nós de Texto
lock

Criando e incluindo um nó de texto a um elemento.

Video
Conteúdo da aula
Video - 5:04
11 - Criando Elementos
lock

Criando um elemento e incluindo como filho de outro elemento.

Video
Conteúdo da aula
Video - 2:06
12 - Criando Atributos
lock

Veremos como criar e incluir atributos em um elemento.

Video
Conteúdo da aula
Video - 7:15
13 - Buscando Elementos
lock

Com document.querySelector e document.querySelectorAll é possivel buscar elementos através de seletores igual ao CSS.

Video
Conteúdo da aula
Video - 3:10
14 - Criando uma Animação
lock

Com o que vimos na aula é possível criar uma animação.

Video
Conteúdo da aula
Video - 2:23
15 - Projeto Prático - Batalha Naval - Parte 01
lock

Projeto prático desse módulo se resume a criar um jogo de batalha naval bastante simples.

Video
Conteúdo da aula
Video - 9:23
16 - Projeto Prático - Batalha Naval - Parte 02
lock

Montando tabuleiro do jogo.

Video
Conteúdo da aula
Video - 9:40
17 - Projeto Prático - Batalha Naval - Parte 03
lock

Criando o evento do tiro e finalizando o jogo.

Video
Conteúdo da aula
Video - 15:16
18 - Considerações
lock

Considerações finais sobre este módulo e preparação para o próximo módulo.

Eloquent JavaScript: https://braziljs.github.io/eloquente-javascript/

Battleship: https://github.com/LearnTeachCode/Battleship-JavaScript

Video
Conteúdo da aula
Video - 2:05
19 - Desafios
lock

Agora chegou a hora de colocar em prática os seus conhecimentos obtidos até aqui. 

Qualquer dúvida, sujestão ou reclamação devem ser compartilhadas com o grupo dos alunos no WhatsApp.

Resoluções no GitHub: https://github.com/CodDev2018/DominandoOJavaScript

Bons estudos!

Pdf
Conteúdo da aula
PDF - 80,4 KB
Módulo 08 - JavaScript no Navegador - Parte II
01 - Introdução
lock

Nesse módulo veremos várias formas de tratar eventos de interação com o usuário como click, teclas e até touch.

Veremos também uma explicação aprofundada sobre PWA e quais tecnologias necessárias para sua implmentação.

No projeto prático, veremos os passos básicos para transformar um simples jogo da memôria em um PWA.

Video
Conteúdo da aula
Video - 1:05
02 - Ouvindo Eventos
lock

Vejamos como escutar eventos em determinado elemento de uma página.

Video
Conteúdo da aula
Video - 10:39
03 - Propagação de Eventos
lock

Veremos logo nessa aula os cuidados que devemos ter com propagação de eventos, as vezes esse tema não fica bem claro para os iniciantes que perdem um bom tempo sem entender o que está acontecendo em seus códigos.

Video
Conteúdo da aula
Video - 5:49
04 - Evento Padrão
lock

Os eventos padrões do navegador podem ser desabilitados e podemos rodar nosso código no lugar deles.

Video
Conteúdo da aula
Video - 2:58
05 - Evento de Tecla
lock

Eventos de tecla são a forma que podemos interagir com o usuário pela utilização do teclado.

Video
Conteúdo da aula
Video - 2:35
06 - Evento com Tecla Modificadora
lock

Teclas modificadores (Ctrl, Alt e Shift) são utilizadas em combinações com outras teclas para produzir um atalho de teclado.

Video
Conteúdo da aula
Video - 2:53
07 - Evento Keypress
lock

Importante diferenciar o evento KeyPress do KeyUp e KeyDown, pois no caso do KeyPress é capturado apenas quanto as teclas digitadas produzem um caracter.

Video
Conteúdo da aula
Video - 2:16
08 - Desenhando pontos
lock

Através do evento de click do mouse é possivel capturar coordenadas da página e criar um ponto exatamente onde o usuário efetuou o click.

Video
Conteúdo da aula
Video - 5:18
09 - Movendo elementos com o mouse
lock

Veremos como utilizar os eventos do mouse para mover um elmento pela página.

Video
Conteúdo da aula
Video - 5:38
10 - Evento de Toque
lock

Telas de toque não podem ser despresadas quando falamos de eventos.

Video
Conteúdo da aula
Video - 7:31
11 - Evento de rolagem
lock

Através do evento de rolagem (scroll) podemos saber que altura da página o usuário se encontra.

Video
Conteúdo da aula
Video - 4:05
12 - Eventos de Foco
lock

É possivel saber quando o foco é recebido ou perdido por um elmento da página.

Video
Conteúdo da aula
Video - 3:29
13 - Evento de Carregamento da Página
lock

É possivel saber quando exatamente a página termina de carregar escutando o evento de load.

Video
Conteúdo da aula
Video - 00:59
14 - Temporizadores
lock

Algumas vezes precisamos chamar uma função em determinado periodo de tempo, para isso utilizamos os temporizadores.

Video
Conteúdo da aula
Video - 5:28
15 - PWA - Progressive Web Apps
lock

Veremos como a web evoluiu até o que temos hoje. Progressive Web Apps, são a forma de transformar uma aplicação web em uma experiencia de app nativo do sistema operacional.

Video
Conteúdo da aula
Video - 25:59
16 - Projeto Prático - Parte 01
lock

Tranformaremos um simples jogo de memôria em um PWA. 

Playlist: https://www.youtube.com/playlist?list=PLLX1I3KXZ-YH-woTgiCfONMya39-Ty8qw

GitHub: https://github.com/code-sketch/memory-game

Video
Conteúdo da aula
Video - 7:42
17 - Projeto Prático - Parte 02
lock

Após entender o funcionamento do jogo, veremos como criar um manifest.json para o PWA.

Video
Conteúdo da aula
Video - 1:48
18 - Projeto Prático - Parte 03
lock

Veremos como implementar um service worker e como testar o nosso PWA.

Video
Conteúdo da aula
Video - 6:49
19 - Considerações
lock

Considerações finais sobre este módulo e preparação para o próximo módulo.

Video
Conteúdo da aula
Video - 1:02
20 - Desafios
lock

Agora chegou a hora de colocar em prática os seus conhecimentos obtidos até aqui. 

Qualquer dúvida, sujestão ou reclamação devem ser compartilhadas com o grupo dos alunos no WhatsApp.

Resoluções no GitHub: https://github.com/CodDev2018/DominandoOJavaScript

Bons estudos!

Pdf
Conteúdo da aula
PDF - 138 KB
Módulo 09 - JavaScript no Navegador - Parte III
01 - Introdução
lock

Nesse módulo fechamos os estudos sobre JavaScript no navegador e veremos tópicos importantes como:

- Requisições HTTP

- Manipulação e validação de Formulários

- Gravação de dados no window.localStorage

Video
Conteúdo da aula
Video - 00:55
02 - Requisição e Resposta do HTTP
lock

Antes de botar a mão no código é importante entender como o navegador trata requisições HTTP.

Video
Conteúdo da aula
Video - 7:23
03 - XMLHttpRequest
lock

Por muito tempo o XMLHttpRequest foi a base de requisições remotas (AJAX), atualmente as requisições sincronas desse objeto estão sendo descontinuadas.

Video
Conteúdo da aula
Video - 5:03
04 - Fetch
lock

Fetch faz tudo que o XMLHttpRequest faz e mais um pouco, esse pouco envolve recursos como streams! 

Veja especificação do Fetch: https://fetch.spec.whatwg.org/

Video
Conteúdo da aula
Video - 4:45
05 - XML e JSON
lock

XML (Extensible Markup Language) e JSON (JavaScript Object Notation) são padrões de troca de dados empregados em sistemas distribuidos. Apesar do JSON ser predominante atualmente, em sistemas mais complexos o XML pode ser uma ótima opção.

Video
Conteúdo da aula
Video - 3:17
06 - Formulário HTML - Parte I
lock

Vamos construir um formúlario HTML com todos os elmentos mais utilizados atualmente. Veremos inputs dos tipos text, password, checkbox e radio.

Video
Conteúdo da aula
Video - 10:04
07 - Formulário HTML - Parte II
lock

Vamos construir um formúlario HTML com todos os elmentos mais utilizados atualmente. Veremos selects e textarea.

Video
Conteúdo da aula
Video - 5:03
08 - Foco em elementos do formulário
lock

Setando e tirando o foco de um elemento de formulário.

Video
Conteúdo da aula
Video - 3:41
09 - Desabilitar e habilitar elementos
lock

É possivel utilizar JavaScript para habilitar e desabilitar elementos do formulário.

Video
Conteúdo da aula
Video - 2:22
10 - Input Event
lock

Em elementos de entrada de texto como textarea e input, podemos tratar o evento input.

Video
Conteúdo da aula
Video - 7:17
11 - Checkbox e Radio
lock

É possivel formatar utilizando CSS e tratar evento de "change" em elementos input do tipo checkbox e radio.

Video
Conteúdo da aula
Video - 9:26
12 - Select
lock

Outro elemento que podemos manipular o evento "change" é o select.

Video
Conteúdo da aula
Video - 5:01
13 - Input File
lock

Com um elemento input do tipo "file" é possivel manipular arquivos com JavaScript, inclusive lendo os dados do arquivo no navegador.

Video
Conteúdo da aula
Video - 4:11
14 - Habilitar botão Salvar
lock

Tratando o evento "change" do checkbox de confirmação, podemos habilitar o botão salvar.

Video
Conteúdo da aula
Video - 3:54
15 - Salvar dados no navegador
lock

Com os recursos do window.localStorage é possivel salvar dados do usuário diretamente no navegador.

Video
Conteúdo da aula
Video - 9:34
16 - Recuperando dados do localStorage
lock

Veremos agora como recuperar os dados do window.localStorage.

Video
Conteúdo da aula
Video - 5:21
17 - Apagando dados do localStorage
lock

Apagando dados do window.localStorage.

Video
Conteúdo da aula
Video - 5:53
18 - Organizando Arquivos
lock

Para que não fique tudo misturado em um único arquivo HTML é melhor separar o CSS e o JavaScript em arquivos e linkar tudo no HTML.

Video
Conteúdo da aula
Video - 3:33
19 - Validação - Parte I
lock

Vamos manipular o comportamento padrão do navegador na validação de formulários para criar nossas mensagens personalizadas.

Video
Conteúdo da aula
Video - 7:56
20 - Validação - Parte II
lock

Nem tudo é possivel tratar com o comportamente padrão das validações do navegador. Vejamos como obrigar o usuário a marcar os inputs do tipo radio e checkbox.

Video
Conteúdo da aula
Video - 8:29
21 - Projeto Prático - Parte 01
lock

Agora criaremos a estrutura básica do frontend do projeto do prático.

Video
Conteúdo da aula
Video - 11:09
22 - Projeto Prático - Parte 02
lock

Finalizamos o projeto prático nesse módulo lendo as informações remotamente e manipulando o DOM para incluir cards na página.

Video
Conteúdo da aula
Video - 13:15
23 - Desafio
lock

Agora chegou a hora de colocar em prática os seus conhecimentos obtidos até aqui. 

Qualquer dúvida, sujestão ou reclamação devem ser compartilhadas com o grupo dos alunos no WhatsApp.

Resoluções no GitHub:https://github.com/CodDev2018/DominandoOJavaScript

Bons estudos!

Pdf
Conteúdo da aula
PDF - 127 KB
Módulo 10 - Backend - Parte I
01 - Introdução
lock
Video
Conteúdo da aula
Video - 00:35
02 - MongoDB
lock
03 - NodeJS e HTTP
lock
Video
Conteúdo da aula
Video - 6:46
04 - MVC
lock
Video
Conteúdo da aula
Video - 2:45
05 - Iniciando com o ExpressJS
lock
Video
Conteúdo da aula
Video - 5:32
06 - Template EJS
lock
Video
Conteúdo da aula
Video - 6:24
07 - Mongoose
lock

Site do MongooseJS: https://mongoosejs.com/

Video
Conteúdo da aula
Video - 10:02
08 - Listando dados na view
lock

Vamos criar nosso primeiro CRUD:

Create (Criar)

Read (Ler)

Update (Atualizar)

Delete (Excluir)

Video
Conteúdo da aula
Video - 9:01
09 - Criando formulário
lock
Video
Conteúdo da aula
Video - 8:31
10 - Salvando produto
lock

Create (Criar)

Read (Ler)

Update (Atualizar)

Delete (Excluir)

Video
Conteúdo da aula
Video - 6:50
11 - Editando produto
lock

Create (Criar)

Read (Ler)

Update (Atualizar)

Delete (Excluir)

Video
Conteúdo da aula
Video - 10:25
12 - Excluindo produto
lock

Create (Criar)

Read (Ler)

Update (Atualizar)

Delete (Excluir)

Video
Conteúdo da aula
Video - 9:37
13 - Organizando Rotas e Models
lock
Video
Conteúdo da aula
Video - 5:20
14 - Model da Venda
lock
Video
Conteúdo da aula
Video - 3:30
15 - Criando rotas e tela de vendas
lock
Video
Conteúdo da aula
Video - 7:54
16 - Sobreposição de rotas
lock
Video
Conteúdo da aula
Video - 7:11
17 - Mostrando dados da venda
lock
Video
Conteúdo da aula
Video - 16:02
18 - Criando API para busca de produtos
lock
Video
Conteúdo da aula
Video - 6:23
19 - Listando produtos na página de vendas
lock
Video
Conteúdo da aula
Video - 15:11
20 - Incluindo item na venda
lock
Video
Conteúdo da aula
Video - 9:10
21 - Utilizando Populate do Mongoose
lock
Video
Conteúdo da aula
Video - 2:23
22 - Excluindo item da venda e considerações finais
lock
Video
Conteúdo da aula
Video - 10:01
23 - Desafio
lock

Agora chegou a hora de colocar em prática os seus conhecimentos obtidos até aqui. 

Qualquer dúvida, sujestão ou reclamação devem ser compartilhadas com o grupo dos alunos no WhatsApp.

Resoluções no GitHub: https://github.com/CodDev2018/DominandoOJavaScript

Bons estudos!

Pdf
Conteúdo da aula
PDF - 80,7 KB
Módulo 11 - Backend - Parte II - Bugs, Erros e Testes
01 - Introdução
lock

Nesse módulo vamos falar sobre bugs, tratamento de erros e testes automatizados.

Video
Conteúdo da aula
Video - 1:03
02 - Bugs, Strict Mode e JSDoc
lock

Vamos bater um papo sobre bugs e veremos como deixar o código JavaScript menos propenço a bugs.

Video
Conteúdo da aula
Video - 10:45
03 - Throw Error e Try Catch
lock

Veremos agora como funciona o tratamento de excessões em JavaScript.

Video
Conteúdo da aula
Video - 8:38
04 - Error Handler do Express e Log com Winston
lock

O ExpressJS tem os seus tratadores default de erro, mas podemos criar nosso próprios tratadores para dar uma resposta formatada ao usuário.

Video
Conteúdo da aula
Video - 14:23
05 - Erro em funções assíncronas
lock

Quando o erro ocorre em funções assincronar o ExpressJS não consegue capturar o erro automaticamente. Veremos como fazer para que o ExpressJS trate esses erros dentro de chamadas assíncronas.

Video
Conteúdo da aula
Video - 5:39
06 - Template de Erro
lock

Criando tela e erro no projeto ExpressJS

Video
Conteúdo da aula
Video - 6:16
07 - Organizando templates
lock

Essa aula abre um parenteses no assunto bugs e teste para organizar os templates do projeto.

Video
Conteúdo da aula
Video - 8:55
08 - Configurando Testes com Jest
lock

Configurando os testes no projeto ExpressJs com a API Jest do Facebook.

Video
Conteúdo da aula
Video - 15:57
09 - Configurando Banco de Dados para Teste
lock

Vamos separar o bando dedados de desenvolvimento do banco de dados utilizado nos testes automatizados.

Video
Conteúdo da aula
Video - 8:12
10 - Testando rota /api/produtos
lock

Finalmente escrevendo o primeiro teste para verificar se os produtos são listados corretamente.

Video
Conteúdo da aula
Video - 7:16
11 - Testando rota /produtos
lock

Agora testando uma rota que recebe dados via método POST do http.

Video
Conteúdo da aula
Video - 4:18
12 - Cobertura de testes
lock

Verificando o relatório de cobertura dos testes.

Video
Conteúdo da aula
Video - 3:04
13 - Considerações Finais
lock
Módulo 12 - Backend - Parte III - Assincronismo
01 - Introdução
lock

Veremos as diferentes formar de tratar o assincronismo dentro do JavaScript e terminaremos o projeto prático do agragador de notícias.

Video
Conteúdo da aula
Video - 00:40
02 - Assincronismo
lock

Comparativo entre programação síncrona e assíncrona.

Video
Conteúdo da aula
Video - 7:54
03 - Callback
lock

Entendendo o callback com a função jQuery.ajax. jQuery.ajax: https://api.jquery.com/jQuery.ajax/

Video
Conteúdo da aula
Video - 9:05
04 - Promise
lock

Utilizando o fetch para chamar recursos remotos.

Video
Conteúdo da aula
Video - 5:20
05 - Criando Promise
lock

Entendendo como podemos criar uma promise e como ela funciona.

Video
Conteúdo da aula
Video - 7:30
06 - Promise All
lock

Resolvendo várias promise ao mesmo tempo com o Promise.all https://developers.google.com/web/fundamentals/primers/promises

Video
Conteúdo da aula
Video - 5:54
07 - Funções Assincronas
lock

Utilizando o recurso de funções assincronia para simplificar o trabalho com promise. https://developers.google.com/web/fundamentals/primers/async-functions

Video
Conteúdo da aula
Video - 8:40
08 - Criando módulo Open Graph Reader
lock

Melhorando o código e preparando o projeto do open graph para ser uma dependência em outros projetos. https://github.com/CodDev2018/OpenGraphReader

Video
Conteúdo da aula
Video - 16:09
09 - Criando projeto CodDev News
lock

Criando o projeto com NodeJS, ExpressJS e MongoDB, como vimos anteriormente. https://github.com/CodDev2018/CodDevNews

Video
Conteúdo da aula
Video - 22:26
10 - Criando tarefa agendada
lock

Agendando a tarefa de leitura das notícias.

Video
Conteúdo da aula
Video - 11:19
11 - Mostrando dados na página web
lock

Listando os dados vindos do serviço no layout que já havíamos criado anteriormente.

Video
Conteúdo da aula
Video - 6:35
12 - Criando manifest_json
lock

Primeiro passo para transformar o CodDev News em um PWA.

https://app-manifest.firebaseapp.com/

Video
Conteúdo da aula
Video - 3:21
13 - Criando Service Worker e testando o PWA
lock

Criando o Service Worker e testando o PWA com o Lighthouse.

Video
Conteúdo da aula
Video - 9:24
14 - Considerações Finais
lock

Revisando o que vimos nesse módulo e comentando sobre os próximos módulos.

Video
Conteúdo da aula
Video - 2:17
Módulo 13 - Chat com NodeJS, VueJS e Socket.io
01 - Introdução
lock

Nesse módulo criaremos junstos um Chat em tempo real com NodeJS, ExpressJS, MongoDB, VueJS e Socket.io.

Video
Conteúdo da aula
Video - 00:58
02 - Apresentação do Stack
lock
03 - Configurando projeto do Back-end
lock
Video
Conteúdo da aula
Video - 13:40
04 - Criando modelo de usuários
lock
Video
Conteúdo da aula
Video - 14:44
05 - Criando modelo de canais
lock
Video
Conteúdo da aula
Video - 17:20
06 - Criando serviços de registro de usuário
lock

A extenção correta é o Azure Cosmos DB (ms-azuretools.vscode-cosmosdbPreview)

Video
Conteúdo da aula
Video - 15:13
07 - Criando serviços de autenticação de usuario
lock
Video
Conteúdo da aula
Video - 11:44
08 - Instalando Vue-CLI e criando projeto VueJS
lock
Video
Conteúdo da aula
Video - 14:33
09 - Configurando rotas e criando layout
lock
Video
Conteúdo da aula
Video - 19:50
10 - Criando Tela de Registros
lock
Video
Conteúdo da aula
Video - 21:35
11 - Criando Tela de Login
lock
Video
Conteúdo da aula
Video - 18:54
12 - Criando Tela Listagem dos Canais
lock
Video
Conteúdo da aula
Video - 27:33
13 - Criando Tela do Canal
lock
Video
Conteúdo da aula
Video - 25:14
14 - Criando Serviços de Listagem e Envio das mensagens
lock
Video
Conteúdo da aula
Video - 9:27
15 - Listando e enviando mensagens na tela do canal
lock
Video
Conteúdo da aula
Video - 18:31
16 - Instalando o Socket.io
lock
Video
Conteúdo da aula
Video - 20:59
17 - Resolvendo bugs da tela de bate-papo
lock
Video
Conteúdo da aula
Video - 22:29
18 - Considerações Finais
lock
Video
Conteúdo da aula
Video - 4:14
Bônus: Lives
Live Dominando o JavaScript
lock

Primeira live do curso Dominando o JavaScript, aberto para todos. Irei falar sobre configuração de ambiente do NodeJS, declaração de variáveis, tirar dúvidas dos alunos do curso e no também abrirei para dúvidas de quem mais estiver acompanhando. Site do curso: https://coddev-cursos.coursify.me (Tem um curso de "grátis" lá, da um click pra ver).

Video
Conteúdo da aula
Video - 1:11:01
JavaScript: Vanilla vs Frameworks
lock

Nessa live vou discutir sobre o que é melhor, aprender JavaScript puro ou partir logo para os frameworks? Também vou falar sobre o Projeto USD e responder dúvidas sobre o JavaScript dos alunos do Curso Dominando o JavaScript e a quem mais possa se interessar. 

Video
Conteúdo da aula
Video - 1:22:07
Live PWA - Dominando o JavaScript
lock

Live sobre Progressive Web Apps. 

Video
Conteúdo da aula
Video - 1:15:54

Sobre o curso

Esse curso é destinado a quem já é programador ou para quem nunca programou e deseja aprender a desenvolver suas aplicações utilizando a linguagem em maior evidência no mundo atualmente: o JavaScript.

O curso foca nos frameworks ExpressJS e VueJS, Com uma abordagem profunda da linguagem, a ideia aqui é que você adquira um conhecimento amplo e sólido da linguagem antes de se aventurar por caminhos mais complexos como Angular, React, ElectronJS, Ionic. Mesmo assim, depois deste curso, será muito mais fácil para quem deseja se aprofundar em outros frameworks.

A metodologia é diferente, além de te ensinar o que você precisa saber sobre a linguagem JavaScript, vou te ensinar a estudar programação. Ao final deste curso você vai ter a mentalidade que um programador precisa para ser bem sucedido na sua carreira como funcionário, freelancer ou empreendedor.

Para aprender você precisa querer e o curso vai te inspirar a fazer isso! Por mais complexo que seja, aprender a programar deve ser divertido e gratificante, por isso vou fornecer o melhor conteúdo que acumulei em anos de estudo, pesquisa e trabalho de forma resumida e didática e vou ser o seu tutor e incentivador para que você não desista e obtenha êxito em se tornar um desenvolvedor JavaScript.

Todo módulo do curso tem desafios para que, além de ver videoaulas, você coloque em prática as teorias vistas e aprenda que você só aprende a programar programando, dando os seus pulos!

Além disso, tem um grupo no WhatsApp somente de alunos deste curso, monitorado por mim, focados em discutir dúvidas do curso e tudo mais relacionado ao JavaScript, que vai servir como um excelente network para você que está começando.

Programadores profissionais não ficam desempregados, cada vez é maior a demanda por profissionais de TI e você está esperando o que para dar o primeiro passo em direção ao seu sonho de ser um programador profissional?

Venha aprender com pessoas de todos os cantos do Brasil que tem os mesmos e objetivos que você.

Saiba mais

Conheça o(a) professor(a)

Paulo Bezerra

JavaScript Full Stack Developer

Formado em 2007 em Análise de Sistemas pela UFGD, atua desde de então na área de Desenvolvimento de Softwares e como Professor lecionando as disciplinas de programação com foco principal o desenvolvimento web. Tem conhecimento de diversas tecnologias e ferramentas entre quais: Java, Delphi, PHP, HTML5, CSS, JavaScript, Banco de dados, entre outros. Atualmente é Analista de TI na UFMS e fundador do blog CodDev.

Depoimentos

"O conteúdo foi de extrema importância principalmente para quem não sabia nada sobre criação de páginas html e o conteúdo do canal sobre dúvidas também foi bem interessante (Depoimento dado pelo WhatsApp sobre curso gratuito fornecido no blog)."

Thumb default

"Estava perdido e sem saber por onde começar á aprender, ao conhecer o canal CODDEV, tive a oportunidade de receber o apoio que necessitava e uma ótima orientação e disponibilidade para sancionar todas as minhas duvidas que tive. O Curso O Método Jedi foi muito bom, esse padawan aguarda ansioso para os próximos ensinamentos do nosso mestre Jedi. May the force ne with you (Depoimento dado pelo WhatsApp sobre curso gratuito fornecido no blog)."

Thumb default

CodDev Cursos

Por aplicativos modernos com JavaScript
Tecnologia
Tec coursify