# Go - Complete Course on Go (GoLang)

Master the Go language from scratch: variables, functions, structs, maps, interfaces, goroutines, and error handling.

Rating: 4.8 out of 5 (34 ratings)

341 students  
Created by [Bogdan Stashchuk  300K Students Worldwide  MBA, PhD](https://www.udemy.com/user/bogdanstashchuk/)  
Last updated 3/2026  
English

## What you'll learn

- Learn how to install Go, set up VS Code, and write your first programs while compiling and formatting code according to Go best practices.
- Understand variables, constants, and types; learn to use Printf, grasp static typing, and default values.
- Master functions, arrays, slices, maps, structs, interfaces, and pointers including closures, methods, and passing by reference.
- Learn how to handle errors, use panic and recover, and write concurrent code using goroutines, channels, and wait groups.

## This course includes:

- 25.5 hours on-demand video
- 2 articles
- 1 downloadable resource
- Access on mobile and TV
- Full lifetime access
- Closed captions
- Certificate of completion

## Course content

16 sections • 132 lectures • 25h 15m total length

### Introduction to Go
4 lectures • 3min
- Welcome and Tips
- Course Project Files

### Installing Go and Go Commands
5 lectures • 13min
- Intro
- Installing Go
- Go Commands
- Installing Visual Studio Code Editor
- Configuring VS Code for Go

### Go Basics
8 lectures • 1hr 2min
- Intro
- main Function and main Package
- fmt Package and Println Function
- Compiling Go Programs
- Formatting Go Code
- External Packages for Go Applications
- Creating a Module and Using External Packages
- Summary of First Go Program

### Variables and Basic Types
14 lectures • 1hr 43min
- Intro
- Preparing to Discuss Variables in Go
- Declaring and Assigning Variables
- Adding Another File with main Function
- Resolving Multiple main Function Error
- Different Ways to Declare Variables
- Using Printf to Format Strings
- Determining Variable Types
- Reassigning Variable Values
- Static Typing in Go
- Declaring Variables Separately
- Default Zero Values for Variables
- Strong Typing in Go
- Declaring Multiple Variables in One Line

### Constants
5 lectures • 49min
- Intro
- Constants in Go
- Constants and Type Adaptation
- Grouping Variables and Constants
- Summary of Variables in Go

### Functions
12 lectures • 2hr 35min
- Intro
- Preparing to Discuss Functions in Go
- Creating and Calling Functions
- Function Parameters and Arguments
- Multiple Parameters in Functions
- Returning Values from Functions
- Using Result of One Function in Another
- Returning Multiple Values from Function
- Named Return Values
- Named Function Literals
- Closures in Functions
- Summary of Functions in Go

### Pointers
6 lectures • 1hr 33min
- Intro
- Using Pointers to Get Memory Addresses
- Changing Memory Values with Pointers
- Functions Without Pointers
- Functions With Pointers
- Summary of Pointers in Go

### Arrays and Slices
11 lectures • 2hr 39min
- Intro
- Creating Arrays
- Assigning Arrays and len Function
- Creating Slice from Array
- Relationship Between Array and Slice
- Different Ways to Create Slices
- Adding Elements to Slice and cap Function
- Exceeding Maximum Size in Slice
- Removing Elements from Slice
- Iterating with for Loop
- Summary of Arrays and Slices

### Conditionals: if and switch
7 lectures • 1hr 6min
- Intro
- if Statement
- if else Statement
- if else if Statement
- Nested if and Combining Conditions
- Initializers in if Statements
- switch Statement

### Loops: for and for-range
7 lectures • 1hr 18min
- Intro
- for Loop with Counter
- for Loop with Condition
- Infinite Loop with break and continue
- for range Loop
- Using break and continue in for range
- Summary of if, switch, and for

## Requirements

- Basic knowledge of working with a computer, installing software, and navigating the file system
- A desire to learn a modern programming language and apply it with practical examples
- No prior programming experience required - everything is explained from scratch

## Description

The Go programming language (or Golang), developed by Google, is rapidly growing in popularity thanks to its simplicity, high performance, and built-in support for concurrent execution. This course is designed for anyone who wants to learn Go from scratch and start building reliable, scalable, and efficient programs.

We begin by installing Go and setting up the development environment in Visual Studio Code. You’ll learn how to work with packages, write basic programs, compile and format your code. We’ll dive into variables, basic types, constants, and functions including closures and named return values.

Next, you’ll explore pointers, arrays, slices, conditional statements, and loops. As we move into more advanced topics, you’ll learn how to work with maps and structs, including their specific behaviors and differences. Special attention is given to interfaces and how they are implemented - an essential concept that makes Go a powerful language for development.

A large part of the course focuses on error handling: from simple error checks to advanced use of panic, recover, and creating custom error types. We conclude with an in-depth look at goroutines, channels, and synchronization - enabling you to write concurrent applications with confidence.

The course follows a “from simple to complex” approach, filled with real-world examples, exercises, and hands-on practice. You’ll not only understand how Go works but also learn how to apply your knowledge to practical coding tasks.
