
Fala, fala Gopher! Beleza?
O objetivo dessa imersão é ensinar, de maneira prática, como desenvolver projetos escaláveis e prontos para produção, utilizando as melhores práticas de mercado.
Ao final, você terá três projetos completos em seu portfólio (uma API, um Worker e um CLI) com testes unitários, fuzzy teste e CI configurado com GitHub Actions prontos para serem apresentados para recrutadores.
Sobre a imersão
O programa completo tem duração de aproximadamente 3 meses e meio. Você terá acesso à:
- Mais de 300 vídeos com aulas teóricas e práticas;
- Grupo de estudos no Discord;
- Tirar dúvidas direto com professor, via Discord;
- 1:1 com o professor ao final do curso.

Módulos

GO 101
No início, você irá aprender tudo sobre a linguagem Go, Orientação a Objetos e Arquitetura de Software.
- Aula 1 – O que são variáveis
- Aula 2 – Tipos de dados (parte 01)
- Aula 3 – Tipos de dados (parte 02)
- Aula 4 – Trabalhando com variáveis em Go
- Aula 5 – Trabalhando com variáveis em Go
- Aula 6 – A diferença entre arrays e slices
- Aula 7 – O que são ponteiros
- Aula 8- A função new
- Aula 9 – Escopo das variáveis
- Aula 1 – O que são comandos condicionais
- Aula 2 – Comando if/else em Go
- Aula 3 – O comando switch/case
- Aula 4 – Validando múltiplas condições
- Aula 1 – O que é looping
- Aula 2 – Como fazer looping em Go
- Aula 3 – Formas de iterar um slice em Go
- Aula 4 – Iterando um map
- Aula 1 – O que são funções e qual sua finalidade
- Aula 2 – Criando a primeira função
- Aula 3 – Passando parâmetros para função
- Aula 4 – A diferença entre valor e ponteiro
- Aula 5 – Retornando o resultado da função
- Aula 6 – Funções com múltiplos retornos
- Aula 7 – Retornando erros customizados
- Aula 8 – Como adiar a execução de uma função
- Aula 1 – O que são packages
- Aula 2 – Visibilidade das funções, structs e variáveis
- Aula 3 – Criando um package
- Aula 4 – Utilizando funções de um package
- Aula 1 – O que é orientação a objetos
- Aula 2 – O que são classes
- Aula 3 – A diferença entre classe, objeto e instância
- Aula 4 – Entendendo métodos
- Aula 5 – Como funciona herança
- Aula 6 – Os tipos de visibilidade
- Aula 7 – Encapsulamento de um objeto
- Aula 8 – O que é polimorfismo
- Aula 9 – Para que servem as Interfaces
- Aula 10 – OO aplicado ao Golang
- Aula 11 – Criando a primeira “classe”
- Aula 12 – Extendendo uma classe
- Aula 13 – Trabalhando com interfaces
- Aula 1 – O que é arquitetura de software
- Aula 2 – Client-Server
- Aula 3 – REpresentational State Transfer (REST)
- Aula 4 – Domain Driven Design (DDD)
- Aula 5 – Microservices
- Aula 6 – Component-based
- Aula 7 – Layered
- Aula 8 – Publish-subscribe
Trabalhando com variáveis em Go
Entendendo métodos

Banco de dados
Vamos ensinar tudo sobre banco de dados relacionais e suas diferenças com NoSQL.
- Aula 1 – Introdução a banco de dados
- Aula 2 – Componentes de um banco relacional
- Aula 3 – Diferença entre relacional e NoSQL
- Aula 4 – O que são chaves
- Aula 5 – Quais são os tipos de relacionamentos
- Aula 6 – A linguagem SQL
- Aula 7 – Criando o primeiro banco de dados
- Aula 8 – Criando tabelas
- Aula 9 – Criando uma tabela relacional
- Aula 10 – Gerenciando dados em uma tabela
- Aula 11 – Como filtrar dados de uma tabela
- Aula 12 – Importando dados de um arquivo .sql
- Aula 13 – Conhecendo os tipos de JOIN
- Aula 14 – Selecionando dados em tabelas relacionais
O que são chaves

Projeto prático
Iremos planejar, implementar e debugar uma API, CLI e um worker. Utilizando as melhores práticas de mercado.
- Aula 1 – Como planejar um projeto de software
- Aula 2 – Escolhendo as tecnologias
- Aula 3 – Desenhando a arquitetura do software
- Aula 4 – Desenhando o banco de dados
- Aula 5 – Criando scripts do banco de dados
- Aula 6 – Criando o repositório no GitHub
- Aula 7 – Preparando o ambiente de desenvolvimento
- Aula 8 – Aplicando os scripts do banco de dados
- Aula 1 – O que são Workers
- Aula 2 – O que são sistemas de fila
- Aula 3 – Definindo responsabilidade da aplicação
- Aula 4 – Planejando os packages da aplicação
- Aula 5 – Definindo estrutura da mensagem
- Aula 6 – Implementando Queue
- Aula 7 – Criando struct base do RabbitMQ
- Aula 8 – Implementando métodos para RabbitMQ
- Aula 9 – Data Transfer Object (DTO)
- Aula 10 – Desenvolvendo struct do Bucket
- Aula 11 – Criando struct para AWS S3
- Aula 12 – Fazendo download do arquivo
- Aula 13 – Fazendo upload do arquivo
- Aula 14 – Removendo arquivo do bucket
- Aula 15 – Implementando o worker
- Aula 1 – O que é uma API?
- Aula 2 – Planejando organização dos packages
- Aula 3 – Implementando package database
- Aula 4 – Definindo struct User
- Aula 5 – Implementando método SetPassword
- Aula 6 – Implementando método Validate
- Aula 7 – Definindo Handler
- Aula 8 – Implementando Insert User
- Aula 9 – Implementando Handler Create
- Aula 10 – Atualizando usuário no banco de dados
- Aula 11 – Endpoint Delete
- Aula 12 – Recuperando um único usuário
- Aula 13 – Listando usuários
- Aula 14 – Definindo struct Folder
- Aula 15 – Definindo Handler
- Aula 16 – Implementando criação de pastas
- Aula 17 – Atualizando nome da pasta
- Aula 18 – Definindo struct File
- Aula 19 – Listando os arquivos
- Aula 20 – Atualizando o arquivo
- Aula 21 – Endpoint Delete
- Aula 22 – Obtendo uma pasta
- Aula 23 – Listando conteúdo de uma pasta
- Aula 24 – Finalizando Get e Delete
- Aula 25 – Obtendo pasta raiz
- Aula 26 – Atualizando nome do arquivo
- Aula 27 – Novo arquivo
- Aula 28 – Upload de arquivo
- Aula 29 – Removendo um arquivo
- Aula 30 – Testando Insert
- Aula 31 – Testando Delete
- Aula 32 – Testando Get
- Aula 33 – Testando List
- Aula 34 – Testando Update
- Aula 35 – Testando Create Folder
- Aula 36 – Testando Get Folder
- Aula 37 – Testando List Folders
- Aula 38 – Refatorando Files
- Aula 39 – Testando POST
- Aula 40 – Testando PUT
- Aula 41 – Testando GET
- Aula 42 – Testando DELETE
- Aula 43 – Review do desafio
- Aula 44 – Testando Upload
- Aula 45 – Implementando buckettest
- Aula 46 – Implementando queuetest
- Aula 47 – Executando teste upload
- Aula 48 – Adicionando Testify Suite
- Aula 49 – Review do desafi
- Aula 50 – O que é coverage?
- Aula 51 – Adicionando teste case no TestDeleteHTTP
- Aula 52 – Review do desafio
- Aula 53 – Sistema de autenticação
- Aula 54 – Package auth
- Aula 55 – Implementando criação do token
- Aula 56 – Autenticando o User
- Aula 57 – Protegendo endpoints
- Aula 58 – Resolução do desafio
- Aula 59 – Implementando entrada da aplicação
- Aula 1 – Planejando organização dos packages
- Aula 2 – Criando package de comunicação
- Aula 3 – Comando para autenticação
- Aula 4 – Implementando autenticação
- Aula 5 – Lendo cache do token
- Aula 6 – Comando para criação de pasta
- Aula 7 – Listando conteúdo de uma pasta
- Aula 8 – Atualizando os dados de uma pasta
- Aula 9 – Removendo uma pasta
- Aula 10 – Revisão do desafio
- Aula 11 – Implementando main.go
- Aula 1 – Build das aplicações
- Aula 2 – Configurando ambiente
- Aula 3 – Criando usuário
- Aula 4 – Autenticação e package users
- Aula 5 – Package folders
- Aula 6 – Upload de arquivo raw
- Aula 7 – Executando o Worker
- Aula 8 – Listagem da pasta e package Files
Desenhando a arquitetura do software
Upload de arquivo

Containers e Kubernetes
Agora que temos uma aplicação pronta, chegou a hora de aprender como colocá-la em produção.
Você irá aprender o que são containers, como o kubernetes funciona, e como subir sua aplicação no kubernetes.
- Aula 1 – Containers, como chegamos até aqui
- Aula 2 – O que são containers
- Aula 3 – Instalando sistema de containers
- Aula 4 – Executando um container
- Aula 5 – Criando um container
- Aula 6 – Multi step build
- Aula 7 – Implementando um container em Go
- Aula 8 – Comandos úteis
- Aula 9 – Docker compose
- Aula 10 – Conclusão
Conteúdo planejado:
- Aula 1 – O que é Kubernetes
- Aula 2 – Arquitetura de um cluster Kubernetes
- Aula 3 – Os vários tipos de objetos Kubernetes
- Aula 4 – Como os objetos “conversam” entre si
- Aula 5 – Criando primeiro manifesto
- Aula 6 – Adicionando ConfigMap
- Aula 7 – Criando Secrets
- Aula 8 – Configurando Deployment para API
- Aula 9 – Adicionando Service para API
- Aula 10 – Configurando Deployment para Worker
- Aula 11 – O que é HELM?
- Aula 12 – Criando um template de HELM
- Aula 13 – Convertendo os manifestos para HELM Chart
- Aula 14 – Adicionando um Ingress
Criando um container
Arquitetura de um cluster Kubernetes

Fontend com Angular
Para fechar com chave de ouro, nesse módulo vamos aprender tudo sobre o framework Angular.
Também vamos planejar e implementar uma interface para a aplicação que criamos durante o módulo do projeto prático.
Conteúdo planejado:
- Aula 1 – O que Angular
- Aula 2 – Estrutura de um projeto Angular
- Aula 3 – O que são componentes
- Aula 4 – O que são serviços
- Aula 5 – O que são diretivas
- Aula 6 – O que são módulos
- Aula 7 – O que é lazy loading
- Aula 8 – Forms vs Reactive Forms
Conteúdo planejado:
- Aula 1 – Iniciando projeto e adicionando dependências
- Aula 2 – Criando o primeiro módulo
- Aula 3 – Configurando os environments
- Aula 4 – Criando component UserCreate
- Aula 5 – Criando tela para cadastro
- Aula 6 – Dependências e rotas
- Aula 7 – Criando primeiro user
- Aula 8 – Implementando rota para login
- Aula 9 – Adicionando módulo Resources
- Aula 10 – Implementando Service Resources
- Aula 11 – Implementando ResourcesListComponent
- Aula 12 – Listando os recursos no component
- Aula 13 – Implementando um Interceptor
- Aula 14 – Implementando um Guard
- Aula 15 – Listando os recursos
- Aula 16 – Adicionando link para outras pastas
- Aula 17 – O componente “nova pasta”
- Aula 18 – Criando uma nova pasta
- Aula 19 – O componente “upload”
- Aula 20 – Implementando o Service Upload
- Aula 21 – Deletando resources
- Aula 22 – Instalando Angular Material
- Aula 23 – Ajustando as tabelas e ações
- Aula 24 – Adicionando sidenav e toolbar
- Aula 25 – Movendo botões para Sidenav
Forms vs Reactive Forms
Ajustando as tabelas e ações
🧪 Em Desenvolvimento 🥽

Domain-Driven Design
Nesse módulo você aprenderá todos os conceitos do Domain-Driven Design, também conhecido como DDD.
Depois vamos ver como aplicá-los no Go. Por fim, vamos refatorar nosso projeto prático utilizando DDD.

Terraform
Muito além da documentação, aqui vamos ensinar como utilizar o HCL (linguagem do terraform) ao máximo.
Com os conceitos em mente, vamos criar o ambiente cloud para nosso hospedar nosso projeto prático.

gRPC
Pra começar, você irá aprender o que é e como funciona o Remote Procedure Call (RPC).
Logo após entender o protocolo por debaixo do gRPC, vamos implementar esse framework em uma aplicação.
Empresas
Abaixo você pode conferir a lista com algumas empresas onde alunos da imersão trabalham.
Acesso às aulas
Como a gravação das aulas está em andamento, os alunos que comprarem AGORA o curso, ganharão acesso VITALÍCIO aos conteúdos.
Isso mesmo, o acesso ao conteúdo do curso é VITALÍCIO!!!
Qual o valor do investimento?
de R$ 2.627,80
por apenas 10x deR$ 99,00
ou R$ 990,00 à vista
💰 Garantias
ACESSO VITALÍCIO
Você terá acesso a todos os módulos da imersão pelo resto da sua vida.

RISCO ZERO!
Por qualquer motivo, se você se arrepender de ter comprado o curso, até 7 dias após sua compra, devolvemos 100% do seu dinheiro.

Compartilhe isso:
- Clique para compartilhar no Twitter(abre em nova janela)
- Clique para compartilhar no Facebook(abre em nova janela)
- Clique para compartilhar no LinkedIn(abre em nova janela)
- Clique para compartilhar no Telegram(abre em nova janela)
- Clique para compartilhar no WhatsApp(abre em nova janela)
- Clique para enviar um link por e-mail para um amigo(abre em nova janela)