Jornada
Aprenda Go (Golang)
Aprenda Go (Golang) do zero com um curso online grátis e interativo. Domine variáveis, condicionais, loops, funções, estruturas de dados e organização de projetos com desafios práticos, projetos reais, dicas de IA e um certificado ao concluir.
20,350+ codders inscritos
Esta jornada inclui
Ajuda de codificação com IA
Lições interativas e práticas
Narração em áudio em todas as lições
Questionários para testar seu conhecimento
Certificado grátis de conclusão
Programa
3 seções284 lições256 desafios1,839 perguntas de quiz01Seção 1
Fundamentos
Construa uma base sólida com conceitos essenciais e habilidades básicasCOMEÇAR A APRENDERIntrodução ao Go
4 lições423- 01O que é Go?Desafio
- 02Hello WorldDesafioQuizÁudio
- 03PrintlnDesafioQuizÁudio
- 04Comentários em GoDesafioQuizÁudio
Variáveis e Tipos de Dados Básicos
10 lições1069- 01O que é uma variávelDesafioQuizÁudio
- 02Inferência de Tipo com `:=`DesafioQuizÁudio
- 03Inteiros (int)DesafioQuizÁudio
- 04Números de Ponto FlutuanteDesafioQuizÁudio
- 05BooleanosDesafioQuizÁudio
- 06StringsDesafioQuizÁudio
- 07Valores ZeroDesafioQuizÁudio
- 08ConstantesDesafioQuizÁudio
- 09Convenções de NomenclaturaDesafioQuizÁudio
- 10Recapitulação - Variáveis e TiposDesafio
Operadores Básicos
7 lições744- 01Operadores AritméticosDesafioQuizÁudio
- 02Operador de DivisãoDesafioQuizÁudio
- 03O Operador MóduloDesafioQuizÁudio
- 04Operador de AtribuiçãoDesafioQuizÁudio
- 05Operadores de Atribuição CompostaDesafioQuizÁudio
- 06Incremento e DecrementoDesafioQuizÁudio
- 07Recapitulação - CálculosDesafio
Operadores de Comparação e Lógicos
7 lições742- 01Operadores de Comparação - Parte 1DesafioQuizÁudio
- 02Operadores de Comparação - Parte 2DesafioQuizÁudio
- 03Operador Lógico ANDDesafioQuizÁudio
- 04Operador Lógico ORDesafioQuizÁudio
- 05Operador Lógico NOTDesafioQuizÁudio
- 06Fundamentos de Precedência de OperadoresDesafioQuizÁudio
- 07Recapitulação - Fazendo ComparaçõesDesafio
Entrada/Saída Básica
5 lições532- 01Saída FormatadaDesafioQuizÁudio
- 02Verbos de FormataçãoDesafioQuizÁudio
- 03Imprimindo TiposDesafioQuizÁudio
- 04Obtendo Entrada Básica do UsuárioDesafioQuizÁudio
- 05Recapitulação - Entrada e SaídaDesafio
Fluxo de Controle: Condicionais
10 lições1069- 01A Instrução `if`DesafioQuizÁudio
- 02A Palavra-chave `else`DesafioQuizÁudio
- 03A Palavra-chave `else if`DesafioQuizÁudio
- 04Sombreamento de Variáveis no `if`DesafioQuizÁudio
- 05Inicializando VariáveisDesafioQuizÁudio
- 06A Instrução `switch`DesafioQuizÁudio
- 07Switch com ExpressõesDesafioQuizÁudio
- 08Switch sem ExpressãoDesafioQuizÁudio
- 09A Palavra-chave `fallthrough`DesafioQuizÁudio
- 10Recapitulação - Tomando DecisõesDesafio
Fluxo de Controle: Loops
7 lições743- 01O Loop `for` ExplicadoDesafioQuizÁudio
- 02Loop For - BásicoDesafioQuizÁudio
- 03Loop For - Apenas CondiçãoDesafioQuizÁudio
- 04A Palavra-chave `break`DesafioQuizÁudio
- 05A Palavra-chave `continue`DesafioQuizÁudio
- 06Loops AninhadosDesafioQuizÁudio
- 07Recapitulação - Repetindo AçõesDesafio
Funções
9 lições962- 01Entendendo FunçõesDesafioQuizÁudio
- 02Declarando uma FunçãoDesafioQuizÁudio
- 03Chamando FunçõesDesafioQuizÁudio
- 04Parâmetros de FunçãoDesafioQuizÁudio
- 05Retornando um Único ValorDesafioQuizÁudio
- 06Retornando Múltiplos ValoresDesafioQuizÁudio
- 07Valores de Retorno NomeadosDesafioQuizÁudio
- 08Fundamentos de Escopo de FunçãoDesafioQuizÁudio
- 09Recapitulação - Criando Código ReutilizávelDesafio
Ponteiros
7 lições644- 01O que é um Ponteiro?QuizÁudio
- 02Declarando Variáveis de PonteiroDesafioQuizÁudio
- 03O Operador de EndereçoDesafioQuizÁudio
- 04Desreferenciando PonteirosDesafioQuizÁudio
- 05Usando Ponteiros em FunçõesDesafioQuizÁudio
- 06Ponteiros NilDesafioQuizÁudio
- 07Recapitulação - Entendendo PonteirosDesafio
Tipos Compostos: Arrays
7 lições650- 01Introdução a ArraysQuizÁudio
- 02Declarando ArraysDesafioQuizÁudio
- 03Inicializando ArraysDesafioQuizÁudio
- 04Acessando Elementos de um ArrayDesafioQuizÁudio
- 05Tamanho do Array com `len`DesafioQuizÁudio
- 06Iterando sobre ArraysDesafioQuizÁudio
- 07Arrays MultidimensionaisDesafioQuizÁudio
Tipos Compostos: Slices
10 lições965- 01Introdução aos SlicesQuizÁudio
- 02Declarando Literais de SliceDesafioQuizÁudio
- 03Criando Slices com `make`DesafioQuizÁudio
- 04Comprimento vs Capacidade de SlicesDesafioQuizÁudio
- 05Acessando Elementos de SlicesDesafioQuizÁudio
- 06Adicionando ElementosDesafioQuizÁudio
- 07Fatiando Slices/Arrays ExistentesDesafioQuizÁudio
- 08Iterando sobre SlicesDesafioQuizÁudio
- 09Copiando SlicesDesafioQuizÁudio
- 10Recapitulação - Listas DinâmicasDesafio
Tipos Compostos: Mapas
10 lições965- 01Introdução a MapasQuizÁudio
- 02Declarando Literais de MapasDesafioQuizÁudio
- 03Criando Mapas com `make`DesafioQuizÁudio
- 04Adicionando e Atualizando Chave-ValorDesafioQuizÁudio
- 05Acessando Valores de MapasDesafioQuizÁudio
- 06Verificando a Existência de ChavesDesafioQuizÁudio
- 07Deletando Entradas de MapasDesafioQuizÁudio
- 08Tamanho do MapaDesafioQuizÁudio
- 09Iterando sobre MapasDesafioQuizÁudio
- 10Recapitulação - Armazenamento Chave-ValorDesafio
Tipos Compostos: Structs
8 lições854- 01Definindo Tipos PersonalizadosDesafioQuizÁudio
- 02Criando Instâncias de StructsDesafioQuizÁudio
- 03Acessando Campos de StructsDesafioQuizÁudio
- 04Ponteiros para StructsDesafioQuizÁudio
- 05Inicializando StructsDesafioQuizÁudio
- 06Structs IncorporadasDesafioQuizÁudio
- 07Structs AnônimasDesafioQuizÁudio
- 08Recapitulação - Estruturas de Dados PersonalizadasDesafio
Tratamento de Erros Básico
8 lições858- 01O Conceito de ErrosDesafioQuizÁudio
- 02A Interface `error`DesafioQuizÁudio
- 03Funções que Retornam ErrosDesafioQuizÁudio
- 04Verificando ErrosDesafioQuizÁudio
- 05Criando Erros SimplesDesafioQuizÁudio
- 06Criando Erros FormatadosDesafioQuizÁudio
- 07Tratamento de Erros BásicoDesafioQuizÁudio
- 08Recapitulação - Lidando com ProblemasDesafio
02Seção 2
Lógica & Fluxo
Domine a programação avançada em Go com foco em estruturas de dados e controle de fluxo. Aprenda a trabalhar com arrays complexos, coleções, tratamento de erros e gerenciamento de tempo.COMEÇAR A APRENDERFluxo de Controle Avançado
5 lições528- 01Switch com `fallthrough`DesafioQuiz
- 02Interrompendo Loops AninhadosDesafioQuiz
- 03Continuando um Loop EspecíficoDesafioQuiz
- 04A Instrução `goto`DesafioQuiz
- 05Recapitulação - Controle de Loop AvançadoDesafio
Structs e Métodos
6 lições439- 01Definindo Métodos em StructsDesafioQuiz
- 02Recebedores de ValorDesafioQuiz
- 03Recebedores de PonteiroDesafioQuiz
- 04Escolhendo RecebedoresQuiz
- 05Métodos vs FunçõesQuiz
- 06Recapitulação - Comportamento de StructsDesafio
Interfaces (O Básico)
8 lições757- 01O que é uma Interface?Quiz
- 02Definindo uma InterfaceDesafioQuiz
- 03Implementando uma InterfaceDesafioQuiz
- 04Usando Tipos de InterfaceDesafioQuiz
- 05Interface VaziaDesafioQuiz
- 06Asserções de TipoDesafioQuiz
- 07Type SwitchDesafioQuiz
- 08Recapitulação - Formas e ComportamentosDesafio
Projeto: Lista de Tarefas Simples
Projeto6 lições1- 01Configuração do ProjetoDesafio
- 02Adicionando uma TarefaProjeto
- 03Visualizando Todas as TarefasProjeto
- 04Concluindo uma TarefaProjeto
- 05Removendo uma TarefaProjeto
- 06Juntando TudoProjeto
Mapas em Profundidade
5 lições432- 01Mapas de StructsDesafioQuiz
- 02Ponteiros como Valores de MapDesafioQuiz
- 03Verificando Mapas NilDesafioQuiz
- 04Comparando MapasQuiz
- 05Recapitulação - Contador de Frequência de PalavrasDesafio
Go Idiomático: Conjuntos
7 lições648- 01O Idioma de Conjuntos em GoQuiz
- 02Criando um ConjuntoDesafioQuiz
- 03Adicionando a um ConjuntoDesafioQuiz
- 04Verificando a Existência de ElementosDesafioQuiz
- 05Removendo de um ConjuntoDesafioQuiz
- 06Iterando sobre um ConjuntoDesafioQuiz
- 07Recapitulação - Nomes de Usuário ÚnicosDesafio
Tratamento de Erros em Profundidade
7 lições650- 01Tipos de Erro PersonalizadosDesafioQuiz
- 02Wrapping de Erros com `%w`DesafioQuiz
- 03Unwrapping com `errors.Is`DesafioQuiz
- 04Unwrapping com `errors.As`DesafioQuiz
- 05Entendendo o `panic`Quiz
- 06Usando o `recover`DesafioQuiz
- 07Recapitulação - Divisão SeguraDesafio
Projeto: Inventário Simples
Projeto6 lições1- 01Visão Geral do ProjetoDesafio
- 02Verificando o EstoqueProjeto
- 03Adicionando um Novo ItemProjeto
- 04Atualizando a Quantidade em EstoqueProjeto
- 05Gerando um RelatórioProjeto
- 06Juntando TudoProjeto
Pacotes e Escopo
7 lições550- 01O que é um Pacote?Quiz
- 02Exportado vs Não ExportadoDesafioQuiz
- 03Criando um Pacote SimplesDesafioQuiz
- 04Aliasing de PacotesDesafioQuiz
- 05O Identificador em Branco `_` Quiz
- 06A função `init`DesafioQuiz
- 07Recapitulação - Construindo um UtilitárioDesafio
Trabalhando com Tempo
8 lições857- 01Obtendo o Horário AtualDesafioQuiz
- 02Criando um Horário EspecíficoDesafioQuiz
- 03Formatando o TempoDesafioQuiz
- 04Parsing de Strings de TempoDesafioQuiz
- 05Duração de TempoDesafioQuiz
- 06Aritmética de TempoDesafioQuiz
- 07Sleep e TickersDesafioQuiz
- 08Recapitulação - Timer SimplesDesafio
Desafios Finais
3 lições3- 01Lista de Contatos BásicaDesafio
- 02Validador de Números SimplesDesafio
- 03Coletor de Itens ÚnicosDesafio
03Seção 3
Programação Orientada a Objetos
Descubra como organizar o código com classes, objetos e estruturas reutilizáveisCOMEÇAR A APRENDERFundamentos de OOP em Go
11 lições1189- 01Arquivos ExternosDesafioQuiz
- 02Go Workspace e MódulosDesafioQuiz
- 03Pacotes e ImportaçõesDesafioQuiz
- 04Nomes Exportados vs Não ExportadosDesafioQuiz
- 05Introdução a OOP em GoDesafioQuiz
- 06Structs como ClassesDesafioQuiz
- 07Definindo Métodos em StructsDesafioQuiz
- 08Recebedores de Ponteiro vs ValorDesafioQuiz
- 09Inicialização de StructsDesafioQuiz
- 10Funções ConstrutorasDesafioQuiz
- 11Recapitulação - Calculadora SimplesDesafio
Mergulho Profundo em Tipos e Structs
7 lições752- 01Tipos Básicos e CompostosDesafioQuiz
- 02Definições de Tipos PersonalizadosDesafioQuiz
- 03Struct TagsDesafioQuiz
- 04Structs AnônimasDesafioQuiz
- 05Structs AninhadasDesafioQuiz
- 06Zero Values e PadrõesDesafioQuiz
- 07Recapitulação - Agenda de ContatosDesafio
Ponteiros e Memória
6 lições644- 01Fundamentos de Ponteiros em GoDesafioQuiz
- 02Ponteiros para StructsDesafioQuiz
- 03Passagem por Valor vs ReferênciaDesafioQuiz
- 04A Função new()DesafioQuiz
- 05Garbage Collection em GoDesafioQuiz
- 06Recapitulação - Construtor de Lista EncadeadaDesafio
Interfaces
9 lições969- 01Introdução a InterfacesDesafioQuiz
- 02Implementação ImplícitaDesafioQuiz
- 03Interface como ContratoDesafioQuiz
- 04Interface Vazia (any)DesafioQuiz
- 05Type AssertionDesafioQuiz
- 06Type SwitchDesafioQuiz
- 07Composição de InterfacesDesafioQuiz
- 08Interfaces Stringer & ErrorDesafioQuiz
- 09Recapitulação - Calculadora de FormasDesafio
Composição em vez de Herança
7 lições749- 01Por que Go não possui HerançaDesafioQuiz
- 02Fundamentos de Incorporação de StructsDesafioQuiz
- 03Promoção de MétodosDesafioQuiz
- 04Incorporando Múltiplas StructsDesafioQuiz
- 05Incorporação vs AgregaçãoDesafioQuiz
- 06Shadowing de Métodos IncorporadosDesafioQuiz
- 07Recapitulação - Hierarquia de FuncionáriosDesafio
Polimorfismo em Go
6 lições643- 01Polimorfismo via InterfacesDesafioQuiz
- 02Duck Typing em GoDesafioQuiz
- 03Regras de Satisfação de InterfaceDesafioQuiz
- 04Coleções PolimórficasDesafioQuiz
- 05Injeção de DependênciaDesafioQuiz
- 06Recapitulação - Processador de PagamentosDesafio
Encapsulamento
5 lições536- 01Campos Exportados vs Não ExportadosDesafioQuiz
- 02Encapsulamento em Nível de PacoteDesafioQuiz
- 03Métodos Getter e SetterDesafioQuiz
- 04Ocultação de Informação em GoDesafioQuiz
- 05Recapitulação - Registros de EstudantesDesafio
Tratamento de Erros e OOP
7 lições754- 01A Interface errorDesafioQuiz
- 02Tipos de Erro PersonalizadosDesafioQuiz
- 03Error Wrapping (fmt.Errorf)DesafioQuiz
- 04Erros SentinelaDesafioQuiz
- 05errors.Is() e errors.As()DesafioQuiz
- 06Panic, Defer e RecoverDesafioQuiz
- 07Recapitulação - File ParserDesafio
Concorrência e OOP
8 lições863- 01Fundamentos de GoroutinesDesafioQuiz
- 02Canais e ComunicaçãoDesafioQuiz
- 03Canais com Buffer vs. Sem BufferDesafioQuiz
- 04Instrução SelectDesafioQuiz
- 05sync.Mutex e sync.RWMutexDesafioQuiz
- 06sync.WaitGroupDesafioQuiz
- 07Design de Structs Thread-SafeDesafioQuiz
- 08Recapitulação - Worker PoolDesafio
Generics (Go 1.18+)
6 lições645- 01Introdução a GenericsDesafioQuiz
- 02Parâmetros de TipoDesafioQuiz
- 03Restrições de TipoDesafioQuiz
- 04Structs GenéricasDesafioQuiz
- 05Solução Alternativa para Métodos GenéricosDesafioQuiz
- 06Recapitulação - Coleção GenéricaDesafio
Biblioteca Padrão & POO
6 lições644- 01io.Reader & io.WriterDesafioQuiz
- 02sort.InterfaceDesafioQuiz
- 03Interface fmt.StringerDesafioQuiz
- 04encoding/json com StructsDesafioQuiz
- 05Interface http.HandlerDesafioQuiz
- 06Recapitulação - Modelos de API RESTDesafio
Conceitos Avançados de OOP
6 lições655- 01Padrão Functional OptionsDesafioQuiz
- 02Padrão Builder em GoDesafioQuiz
- 03Encadeamento de MétodosDesafioQuiz
- 04Type Aliases vs DefiniçõesDesafioQuiz
- 05Fundamentos de ReflectionDesafioQuiz
- 06Visão Geral de Geração de CódigoDesafioQuiz
Padrões de Projeto Parte 1
6 lições651- 01Introdução aos Padrões de ProjetoDesafioQuiz
- 02Padrão SingletonDesafioQuiz
- 03Padrão FactoryDesafioQuiz
- 04Padrão Abstract FactoryDesafioQuiz
- 05Padrão ObserverDesafioQuiz
- 06Padrão StrategyDesafioQuiz
Padrões de Projeto Parte 2
7 lições764- 01Padrão CommandDesafioQuiz
- 02Padrão AdapterDesafioQuiz
- 03Padrão DecoratorDesafioQuiz
- 04Padrão Template MethodDesafioQuiz
- 05Padrão StateDesafioQuiz
- 06Padrão CompositeDesafioQuiz
- 07Middleware como DecoratorDesafioQuiz
Projeto: Gerenciamento de Biblioteca
Projeto7 lições1- 01Visão Geral e Estrutura do ProjetoDesafio
- 02Structs de Livro e UsuárioProjeto
- 03Sistema de EmpréstimosProjeto
- 04Busca com InterfacesProjeto
- 05Camada de Persistência JSONProjeto
- 06Interface CLI de AdministradorProjeto
- 07Testes e IntegraçãoProjeto
Desafios Finais
3 lições3- 01Plataforma de E-LearningDesafio
- 02Sistema BancárioDesafio
- 03Sistema de Personagens de JogoDesafio
Por que aprender Go (Golang) com a Coddy
- Curso de Go (Golang) online e grátis: sem instalação, sem configurar ferramentas e sem barreiras para começar. Abra o navegador e pratique desde a primeira aula.
- Aulas práticas de Go (Golang) que vão além de um tutorial: cada conceito vem com um desafio para escrever código real e aprender fazendo.
- As dicas de IA ajudam quando você trava em um exercício de Go (Golang), mostrando o próximo passo sem entregar a resposta completa.
- Certificado grátis de conclusão para compartilhar no LinkedIn ou adicionar ao currículo como prova de que você completou um curso interativo de Go (Golang).
Perguntas frequentes sobre aprender Go (Golang)
Go (Golang) é fácil de aprender?
Sim, você pode começar com Go (Golang) mesmo sem experiência. A Coddy divide os conceitos em exercícios curtos para você entender a sintaxe, praticar variáveis, condicionais, loops, funções, estruturas de dados e organização de projetos e ganhar confiança aos poucos.
Quanto tempo leva para aprender Go (Golang)?
Os fundamentos de Go (Golang) geralmente podem ser aprendidos em uma ou duas semanas de prática diária. Para criar projetos reais com segurança, reserve de um a três meses, dependendo do seu ritmo.
Onde posso aprender Go (Golang) online grátis?
A Coddy oferece um curso online grátis de Go (Golang) com aulas, desafios de código, quizzes e projetos. Não é preciso instalar nada: tudo funciona no navegador.
Como aprender Go (Golang) rápido?
A forma mais rápida é praticar todos os dias. Na Coddy você alterna explicação curta, exercício imediato e feedback com dicas de IA, passando mais tempo escrevendo Go (Golang) do que assistindo a vídeos longos.
Recebo um certificado de Go (Golang) ao terminar?
Sim. Ao concluir o curso de Go (Golang) na Coddy, você recebe um certificado grátis de conclusão para compartilhar no LinkedIn ou incluir no currículo.
O que posso criar depois de aprender Go (Golang)?
Depois do curso, você poderá criar scripts úteis, pequenos apps, automações, jogos simples e projetos para mostrar no portfólio. Também terá uma base sólida para avançar para tópicos mais profissionais.