Course Outline


About Golang

Duration

2-5 days (covering a subset of the topics - contact us for more information/customization)

Lab Setup

Hardware Configuration

Participants must have access to a system with the following hardware configuration:

  • 2GB of free RAM, 20GB of free disk space and full network connectivity

Software configuration

  • Ubuntu 16.04 Desktop Edition (sudo/root access required)
  • Visual Studio Code (or some other IDE is preferred)

Course Outline for GoLang

Introduction to Go
  • Why Go?
  • Installing Go
  • Go - Hello World
Language Basics
  • Types
  • Numbers
  • Strings
  • Variables
  • Conditionals
Functions
  • The general syntax
  • Multiple returns
  • Scoping rules
  • defer keyword
  • Variable number of arguments
  • Pass by value/reference
  • First class functions
  • Closures
Collections
  • Arrays
  • Slices
  • Maps
  • Pointers in Go
  • Looping techniques
Modularisation of code
  • Using built-in packages in Go
  • Working with JSON - a case study
  • Building your own packages
Structs and Interfaces
  • Structures
  • Methods in Go structures
  • Interfaces
  • Object Orientation in Go
  • Inheritance v/s Composition
Goroutines and Channels
  • Concurrency in Go
  • Comparison with other concurrency control designs
  • Goroutines
  • Channels
  • Buffered Channels
  • Selecting from multiple channels
  • Fan-in pattern
Files and Directories
  • Reading Files
  • Writing Files
  • Handling I/O Errors
Error Handling
  • Exception handling basics
  • Error handling in Go
Working with third party packages
  • Installing third party packages
  • Working with MongoDB - a case study
  • Working with a REST server - a case study

The classroom training will be provided in Bangalore (Bengaluru), Chennai, Hyderabad or Mumbai and will be conducted in the client's premises. All the necessary hardware/software infrastructure must be provided by the client.