Search our courses
Training

This Go Programming Introduction course, updated to Edition 2025 (1.24) is a course designed for developers eager to explore the Go programming language, from its fundamental building blocks to advanced patterns for large-scale applications. Whether you're a seasoned programmer looking to add Go to your skillset or a newer developer aiming to build a solid foundation in a modern, high-performance language, this course will guide you through all you need to know to get started with Go.

Go is a programming language that stands out from the crowd by providing means to improve on both program performance as well as
developer productivity. It has it's roots in the Google and is the defacto language to go to for creating Cloud Native coding.

 

What You Will Learn

  • Master Go Fundamentals: Begin with core concepts such as datatypes, control structures, and functions, which lay the groundwork for writing efficient, reliable Go code. Emphasis is on writing Idiomatic Go
  •  Explore Data Structures and Concurrency: Gain hands-on experience with Go’s unique data structures, such as slices, maps, and structs, and delve into Go’s powerful concurrency model using goroutines and channels.
  • Learn Advanced Project Patterns and Architectures: As you progress, you’ll discover how to organize large Go projects, follow test-driven development (TDD) practices, implement dependencyinjection, and apply advanced design patterns like hexagonal architecture.
  •  Interoperate with Other Languages: Learn to bridge Go with languages like C, expanding Go’s utility in multi-language environments and  enhancing your ability to integrate Go with legacy code or external libraries.
  • Expand into New Frontiers with WebAssembly (WASM): Understand how to compile Go code to WebAssembly, enabling you to run Go applications in web environments and explore exciting new possibilities with Go-WASM interoperability.

By the end of the course, you will be equipped with the skills to confidently write, structure, and optimize Go applications, making you
proficient in a language known for its simplicity, efficiency, and versatility in developing modern software solutions.

 

 

Go Programming Introduction

Price €1,950.00

Course Code

GTGLANG

Duration

4 Days

Course Fee

€1,950.00

Accreditation

N/A

Target Audience

  • Software developers who want to learn Go to build efficient, scalable applications.
  • Backend engineers seeking an introduction to a language designed for speed, simplicity and powerful concurrency.
  • Systems and DevOps engineers who want to leverage Go for tooling, scripting, or infrastructure management.
  • Students and new programmers who are ready to expand their programming expertise with a language tailored for today’s development needs.

 

Attendee Requirements

  • Prior experience in other programming languages like Python, Javascript, C, C++ or Java is considered helpful.
  • The course will provide foundational knowledge and gradually introduce more advanced topics, ensuring accessibility for beginners and depth for more experienced programmers.

 


Monday 19 May - Thursday 22 May (4 days) 09.30 - 17.00
 Live Online GMT +01:00

Expand all

Course Description

This Go Programming Introduction course, updated to Edition 2025 (1.24) is a course designed for developers eager to explore the Go programming language, from its fundamental building blocks to advanced patterns for large-scale applications. Whether you're a seasoned programmer looking to add Go to your skillset or a newer developer aiming to build a solid foundation in a modern, high-performance language, this course will guide you through all you need to know to get started with Go.

Go is a programming language that stands out from the crowd by providing means to improve on both program performance as well as
developer productivity. It has it's roots in the Google and is the defacto language to go to for creating Cloud Native coding.

 

What You Will Learn

  • Master Go Fundamentals: Begin with core concepts such as datatypes, control structures, and functions, which lay the groundwork for writing efficient, reliable Go code. Emphasis is on writing Idiomatic Go
  •  Explore Data Structures and Concurrency: Gain hands-on experience with Go’s unique data structures, such as slices, maps, and structs, and delve into Go’s powerful concurrency model using goroutines and channels.
  • Learn Advanced Project Patterns and Architectures: As you progress, you’ll discover how to organize large Go projects, follow test-driven development (TDD) practices, implement dependencyinjection, and apply advanced design patterns like hexagonal architecture.
  •  Interoperate with Other Languages: Learn to bridge Go with languages like C, expanding Go’s utility in multi-language environments and  enhancing your ability to integrate Go with legacy code or external libraries.
  • Expand into New Frontiers with WebAssembly (WASM): Understand how to compile Go code to WebAssembly, enabling you to run Go applications in web environments and explore exciting new possibilities with Go-WASM interoperability.

By the end of the course, you will be equipped with the skills to confidently write, structure, and optimize Go applications, making you
proficient in a language known for its simplicity, efficiency, and versatility in developing modern software solutions.

 

 

Course Outline

Day 1: Fundamentals of Go Programming

Part 1: Course Overview & Go Basics

  •      Introduction to the course and objectives
  •      Overview of Go language and its philosophy
  •      Setting up the Go environment (installation and configuration)
  •      Choosing and installing development tools
  •      Introduction to Go packages

Part 2: First Steps in Go

  •      Writing your first Go program
  •      Understanding Go’s building blocks
  •      Reserved keywords and naming conventions
  •      Exploring the Go standard library
  •      Variables and constants (declaration, lifetime, and scope)
  •      Understanding pointers in Go

Part 3: Basic Data Types and Constants

  •      Overview of Go’s basic data types
  •      Handling numbers, strings, and booleans
  •      UTF-8 and Go’s foundation in Unicode
  •      Working with strings in Go
  •      Introduction to the iota constant generator

Part 4: Working with Collections

  •      Understanding complex data types in Go
  •      Arrays and slices: creation and manipulation
  •      Maps: key-value storage in Go

Part 5: Structs in Go

  •      Understanding structs and their usage
  •      Literal structs and handling data with structs
  •      Struct embedding for composition
  •      Working with anonymous fields in structs

Part 6: Functions in Go

  •      Declaring and calling functions
  •      Using variadic and recursive functions
  •      Understanding function objects and anonymous functions
  •      Working with deferred functions for cleanup

 

Day 2: Packages, Modules, and Error Handling

Part 1: Packages and Code Organization

  •      Understanding packages in Go
  •      Types of packages and their usage

Part 2: Modules in Go

  •      Introduction to Go modules and their history
  •      Semantic versioning principles
  •      Creating and managing your own modules

Part 3: Testing, benchmarking and profiling in Go

  •      Testing in Go
  •      Benchmarking in Go
  •      Profiling in Go
  •      Profile Guided Optimization

Part 4: Error Handling

  •      Effective error handling in Go
  •      Using panic and recover
  •      Error handling patterns and best practices

 

Day 3: OOP, Generics and GO Standard Library

Part 1: Object-Oriented Programming in Go

  •      Introduction to Object-Oriented principles in Go
  •      Go’s approach to OOP and what it lacks
  •      Structs and pointer receivers as alternatives
  •      Data hiding and encapsulation

Part 2: Interfaces and Contracts

  •      Creating and using interfaces to enforce contracts
  •      Interface satisfaction and type assertions
  •      Using interface switches for flexible code

Part 3: Generics in Go

  •      Concept of Generics
  •      Using Generics in the std. library

Part 4: I/O and Networking

  •      File operations and file handling in Go
  •      JSON serialization and marshalling
  •      Building an HTTP server in Go
  •      Introduction to building RESTful APIs

Part 5: Templating in Go

  •      Working with Go templating for dynamic content

Part 6: Defensive programming in Go

  •      What to look out for while programming in Go
  •      How to enforce security

 

Day 4: Advanced Topics in Go

Part 1: Iterators in Go

  •      Concept of Iterators
  •      Iterators in the Go std. library
  •      Writing your own Iterator
  •      Testing Iterators

Part 2: Concurrency in Go

  •      Introduction to concurrency concepts
  •      Using goroutines, waitgroups, and channels
  •      Buffered vs. unbuffered channels
  •      Working with multiple channels and managing data flow
  •      Using mutexes and atomic operations for critical sections
  •      Patterns and best practices for concurrency


Part 3: Test-Driven Development (TDD) in Go

  •      Introduction to TDD principles and practices
  •      Writing tests with Go’s testing package
  •      Structuring test suites and testing for edge cases
  •      Using table-driven tests in Go

Part 4: Dependency Injection and Design Patterns

  •      Introduction to dependency injection concepts
  •      Implementing dependency injection in Go
  •      Common design patterns for Go, including singleton, factory, and adapter
  •      Organizing projects for scalability and maintainability

Part 5: Organizing a Go Project

  •      Structuring a large-scale Go project: packages, modules, and folder structure
  •      Hexagonal architecture (Ports and Adapters)
  •      Managing dependencies with Go modules and vendoring
  •      Code review and refactoring best practices

Part 6: Using GO in containers

  •       Using KO
  •       Setting up a KO project
  •       GO and CI/CD

Part 7: Introduction to WebAssembly

  •      Overview of WebAssembly and its use cases
  •      Why use WebAssembly with Go
  •      Compiling Go to WebAssembly (WASM)
  •      Interacting with JavaScript from WebAssembly Go code
  •      Setting up and testing a basic Go-WASM application in a web environment

 

 

 

 

 

Exam

N/A

Learning Path

There are many courses that might interest you. Here are a few, though if you wish to discuss which of our programmes best suits your current skill level, please feel free to contact us.

 

 

Ways to Attend

•    Join one of our instructor-led live online courses. See our Schedule for details.
•    We can also organise Private team training, and design a programme to suit your exact business requirements. Contact us for more details

Book Now
 
Participant number 1 €1,950.00

Book Now

Required fields

 

 

Technical ICT learning & mentoring services

Private Team Training

Our instructors are specialist consultants with vast real world experience and expertise allowing them to design and deliver client-focused courses for your organisation.

Learn more about our Private Team Training

What Our Clients Say

"Absolutely fantastic training. Thoroughly enjoyed it thanks to our highly enthusiastic tutor.  It wouldn't be an understatement to say that it was the best professional training that I have ever received."

 

Customised Linux with Networking

Live Online -  February 2022

 


“It was very positive. This course was 4 days but covered a semester worth of work if it was done in college. The labs were relevant and delegates were provided the lab/coursebook for further study and practice after the course finished. GuruTeam's course was excellent and provides a deeper understanding of the architecture and how it all works. The hands-on aspect was very helpful as it helped solidify the concepts as I went along."

 

Kubernetes Administration Certification - GTLFK

Live Online September 2024

 

 

 

“The Instructor was very knowledgeable, laid back and very approachable during the course. The environment setup was second to none.  Very easy to jump in and follow along with minimal pre-req setup."

Kubernetes Administration Certification - GTLFK

Onsite May 2024

 

“The experience was complete for me. I like how the training was sequenced - the slides organization, the examples and explanations and then the exercises. Time for exercises and support by the Instructor was great plus answering the questions and going out for answers and coming back with examples as brilliant. I loved how much I refreshed and how I learned and got inspired to improve stuff at work.”

 

Docker - GTDK1

Live Online December 2024

 

“Great instructor, who encouraged active participation. The breakout groups and exercises kept the group engaged and the content relevant to our own products”.

 

Site Reliability Engineering Foundation - GTDSRE

Live Online January 2022

 

 

 

"Intelligence is the ability to avoid doing work, yet
getting the work done"

Linus Torvalds, creator of Linux and GIT

Technical ICT learning & mentoring services

About GuruTeam

GuruTeam is a high-level ICT Learning, Mentoring and Consultancy services company. We specialise in delivering instructor-led on and off-site training in Blockchain, Linux, Cloud, Big Data, DevOps, Kubernetes, Agile, Software & Web Development technologies. View our Testimonials

Download our eBrochure
Our Accreditation Partners
  •  
  •  
  •  

 

Upcoming Courses

Kubernetes Admin

  3rd - 6th June 2025

 Live Online
 GMT +01:00  09:30 - 17:00 hrs

This Kubernetes Administration
Certification training course is
suitable for anyone who wants
to learn  the skills necessary to build and administer a Kubernetes cluster.

 

LEARN MORE

RUST PROGRAMMING INTRODUCTION

   6th - 9th May 2025

 Live Online
 GMT +01:00  09:30 - 17:00 hrs

This Rust Programming Introduction training course will help you understand what Rust applications look like, how to write Rust applications properly, and how to get the most out of the language and its libraries.
 

Learn More

NEW FAST TRACK PYTHON SERIES

April to June 2025

Live Online
GMT +01.00  09:30 - 17:00 hrs

Hit the ground running.....
GuruTeam’s new Python Fast Track series Instructor-led live online training
designed & delivered by industry experts.

Python Fast Track I Comprehensive
Python Fast Track II Expert
Python Fast Track III for Data Science

 

 

 

Learn More

GO PROGRAMMING INTRODUCTION

  19th - 22nd May 2025
  

Live Online
GMT +01:00  09:30 - 17:00 hrs

This Go Programming Introduction training course will help you understand how Go works, and immediately be more productive. If you are building a team using Go, this will be a great opportunity to get your team on the same page and speaking the same language.

Learn More

Newsletter

Stay up to date, receive updates on scheduled dates, new courses, offers, and events.

Subscribe to our Newsletter