Um bom curso Golang gratuito não precisa começar com promessa exagerada nem terminar em certificado vazio. O que faz alguém aprender Go de verdade é uma sequência simples: entender a linguagem, escrever código todo dia, construir uma API pequena, testar, conectar em banco, empacotar com Docker e ler documentação oficial sem medo.
Esta trilha foi pensada para quem quer aprender Go em português e chegar a um nível útil para backend, DevOps, plataforma ou vagas júnior/pleno. Ela usa os guias do Golang Brasil como base, aponta a documentação certa e organiza os próximos passos em uma ordem prática. Se você quer apenas uma visão geral da linguagem, comece pelo Go tutorial em português. Se quer seguir uma sequência de estudo como curso, fique nesta página e avance módulo por módulo.
A proposta é direta: em vez de assistir horas de vídeo passivamente, você vai escrever programas pequenos desde o primeiro dia. Go recompensa prática. A linguagem tem poucas palavras-chave, formatação automática, compilador rápido, biblioteca padrão forte e uma cultura que valoriza código legível. Isso torna o aprendizado mais objetivo do que em stacks cheias de frameworks obrigatórios.
Para quem este curso de Golang faz sentido
Esta trilha serve para quatro perfis:
- Quem já programa e quer migrar para Go: desenvolvedores Python, Java, JavaScript, PHP, Ruby, C# ou Kotlin que querem aprender uma linguagem forte para backend, infraestrutura e sistemas distribuídos.
- Quem está começando no backend: pessoas que já sabem lógica básica e querem construir APIs, CLIs, workers e serviços pequenos com uma stack enxuta.
- Quem trabalha com DevOps ou plataforma: profissionais que usam Docker, Kubernetes, Terraform, Prometheus ou ferramentas de linha de comando e querem entender por que tanto software de infraestrutura é escrito em Go.
- Quem mira vagas Go no Brasil: estudantes e devs em transição que querem montar base para entrevistas, portfólio e leitura de código real.
Se você nunca programou, ainda dá para começar por Go, mas avance mais devagar. Antes de entrar em concorrência, banco de dados e Docker, garanta que você entende variáveis, funções, tipos, laços, condicionais e erros.
Pré-requisitos mínimos
Você não precisa comprar curso, assinar plataforma ou instalar um framework grande. Para seguir a trilha, basta:
- um editor de código, como VS Code, GoLand ou Neovim;
- terminal básico;
- Go instalado na máquina;
- Git para versionar os exercícios;
- curiosidade para ler mensagens de erro com calma.
Comece pelo guia de primeiros passos com Go. Ele cobre instalação, go version, go run, go build e o primeiro programa. Depois leia Go para iniciantes para fixar a ideia de pacote, função main, imports e execução local.
Módulo 1: fundamentos da linguagem
O primeiro módulo deve responder uma pergunta: “consigo escrever um programa Go pequeno sem copiar tudo?”
Estude nesta ordem:
- variáveis com
vare:=; - tipos básicos:
string,int,float64,bool; - funções com retorno simples e múltiplo;
if,foreswitch;- arrays, slices e maps;
- structs e métodos;
- ponteiros na prática, sem teoria excessiva.
A melhor forma de treinar é criar programas de terminal. Faça uma calculadora simples, um conversor de temperatura, um contador de palavras, um gerador de senha e um parser de CSV pequeno. Não tente aprender tudo da linguagem antes de escrever código. Em Go, os conceitos aparecem melhor quando você compila e corrige erros reais.
Use também a cheat sheet de sintaxe Go como cola rápida. Ela é útil para revisar sintaxe sem interromper o fluxo de prática.
Módulo 2: módulos, pacotes e organização
Depois dos fundamentos, aprenda como um projeto Go é organizado. O comando go mod init cria um módulo; go mod tidy limpa dependências; go test ./... roda testes; go fmt ./... formata tudo.
Leia o guia de Go Modules e pratique criando um repositório próprio. Separe uma função em outro pacote, importe esse pacote no main e escreva um teste simples. O objetivo não é criar arquitetura sofisticada. É entender import path, módulo, pacote, função exportada e dependência externa.
Uma regra boa para iniciantes: comece simples. Não crie pastas domain, infra, application, ports e adapters no primeiro exercício. Em Go, uma estrutura pequena e clara vence uma arquitetura copiada de outro ecossistema.
Módulo 3: erros e leitura de documentação
Go trata erro como valor. Isso parece repetitivo no começo, mas deixa o fluxo explícito:
arquivo, err := os.Open("dados.csv")
if err != nil {
return fmt.Errorf("abrir arquivo: %w", err)
}
defer arquivo.Close()
Estude error, fmt.Errorf, %w, errors.Is e errors.As. Depois leia o guia de tratamento de erros em Go. Aprenda também a consultar a documentação Go em português para usar pkg.go.dev, go doc e go help.
Este módulo é importante porque a maioria dos problemas reais não vem da sintaxe. Vem de entender biblioteca, contrato de função, erro retornado e comportamento de pacote.
Módulo 4: API REST com Go
Quando os fundamentos estiverem confortáveis, construa uma API HTTP. Comece com a biblioteca padrão: net/http, handlers, rotas simples, JSON e status codes. Depois, se quiser produtividade com roteamento e middleware, veja Gin ou Chi.
Siga o guia de API REST com Go e implemente:
GET /health;GET /tarefas;POST /tarefas;GET /tarefas/{id};PUT /tarefas/{id};DELETE /tarefas/{id}.
No começo, use memória. Depois conecte com PostgreSQL no módulo seguinte. O ponto é entender request, response, JSON, validação e separação mínima entre handler e regra de negócio.
Módulo 5: PostgreSQL e dados reais
Backend sem banco vira exercício incompleto. Use PostgreSQL para persistir dados, aprender migrations, conexão, contexto, timeout e queries parametrizadas.
Leia Go com PostgreSQL. Crie uma tabela tarefas, escreva migrations e substitua o armazenamento em memória da API por operações no banco. Evite concatenar SQL com dados do usuário. Use parâmetros. Teste erro de conexão, registro não encontrado e validação de entrada.
Neste ponto, você já terá um projeto de portfólio mais útil do que dezenas de exercícios isolados: uma API Go com banco real.
Módulo 6: testes, benchmarks e confiança
Go tem ferramenta de teste integrada. Você não precisa instalar um ecossistema inteiro para começar. Aprenda testing, testes de tabela, httptest, mocks pequenos por interface e benchmarks.
Siga Testes em Go e o guia de table-driven tests. Escreva testes para validação, handlers HTTP e camada de dados quando possível. Não busque 100% de cobertura por vaidade. Busque confiança para alterar o código sem medo.
Um bom marco é conseguir rodar:
go fmt ./...
go test ./...
go vet ./...
antes de cada commit.
Módulo 7: Docker, configuração e deploy
Quando sua API estiver funcionando, empacote com Docker. Go combina muito bem com imagem multi-stage: compila em uma etapa e roda um binário pequeno em outra.
Leia Go com Docker e crie:
Dockerfilemulti-stage;docker-compose.ymlcom API e PostgreSQL;- variáveis de ambiente para porta e conexão;
- healthcheck simples;
- README com comandos de execução.
Esse módulo aproxima seu estudo de produção. Vagas de Go raramente pedem apenas sintaxe. Elas pedem serviço rodando, container, logs, banco e entendimento de deploy.
Módulo 8: concorrência sem exagero
Go é famoso por goroutines e channels, mas concorrência deve entrar depois dos fundamentos. Primeiro entenda funções, erros, API, banco e testes. Depois avance para goroutines, channels, select, context e sync.WaitGroup.
Leia Concorrência em Go e depois o tutorial de worker pool em Go. Um bom exercício é criar um worker que processa tarefas pendentes do banco em paralelo, com limite de workers e cancelamento por contexto.
A regra: não use goroutine para parecer avançado. Use para controlar trabalho concorrente com limite, observabilidade e encerramento correto.
Projeto final do curso
O projeto final recomendado é uma API de tarefas, finanças pessoais, biblioteca, agenda de estudos ou controle de candidaturas. O domínio importa menos que a qualidade técnica. Inclua:
- API REST em Go;
- PostgreSQL;
- migrations;
- testes de handlers e regras;
- Docker Compose;
- logs com
slog; - configuração por variável de ambiente;
- README com instruções;
- pelo menos uma rotina concorrente simples, como job de limpeza ou processamento assíncrono.
Se quiser conectar estudo com mercado, transforme o projeto em uma ferramenta de busca de vagas: salve vagas, status da candidatura, empresa, stack, salário e data de follow-up. Depois leia os guias de primeira vaga Go no Brasil, currículo para desenvolvedor Go e salários Go no Brasil.
Roteiro de 8 semanas
Uma sugestão realista:
| Semana | Foco | Entrega |
|---|---|---|
| 1 | Instalação, sintaxe, funções | 5 programas pequenos |
| 2 | Slices, maps, structs, erros | CLI simples com arquivos |
| 3 | Módulos, pacotes, documentação | Biblioteca pequena testada |
| 4 | HTTP e JSON | API em memória |
| 5 | PostgreSQL | API persistente |
| 6 | Testes e refatoração | go test ./... confiável |
| 7 | Docker e configuração | Projeto rodando com Compose |
| 8 | Concorrência e README | Projeto final publicável |
Se você já programa, pode condensar em duas ou três semanas. Se está começando, transforme cada semana em duas.
O que estudar depois
Depois deste curso Golang gratuito, avance por interesse:
- APIs profissionais: autenticação, rate limit, paginação e OpenAPI;
- observabilidade: logs, métricas e tracing;
- mensageria: RabbitMQ, Kafka, NATS ou SQS;
- gRPC: contratos fortes entre serviços;
- Kubernetes: deploy de serviços Go em produção;
- performance: profiling, benchmarks e pprof;
- arquitetura: simplicidade, interfaces pequenas e limites claros.
O caminho completo está no roadmap Go 2026. Para comparar Go com outras escolhas, veja Go vs Python, Go vs Node.js e Go vs Java.
Conclusão
Aprender Go não exige um curso caro. Exige sequência, prática e projetos que saem do tutorial. Se você seguir esta trilha, escrever código todo dia e terminar uma API com banco, testes e Docker, já terá base para ler projetos reais, contribuir em ferramentas internas e disputar vagas que pedem Golang no Brasil.
Comece pequeno: instale Go, rode o primeiro programa, crie um módulo e faça o primeiro teste passar. Depois repita. Go foi feita para reduzir cerimônia. Use isso a seu favor.