Go
Aprenda Go do inicio ao fim. Comece com pacotes, variaveis e controle de fluxo, depois aprofunde-se em structs, interfaces, concorrencia, testes, servidores HTTP, bancos de dados, generics, profiling e publicacao de binarios reais em producao.
20 lições, em ordem
- 125 min
Olá, Go
Bem-vindo. Se você nunca escreveu código antes, está no lugar certo. Go é uma linguagem de programação, ou seja, um jeito de dar ao computador...
Package mainImportFunc mainFmt.PrintlnGo run - 225 min
Variáveis e Tipos
Na lição anterior você imprimiu um trecho de texto fixo. Programas de verdade precisam guardar coisas que mudam: o nome de um cliente, um preço, se...
Var declarationShort declaration :=IntFloat64StringBool+2 - 330 min
Fluxo de Controle: if e for
Até aqui, todo programa que você escreveu roda de cima para baixo, uma linha depois da outra, sem nenhuma escolha pelo caminho. Programas de verdade...
IfElse ifElseFor loopFor as whileInfinite for+2 - 430 min
Funções
Todo programa que você escreveu até aqui morava dentro de func main(). Isso funciona para uma dúzia de linhas, mas programas de verdade precisam...
Func keywordParametersReturn valuesMultiple return valuesNamed return valuesBlank identifier - 535 min
Slices e Maps
Toda variável que você usou até agora guarda exatamente um valor: um nome, uma idade, um preço. A maioria dos problemas reais envolve um grupo de...
Slice literalAppendLenIndexingRangeMap literal+2 - 635 min
Structs e Pointers
Toda variável que você escreveu até aqui neste curso guarda um valor solto: um número, uma string, um slice. Só que dados de verdade raramente vêm...
Struct definitionField accessZero values for structsPointer types& and * operatorsPointer receivers vs value receivers+1 - 735 min
Methods e Interfaces
A lição anterior ensinou a juntar campos relacionados dentro de uma struct, mas uma struct sozinha só guarda dados, não tem comportamento. Se você...
Method declarationReceiver typesPointer vs value receiversInterface definitionImplicit interface satisfactionSmall interfaces+1 - 835 min
Tratamento de Erros
Você já digitou if err != nil mais de uma vez neste curso sem parar para perguntar o que err é de fato e de onde ele vem. Funções falham o tempo...
Error interfaceFmt.Errorf with %wErrors.IsErrors.AsCustom error typesPanic vs error+1 - 935 min
Modules e Estrutura de Projeto
Todo programa que você escreveu neste curso até agora coube em um único arquivo, executável com um comando só. Projetos Go de verdade quase nunca...
Go mod initGo.mod and go.sumImport pathsPackage vs moduleInternal/ folderCmd/ layout+1 - 1040 min
Projeto Final de CLI Minimalista
Até agora, todo programa que você escreveu tinha as entradas gravadas no próprio código. Se quisesse somar outros números, editava o arquivo e rodava...
Os.ArgsStrconv.AtoiError handling with if err != nilOs.ExitGo buildPutting it together - 1140 min
Um Tour pela Biblioteca Padrão
Existe um momento no aprendizado de qualquer linguagem em que você para de se perguntar como escrever um loop e passa a se perguntar como ler um...
FmtStringsStrconvTimeOsBufio+1 - 1240 min
Testes e Benchmarks
Você escreveu uma função, rodou o programa, viu a resposta certa e seguiu em frente. Uma semana depois você mexe em algo ali perto e a função começa,...
Go testTesting.TTable-driven testsT.Run subtestsTesting.B benchmarks_test.go file naming+1 - 1340 min
Goroutines e Channels
Seu programa precisa baixar vinte arquivos. Escrito do jeito comum, ele baixa o primeiro, espera, baixa o segundo, espera, e assim por diante. Quase...
The go keywordGoroutine lifetimeUnbuffered channelsBuffered channelsSend and receiveRange over channel+1 - 1445 min
Padrões de Concorrência
Goroutines e canais são matéria-prima, como madeira e parafusos. Saber o que eles são não te ensina a montar uma cadeira. Na prática, quase todo...
Select statementContext.Context for cancellationSync.WaitGroupSync.MutexWorker pool patternFan-out fan-in idea - 1535 min
Generics
Você escreve uma função que acha o maior número num slice de int. Depois precisa de uma para float64, então copia e troca duas palavras. Depois de...
Type parameters with [T any]ConstraintsComparableTilde approximation ~intGeneric Map and FilterWhen generics help, when they do not - 1645 min
Servidores HTTP
Na maioria das linguagens, "escrever um serviço web" começa por escolher um framework, e a escolha pesa, porque o framework decide como funciona o...
Net/httpHttp.HandleFuncHttp.ServerJSON responsesRequest routingMiddleware via http.Handler wrapping+1 - 1745 min
Bancos de dados com database/sql
Todo programa que você escreveu até aqui esquece tudo no instante em que termina. Isso está de bom tamanho para uma ferramenta que transforma a...
Database/sql packageDriver importsSql.Open and sql.DB poolExec vs Query vs QueryRowPrepared statementsScanning rows+1 - 1840 min
Desempenho e Criação de Perfis
Em algum momento alguém diz que o serviço está lento, você abre o código e enxerga na hora o laço que só pode ser o culpado. Reescreve, agora está...
Go test -benchPprof CPU and heap profilesEscape analysis with -gcflags=-mAvoiding unnecessary allocationsPreallocating slicesSync.Pool intuition - 1940 min
Padrões de Projeto em Go
Programas crescem. Um arquivo que fazia todo sentido com duzentas linhas vira um lugar onde uma mudança pequena quebra algo três arquivos adiante, e...
Functional options patternRepository patternDependency injection via interfacesContext propagation through call stacksConstructor functions - 2045 min
Implantação e Produção
Existe uma distância entre um programa que roda no seu laptop e um programa que você aceita deixar rodando enquanto dorme. Encurtar essa distância...
CGO_ENABLED=0 static binariesCross-compile with GOOS and GOARCHGraceful shutdown with http.Server and signal.NotifyContextMinimal Dockerfile with scratch or distrolessReading config from environment variables
Aprenda Go no seu idioma
Cada lição, quiz e resposta do tutor aparece no seu idioma. O tutor de IA responde no idioma em que você pergunta.
Roles that use Go
See how hiring teams interview engineers on Go, in production-like environments.
Backend Engineer (Go, Rust, Java)
Hire backend engineers in real services with real databases, real concurrency and real latency budgets. Live or take-home, fully recorded.
See the interviewDistributed Systems Engineer
Hire distributed systems engineers in workspaces with real Kafka, real consensus and real partition tooling. Live or take-home, fully recorded.
See the interviewPlatform Engineer
Hire platform engineers who reduce friction for every team. Real golden-path templates, real internal CLIs, real service onboarding flows. We record every step.
See the interview