Go for Systems Programming Training Course

Course Code



35 hours (usually 5 days including breaks)


  • Basic programming experience in any language
  • Familiarity with the Linux and Unix systems


Go (Golang) is an open source programming language developed at Google. One of Go's popular use cases is Linux and Unix systems programming.

In this instructor-led, live training, participants will learn the fundamentals of systems programming with Go as they step through hands-on exercises exploring the various features of Go.

By the end of this training, participants will be able to:

  • Understand the fundamentals of Go systems programming
  • Set up the Go development environment
  • Write programs in Go
  • Use both the basic and advanced features of Go for Unix and Linux systems programming
  • Understand and use Goroutines
  • Write fast and lightweight code with Go
  • Write low-level networking code with Go


  • Programmers
  • Developers

Format of the course

  • Part lecture, part discussion, exercises and heavy hands-on practice

Course Outline


Understanding Unix Systems Programming

Understanding the Go Programming Language and the Go Architecture

Installing and Configuring the Go Development Environment

Learning the Basics of Go Syntax

Working with Go Packages

Algorithms, Data Structures

How Go Handles Garbage Collection

Dealing with Files and Directories in Go

Implementing File Input and Output Operations in Go

Implementing Error Handling

Identifying and Working with System Files in Go: Log Files, System Files Operations, and Passwords

Working with Unix Processes and Signals in Go

  • Understanding Unix Processes and Signals
  • Process Management
  • Dealing with Unix Signals in Go
  • Using the 'kill' Command
  • Working with Unix Pipes and Sockets in Go
  • Working with Remote Procedure Call (RPC) in Go
  • Programming a Unix Shell in Go

Understanding and Working with Goroutines

  • Learning About Goroutines
  • Using the Sync Go Packages
  • Dealing with Pipelines
  • Using the Go Scheduler
  • Using the 'select' Keyword
  • Working with Signal Channels and Buffered Channels
  • Handling Timeouts
  • Working with Channels of Channels
  • Working with Nil Channels
  • Dealing with Shared Memory
  • Working with the dWC.go Utility

Network Programming in Go

  • Understanding Network Programming
  • Working with the Net Go Standard Package
  • Revisiting Unix Sockets
  • Performing DNS Lookups
  • Developing a Simple TCP Server and a Simple TCP Client
  • Developing a Simple UDP Server and a Simple UDP Client
  • Working with a Concurrent TCP Server


Summary and Conclusion



Related Categories

Related Courses

Course Discounts

Course Discounts Newsletter

We respect the privacy of your email address. We will not pass on or sell your address to others.
You can always change your preferences or unsubscribe completely.

Some of our clients

is growing fast!

We are looking to expand our presence in the Philippines!

As a Business Development Manager you will:

  • expand business in the Philippines
  • recruit local talent (sales, agents, trainers, consultants)
  • recruit local trainers and consultants

We offer:

  • Artificial Intelligence and Big Data systems to support your local operation
  • high-tech automation
  • continuously upgraded course catalogue and content
  • good fun in international team

If you are interested in running a high-tech, high-quality training and consulting business.

Apply now!

This site in other countries/regions