Go Programming Online Workshop

Duration : 3 Days (9 AM to 5 PM)
Dates : 15,16, 27 February 2021

Go Programming workshop provides highly intensive hands-on training on both Go programming language and the Go ecosystem, which is packed with real-world guidance using code examples. This course lets the audience build real-world backend systems and Microservices using the Go ecosystem. Attendees can dive into production systems after completing this training. This course will also provide architecture guidance for building scalable backend systems in Go.


There are no prerequisites for this training program however a knowledge of any other programming language is helpful.

Course Contents : 

The Go Language, Control Structures

Why Go?

  • The Beginnings of Go
  • Go vs Other languages
  • Supported Platforms, Cross Compiling
  • Key Distinguishing Features

Setting Up Go

  • Downloading and Installing Go Setting up Go
  • Environment Variables
  • Why do we need Git, Mercurial, etc.?
  • Go Playground

Basic Program, Go Tools

  • Hello World, packages, import, main & main
  • Go build
  • Go run

Working with Strings

  • String Functions
  • String Formatting

Variables and Assignment

  • var, := differences new
  • Multiple assignment
  • Values
  • Variables
  • Constants


  • Errors in Go
  • Error Conventions
  • Custom Errors panic and recover
  • defer

Cross Compiling

  • Cross Compiling Go Programs


  • Writing a Function
  • Return Values
  • Multiple Return Values

Pointers, Parameters, Return Values

  • Pointers
  • Parameters
  • Pass by Value, Pass by Reference

Control Statements

  • If/Else
  • Switch

Arrays, Slices, Maps, for

  • For
  • Arrays Slices
  • Maps
  • Range , continue, break, goto, fallthrough

“OOP” – Structs, Interfaces, Encapsulation, Inheritance, Polymorphism


  • Structs
  • Struct Members
  • Anonymous Struct Members
  • Methods on Structs
  • Pointer and Value Receivables in struct methods
  • How structs take place of objects


  • Interfaces

Encapsulation, “Object Hierarchy”, “OOP”

  • Data Hiding
  • Struct Inheritance with Composition
  • Polymorphism

Workspaces, go get, and managing dependencies

  • Workspace Directory Structure go get command
  • go env variables and library search
  • vendor Directory dep


Concurrency: Goroutines, Parallelism

  • Concurrency with goroutines
  • Concurrency and Parallelism

Concurrency: Handling Race Conditions

  • Example of Race Condition

Concurrency: SyncGroup, Wait, Mutexes

  • Sync, Wait
  • Mutexes
  • Deadlocks with Mutexes
  • RW Mutexes


Concurrency: Channels

  • Channel Direction
  • Closing Channels
  • Range Over Channels
  • Channels – Select Timeouts

Concurrency: Canceling and Context

  • Leaky Goroutines
  • Canceling Goroutines
  • Canceling with Context
  • Canceling with Deadline/Timeout
  • Closing a Context Sends Done() to All
  • Closing a Context Sends Done() to All Derived Contexts

Web Programming Templates

  • How to Use Templates
  • Structs and Templates
  • Text Templates
  • HTML Templates


  • Struct to JSON
  • Marshaling and Unmarshaling

Regular Expressions

  • Using regex in Go http package
  • Running a Web Server and Handling Requests
  • HTTP Return Codes
  • Regex Routes
  • Variables
  • Serving Static Files
  • Context gorilla package Installing gorilla mux
  • Routing URLs
  • Sub routers


  • What is REST?
  • CRUD and REST?
  • HTTP Requests and REST
  • A REST Project in Go

Files, Databases, Testing and Benchmarking, Logging


  • Reading Files
  • Writing Files
  • Reading and Writing to any pipe


  • init and then main importing to register with init sql package
  • working with oracle
  • working with cassandra

Unit Testing

  • Writing and Running Unit Tests
  • Table driven tests go cover


  • What are benchmarks?
  • Writing and Running Benchmarks
  • Additional libraries for testing

Profiling & Optimisation

  • Walkthrough of Profiling Example

Logging and Debugging

  • Standard Library Logging
  • SysLog logrus vscode and Delve
  • Delve Command Line
  • Logging Filenames, Functions, and Line numbers

Monitoring Go Applications Using New Relic

  • track transactions, outbound requests, database calls, and other parts of Go application’s behavior and provides a running overview of garbage collection, goroutine activity, and memory use.
  • github.com/newrelic/go-agent

Distributed Tracing Techniques Using Zipkin

  • Tracing Spans
  • Tracing UI
  • Reporting
  • https://github.com/openzipkin/zipkin-go

API Documentation Using Swagger

  • Requirements
  • serialize and deserialize
  • Code Commenting & representation of RESTful API.
  • https://github.com/go-swagger/go-swagger
  • 00


  • 00


  • 00


  • 00



Feb 15 - 17


Full Day Training from 9 AM to 5 PM
9:00 am - 5:00 pm


INR 25000 + Taxes

More Info

Register Here
Register Here

Leave a comment