Go Programming Course (GoLang) for Experienced Programmers
Hey there! Join our Go Programming Course (GoLang) for Experienced Programmers and level up your skills with hands-on training and advanced
Date and time
Location
Fora - Gridiron Building
1 Pancras Square London N1C 4AG United KingdomRefund Policy
About this event
- Event lasts 7 hours
Go Programming Course (GoLang) for Experienced Programmers
Our instructor-led Go training course offers a practical, hands-on introduction to this widely used programming language. Delegates will leverage their previous experience developing software other languages to learn how to extend their skillset to include the Go programming language. After covering the core of the Go language in the first part of the course (with frequent comparisons to other languages) we will focus on various approaches for using Go to develop web servers, services, microservices, and more.
About the Instructor
The instructor has over 30 years of practical commercial software development experience using a wide variety of languages notably including C, C++, SQL, C#, Java and Python and has worked on many Go migration projects.
Go Programming Course (GoLang) for Experienced Programmers Training Objectives
- Go Fundamentals and core concepts
- Understanding and Using Functions in Go
- Defining and Working with Methods
- Exploring Go Interfaces
- Error Handling the Go Way
- Goroutines and Channels for Concurrency
- Advanced Concurrency concepts
- Packages and Go Build
- Test and Interactive Debugging tools
- Comparing HTTP and JSON with GRPC and PROTOBUF
- Building HTTP based services and integration with external data providers
Go Programming Course (GoLang) for Experienced Programmers Prerequisites
Who should attend
This course is perfect for experienced software developers who need to extend their skills to include the Go programming language.
Prerequisites
Familiarity with at least one modern programming language such as C++, Java, C# or Python, is essential.
Go Programming Course (GoLang) for Experienced Programmers Outline
Course Content
Part 1 :- The Basics (6 sessions)
Welcome and Introductions
● Meet the Tutor and Delegates
● Course Overview
Getting Started with Go
● Key differences with other modern languages and platforms
● Various considerations and approaches for data definition and object orientation
● Compiler and VSCode IDE Setup
● Writing, building and running our first Go ``Hello World`` program
● Key facetrs of typical Go program structure
Core Elements of Go Programming
● Tokens, Variables, and Assignments
● Short Variable Declarations
● Arithmetic Operators and Constants
● Pointers and Strings
● Formatting with fmt.Printf()
● Operators: Relational, Logical, Bitwise, and Precedence
Control Flow in Go
● Relational Operators and Conditional Statements (if, else, else if)
● Switch Statements (Expression and Type Switches)
● Loops (for, Nested Loops, While-Style Loops)
● Break, Continue, and Goto Statements
Data Types in Go
● Overview of Go Data Types
● Working with Numbers, Arrays, Slices, and Maps
o Using Ranges and Containers (Lists, Rings)
Functions in Go
● Defining and Using Functions
● Parameters: Zero, Single, Multiple, and Variadic
● Returning Values
● Call by Reference and Anonymous Functions
● Deferred Function Calls
● Panic and Recover Mechanisms
● Higher-Order Functions and Closures
● Recursion
Structs and Data Oriented Programming
● Introduction to Structs
● Defining and Initializing Structs
● Struct Variables and Comparisons
● Passing Structs to Functions
● Constructor Functions and JSON Serialization
● Anonymous Structs and Adding Behaviour
Part 2 :- Intermediate Go - The Differentiators (2 sesssions)
Error Handling in Go
● Basics of Error Handling
● Creating and Returning Custom Error Types
● Idiomatic Error Handling Patterns
Concurrency in Go
● Introduction to Goroutines and Channels
● Executing and Synchronizing Goroutines
● Advanced concurrency concepts:
o Handling Channel Synchronization, Timeouts, and Range
o Synchronization and Non-Blocking Operations
o Worker Pools and Rate Limiting
o Atomic Counters, Mutex Locks, and Pools
o Stateful Goroutines and Conditional Variables
Interfaces in Go
● Understanding Interfaces
● Defining and Implementing Interfaces
● Using Built-in Interfaces (e.g., Stringer)
● The Empty Interface (interface{})
● Embedded Types and Their Applications
● Thoughts on Go interfaces vs Generics in C# and other languages
Touching on Low-level Programming Concepts (or ``When you are really missing C``)
● Unsafe pointers
● Bitwise operators
● Data alignment and variable sizes
● Calling C from Go
Part 3 :- Development and Build Tooling (1 - 2 sessions)
Packages and Modules
● Working with Packages: Importing, Defining, and Initializing
● Using Custom Packages
● Introduction to Modules
Developer Productivity and Typical Code Lifecycle
● Go Testing overview
● Writing Test, Benchmark, and Example Functions
● Interactive debugging with VSCode extensions
Part 4 :- Real World Go (2 - 3 sessions)
File Handling
● Working with Files and Directories
● Reading, Writing, and Managing Files
● Temporary Files and Paths
Understanding service and data integration options
● Building HTTP / JSON ``RESTful`` services (Gorilla/MUX)
● Comparing HTTP/JSON with GRPC/PROTOBUF
● Simple GRPC/PB Client/Server example
Integrating with External Data Providers
● Working with a PostgreSQL database for basic CRUD operations
● Key considerations for working with NoSQL data providers
Frequently asked questions
You will receive a booking confirmation for your course place and joining instructions will be sent out 14 days prior to the course.
Yes this is a live instructor led course and you can attend in class.
Yes our events are all run in a hybrid format with a mixture of in class and virtual attendees. If you are a virtual attendee you will also receive a link in your joining instructions to the allow access to the course remotely.
You are in good hands - The instructor has over 30 years of practical commercial software development experience using a wide variety of languages notably including C, C++, SQL, C#, Java and Python and has worked on many Go migration projects.
Yes - please feel free to call us on +44 0333 050 0977, email sales@yourratio.co.uk or complete our contact form letting us know a good time to contact you https://yourratio.co.uk/contact-us/