Choose your language
Go Programming Course
More than 2 million students worldwide

Go Programming Course

Master Go from the ground up and build the skills to write fast, reliable, production-ready software. This course covers everything from core syntax and concurrency to REST APIs, database integration, and DevOps deployment. Whether you're new to Go or levelling up from another language, you'll finish with real, job-ready expertise.

Dedika for businesses

What you will learn:

You will start with Go's syntax, type system, and tooling, then advance through functions, interfaces, and core data structures. The course covers Go's concurrency model using goroutines, channels, and the context package to build correct, high-performance programs. You will learn to write comprehensive tests, benchmark code, and debug with professional tools. Later sections cover building REST APIs, integrating databases, and deploying containerized services to Kubernetes. You will also apply generics, advanced concurrency patterns, and professional engineering practices used in production Go teams.

How you study in practice Go Programming Course

How you practise Go Programming Course

For companies looking to train their teams

With Dedika for businesses, the course includes exercises and examples tailored to your company and its specific needs.

Click here

Course content

8 Chapters • 40 LessonsDuration between 4 and 360 hours (you decide)

Chapter 1See details

Go Language Foundations

  • Lesson 1 • Variables, Types, and Constants

    Introduces static typing, type inference, and constant declarations. Grounds students in Go's strict type system before complex data structures appear.

  • Lesson 2 • Operators and Expressions

    Covers arithmetic, comparison, logical, and bitwise operators. Prepares students to write meaningful conditional and computational logic.

  • Lesson 3 • Basic Syntax and Program Structure

    Covers packages, imports, the main function, and statement syntax. Provides the structural skeleton for all Go programs written in the course.

  • Lesson 4 • Control Flow Structures

    Teaches if, for, switch, and defer statements as Go's complete control toolkit. Enables students to write programs with branching and iterative logic.

  • Lesson 5 • Go Environment Setup

    Install the Go toolchain and configure a productive workspace. Establishes the technical baseline every subsequent chapter depends on.

Chapter 2See details

Functions and Error Handling

  • Lesson 1 • Recursion and Function Values

    Explores recursive algorithms and functions as first-class values. Prepares students for higher-order patterns and callback-based designs.

  • Lesson 2 • Panic, Recover, and Defer Patterns

    Covers panic propagation, recovery mechanics, and defer-based cleanup. Equips students to handle unexpected failures without crashing production services.

  • Lesson 3 • Variadic Functions and Closures

    Introduces variadic parameters and function literals that capture scope. Enables flexible APIs and functional programming patterns in Go.

  • Lesson 4 • Defining and Calling Functions

    Covers function signatures, parameters, and return values. Establishes the reusable code unit that all later abstractions build upon.

  • Lesson 5 • The Error Type and Conventions

    Teaches Go's error interface, idiomatic error returns, and sentinel errors. Builds the foundation for robust error propagation across the codebase.

Chapter 3See details

Core Data Structures

  • Lesson 1 • Slice Patterns and Pitfalls

    Addresses copy semantics, shared backing arrays, and common bugs. Prevents memory and correctness issues that arise in real slice-heavy code.

  • Lesson 2 • Structs and Struct Tags

    Introduces struct declaration, field access, embedding, and tags. Provides the custom type foundation for domain modeling and serialization.

  • Lesson 3 • Arrays and Slices

    Distinguishes fixed arrays from dynamic slices and covers slice internals. Provides the workhorse collection type used in virtually every Go program.

  • Lesson 4 • Maps

    Covers map creation, CRUD operations, and iteration semantics. Enables key-value data modeling essential for configuration, caching, and lookup tables.

  • Lesson 5 • Pointers and Memory Addressing

    Explains pointer syntax, dereferencing, and when to use pointers vs. values. Connects memory semantics to struct mutation and performance trade-offs.

Chapter 4See details

Interfaces and Type System

  • Lesson 1 • Methods on Types

    Teaches value and pointer receivers, method expressions, and promotion. Connects struct definitions to behavioral contracts expressed through interfaces.

  • Lesson 2 • Type Assertions and Type Switches

    Covers safe and unsafe type assertions and the type switch construct. Enables runtime type inspection needed for generic-style dispatch patterns.

  • Lesson 3 • Defining and Implementing Interfaces

    Covers interface declaration, implicit satisfaction, and method sets. Establishes the polymorphism mechanism central to idiomatic Go design.

  • Lesson 4 • Interface Composition and Design Patterns

    Explores composing small interfaces and applying dependency injection. Produces loosely coupled, testable code architectures.

  • Lesson 5 • Standard Library Interfaces

    Examines io.Reader, io.Writer, Stringer, and error as design models. Shows how satisfying standard interfaces integrates custom types with the ecosystem.

Chapter 5See details

Packages, Modules, and Tooling

  • Lesson 1 • Documentation and Code Generation

    Teaches godoc conventions, example functions, and go generate. Produces self-documenting packages and automates repetitive code tasks.

  • Lesson 2 • Linting and Code Quality Tools

    Introduces staticcheck, golangci-lint, and formatting enforcement. Embeds professional quality standards into every project from day one.

  • Lesson 3 • Package Organisation Principles

    Covers naming conventions, exported identifiers, and internal packages. Establishes the structural discipline that keeps large codebases navigable.

  • Lesson 4 • Build, Test, and Vet Commands

    Covers go build, go test, go vet, and build tags. Integrates quality checks into the development workflow from the start.

  • Lesson 5 • Go Modules and Dependency Management

    Teaches go.mod, go.sum, versioning, and the module proxy. Enables reproducible builds and safe third-party dependency integration.

Chapter 6See details

Concurrency with Goroutines and Channels

  • Lesson 1 • Select Statement and Timeouts

    Teaches the select statement for multiplexing channel operations. Enables non-blocking I/O patterns and timeout-controlled concurrent workflows.

  • Lesson 2 • Sync Primitives: Mutex and WaitGroup

    Introduces sync.Mutex, sync.RWMutex, and sync.WaitGroup for shared state. Complements channel-based design with low-level synchronisation tools.

  • Lesson 3 • Goroutines and the Go Scheduler

    Explains goroutine creation, the M:N scheduler, and goroutine lifecycle. Provides the conceptual model needed to reason about concurrent execution.

  • Lesson 4 • Race Detection and Concurrency Patterns

    Uses the race detector and covers pipelines, fan-out, and worker pools. Produces verified, production-grade concurrent architectures.

  • Lesson 5 • Channels: Communication and Synchronisation

    Covers unbuffered and buffered channels, direction types, and closing. Establishes safe data passing between goroutines without shared memory.

Chapter 7See details

The Standard Library in Depth

  • Lesson 1 • I/O Primitives and File Operations

    Covers io, bufio, and os packages for reading and writing data. Provides the I/O foundation for file processing and stream-based programs.

  • Lesson 2 • HTTP Client and Server Basics

    Introduces net/http for building servers and making HTTP requests. Provides the networking foundation expanded in the applied chapter ahead.

  • Lesson 3 • Strings, Bytes, and Unicode

    Teaches strings, bytes, unicode, and strconv packages for text processing. Enables correct handling of UTF-8 data in international applications.

  • Lesson 4 • Time, Dates, and Timers

    Explores the time package for parsing, formatting, and scheduling. Enables time-aware logic in APIs, jobs, and event-driven systems.

  • Lesson 5 • Encoding and Serialisation

    Covers encoding/json, encoding/xml, and encoding/csv for data exchange. Connects Go programs to external systems through standard serialisation formats.

Chapter 8See details

Testing, Benchmarking, and Debugging

  • Lesson 1 • Unit Testing with the testing Package

    Covers test functions, table-driven tests, and subtests. Establishes the core testing discipline applied to every package in the course.

  • Lesson 2 • Integration and End-to-End Testing

    Covers httptest, in-memory databases, and test containers. Validates system behaviour across component boundaries in realistic conditions.

  • Lesson 3 • Benchmarking and Profiling

    Uses Benchmark functions, pprof, and trace to find bottlenecks. Produces data-driven performance improvements grounded in measurement.

  • Lesson 4 • Debugging Techniques and Tools

    Covers Delve debugger, log-based tracing, and runtime diagnostics. Equips students to locate and fix defects efficiently in any Go program.

  • Lesson 5 • Mocking and Test Doubles

    Teaches interface-based mocking, fake implementations, and test fixtures. Enables isolated unit tests that do not depend on external systems.

Certification

Your valid completion certificate

This course is for you:

  • Backend developer: wants to adopt Go for faster, more efficient server-side work.

  • Python or JavaScript developer: ready to move into statically typed, compiled languages.

  • Computer science student: building a portfolio with a language valued in the job market.

  • DevOps engineer: needs to read, modify, or write Go tooling and automation scripts.

  • Career changer: transitioning into software engineering with a focus on modern backend stacks.

  • Hobbyist programmer: curious about systems-level thinking without the complexity of C or C++.

What our students say

Your lessons are perfect. I purchased the one-year package and finally have the opportunity to follow various topics of interest without needing to change platforms... I'm grateful for everything you do, I've already recommended you to other people...
Giulio Carlo
Giulio CarloDigital Marketing Student
I like how the lessons are straight to the point and how I can change chapters and skip content I don't need.
Mariana Ferres
Mariana FerresPhotography Student
I like the content and the way videos are presented and transcribed, which speeds up the process!
Luciana Alvarenga
Luciana AlvarengaNail Design Student
The platform is fast, simple to use. The diversity of content and complementary videos really help with learning.
André Felipe
André FelipePrompt Engineering Student

Top qualifications

FAQ

Who is Dedika?

Is the certificate valid in South Africa?

Are the courses free?

What is the course workload?

What are the courses like?

How do the courses work?

What is the duration of the courses?

What is the cost or price of the courses?

What is an EAD or online course and how does it work?

PDF Course