Public Sector

We've had the pleasure of working with UK and overseas central and local government departments, including Healthcare (NHS and Foundation Trusts), Defence, Education (Universities and colleges), many of the main Civil Service departments, Emergency Services; also public-owned corporations including the BBC, Bank of England, Ordnance Survey, and regulatory bodies such as Ofgem.

We are registered on Crown Commercial Service’s (CCS) Dynamic Purchasing System (RM6219 Training and Learning) and also with numerous tender portals such as Ariba, Coupa and Delta E-Sourcing.

Read more...

Graduate Training Schemes

Framework Training has a strong track record of providing a solid introduction into the working world for technical graduates across myriad industries. We provide the opportunity to learn and gain valuable hands-on experience in a supportive, friendly and sociable training environment.

Attract & retain the brightest new starters

We know it is vital for our clients to invest in the future of their talented grads; not only to provide them with high-quality, professional training essential for their roles, but to embed them within the organisation’s culture and guide them on the right path to a successful career.

After all, your new hires could well be the next leaders and their creative ideas and unique insights are invaluable to your business.

Read more ...

Learning & Development

Our unique portfolio of high-quality technical courses and training programmes are industry-respected. They’re carefully designed so that delegates can seamlessly apply what they’ve learnt back in the workplace. Our team of domain experts, trainers, and support teams know our field — and all things tech — inside out, and we work hard to keep ourselves up to speed with the latest innovations. 

We’re proud to develop and deliver innovative learning solutions that actually work and make a tangible difference to your people and your business, driving through positive lasting change. Our training courses and programmes are human-centred. Everything we do is underpinned by our commitment to continuous improvement and learning and generally making things much better.

Read more...

Corporate & Volume Pricing

Whether you are looking to book multiple places on public scheduled courses (attended remotely or in our training centres in London) or planning private courses for a team within your organisation, we will be happy to discuss preferential pricing which maximise your staff education budget.

Enquire today about:

  • Training programme pricing models  

  • Multi-course voucher schemes

Read more...

Custom Learning Paths

We understand that your team training needs don't always fit into a "one size fits all" mould, and we're very happy to explore ways in which we can tailor a bespoke learning path to fit your learning needs.

Find out about how we can customise everything from short overviews, intensive workshops, and wider training programmes that give you coverage of the most relevant topics based on what your staff need to excel in their roles.

Read more...

Go Programming Training Course

Learn to build high-performance applications with Go (Golang)

Book or reserve a space

About the course

Looking to master a modern language built for scalability and performance? Our Go (Golang) Programming Training Course is your practical starting point.

Through engaging, instructor-led sessions, you'll gain a solid understanding of Go's core principles and learn how to apply functional, object-based, and powerful concurrency patterns.

This course is specifically designed to provide you with the essential foundation needed to excel in developing Go-based web applications, robust services, and distributed microservice systems, making you a valuable asset in today's fast-paced tech landscape.

Instructor-led online and in-house face-to-face options are available - as part of a wider customised training programme, or as a standalone workshop, on-site at your offices or at one of many flexible meeting spaces in the UK and around the World.

    • Master the fundamentals of the Go (Golang) programming language, including its syntax, data types, and core concepts.
    • Write and execute basic Go programs, understanding the structure and flow of Go code.
    • Declare and manipulate variables, constants, and pointers effectively in Go.
    • Implement control flow structures such as if, switch, and for loops to create dynamic Go programs.
    • Work proficiently with Go's built-in data types, including numbers, arrays, slices, and maps.
    • Define and utilise functions with varying parameters, return values, and understand concepts like closures and recursion in Go.
    • Apply object-based programming principles by defining and working with structs in Go.
    • Develop concurrent Go applications using goroutines and effectively manage communication and synchronisation with channels and the sync package.
    • Write comprehensive unit tests using Go's built-in testing package.
    • And much more (including optional topics such as web services, database interaction, and advanced concurrency patterns for custom courses).
  • This comprehensive Go (Golang) programming course is ideal for developers who are new to Go or have some experience in other programming languages and want to leverage Go's unique features for building efficient and scalable applications. It will also benefit system administrators and DevOps professionals looking to understand Go for building tooling and infrastructure components.

    Anyone interested in learning a modern, concurrent, and performant language for backend development, cloud-native applications, and more will find this course valuable.

  • To make the most of this hands-on Go training, delegates should ideally have some prior experience with programming concepts in another language (e.g., Python, Java, JavaScript). Familiarity with basic command-line operations will also be beneficial as Go development often involves using the terminal. No prior experience with Go is necessary.

  • This Go programming course is available for private / custom delivery for your team - as an in-house face-to-face workshop at your location of choice, or as online instructor-led training via MS Teams (or your own preferred platform).

    Get in touch to find out how we can deliver tailored training which focuses on your project requirements and learning goals.

  • Welcome and Introductions

    • Meet your instructor

    • Introduce yourself

    • Overview of the Course

    Go Overview and Hello World

    • Go Introduction

    • Go Versions - make sure you're using a supported version

    • Why Go?

    • Installing Go

    • Go Editors and IDEs

    • Visual Studio and Go

    • Hello World in Go

    • Adding Initialization Behaviour

    • Accessing Command Line Arguments

    • Go Programs Consist of

    • Noteworthy Omissions from Go

    Go Programming Core Elements

    • Go Tokens

    • Variables

    • Assignments

    • Short Variable Declarations

    • Arithmetic Operators

    • Constants

    • Pointers

    • Strings

    • fmt.Printf() formatting

    • Relational, Logical and Bitwise operators

    • Operator Precedence

    Flow of Control in Go

    • Relational Operators

    • If statement

      • Using else and else if

      • Nesting if statements

      • Logical Operators

    • Switch Statement

      • expression switch

      • type switch

    • For loops

      • Nested for Loops

      • while style for loops

    • Break, Continue and Goto

    Data Types

    • Go Data Types

    • Numbers

    • Arrays

    • Slices

    • Ranges

    • Maps

    • Containers

      • List and Ring

    Functions

    • Defining Functions

    • Zero, single and multiple parameter functions

    • Returning values

    • Variadic parameter lists

    • Call by Reference

    • Anonymous Functions

    • Defering a Function call

    • Panic and Recover

    • Higher Order Functions

    • Closure

    • Recursion

    Structs: Object-based Programming

    • Struct Introduction

    • Defining a Struct

    • Variables of type struct Person

    • Initializing Structs

    • Comparing Structs

    • Structs are value types

    • Passing Structs to Functions

    • Defining Constructor Functions

    • JSON and Structs

    • Anonymous Structs

    • Adding Behaviour

    Interfaces

    • interface Introduction

    • Defining an interface

    • Creating User Defined Interface

    • Implementing an Interface

    • Using an Interface Type

    • Working with interfaces

    • Built-in Interfaces

      • Stringer and Interface

    • The empty interface: interface {}

    Embedded Types

    • Embedded Type Introduction

    • Embedded Structs

    • Multiple Embedded Structs

    • Embedded Interfaces

    • Multi-Embedded Interfaces

    • Embedded Interfaces in Interfaces

    • Embedded Multi-Interfaces in Interfaces

    • Multi-Embedded Structs and Interfaces

    Error Handling

    • Error Handling Introduction

    • Basics of Error Handling

    • Returning an Error

    • Custom Error Types

    • Handling Errors Idiom

    Packages and Modules

    • Packages

    • Go Packages

    • Installing Packages

    • Importing a Package

    • Defining Packages

    • importing Custom Packages

    • Installing Packages

    • Package Initialization

    • Modules

    Goroutines

    • Why Asynchronous Programming

    • Goroutine Introduction

    • Executing Goroutines

    • Simple Goroutine Example

    • Wait for Goroutine to finish

    • WaitGroup

    Channels

    • Problems with Concurrency

    • Communicating via Channels

    • Channel Hello World

    • Sending Complex messages

    • Channel Buffering

    • Channel Directions

    • Closing Channels

    • Channel Select

    • Range Over Channels

    • Timers

    • Tickers

    Testing

    • Introduction to Go Testing

    • Package testing

    • Test Functions

    • Parametric Tests

    • Benchmark Tests

    • Skipping Tests

    • Test Setup / Shutdown behaviour

    • Verifying Examples

    • Subtests

    RESTful services with Go

    • REST Design Pattern

    • Basic net/http package

    • RESTful API

    • Gorilla/mux

    • PathPrefix Subrouter

    • Handling Path Parameters

    • Handling Query Parameters

    • Return objects as JSON

    • Posting Data

    • Organising Your Code

    ==============
    Optional Modules
    ==============

    These optional topics may be included in a customised course - for instance if you want to swap topics from the above syllabus, or to expand your Go training programme.

    Files and Paths

    • File Information

    • Checking if a file exists

    • Obtaining a file reference

    • File Permissions

    • Reading Files

    • Writing Data to Files

    • Renaming and Deleting files

    • Random Access Files

    • Paths

    • Directories

    • Temporary Files & Directories

    Further Channels

    • Channel Synchronization

    • Timeouts

    • Non-Blocking Channel Operations

    • Worker pools

    • Rate Limiting

    Concurrency using the sync Package

    • Once

    • Atomic Counters

    • Mutual Exclusion Locks

    • Locker, Mutex / RWMutex

    • Pool

    • Stateful Goroutines

    • Cond

    Go and Relational Databases

    • Examples of Relational Databases

    • MySQL

    • Connecting to an SQL Database

    • Query a Database

    • Insert into the Database

    • Update a row in the Database

    • Delete a row in the Database

    • Transaction Handling

    Go and MongoDB

    • NoSQL Databases

    • SQL v NoSQL

    • Examples of NoSQL Databases

    • MongoDB

    • Installing mongodb driver

    • Connecting to MongoDB database

    • Create a Collection

    • Inserting into a Collection

    • Find Documents in Collections

    • Update Documents

    • Delete Documents

Trusted by

CERN organisation logo

Public Courses Dates and Rates

November 24th, 2025 - £1995
February 23rd, 2026 - £1995
May 18th, 2026 - £1995
August 24th, 2026 - £1995
November 30th, 2026 - £1995

All prices are excluding VAT.

If our published dates don't work for you, please get in touch — we are happy to explore scheduling additional courses.

Book or reserve a space

Secure or reserve a space on a public scheduled course date.

Related courses