Golang/Go Training Course 

(up to 5 days, from Beginner to Advanced topics) 

 

Note: this outline is our proposal, but the training can be tailored to your specific requirements upon prior request ahead of the proposed course date.

Why Learn Golang?

Go Programming language is an open source programming language developed by Google. It is a statically-typed compiled language. It compiles fast, runs fast-ish, includes a runtime and garbage collection, has a simple static type system and dynamic interfaces, and an excellent standard library.

Requirements

  • Basic programming language skills

  • Knowledge of C Programming

Course details

The agenda covers both fundamentals and advanced topics.

The final training outline will be designed depending on your particular requirements.

The practical exercises constitute a big part of the course time, besides demonstrations and theoretical presentations. Discussions and questions can be asked throughout the course.

 

Course Outline

OVERVIEW

  • Features of Go Programming

  • Features Excluded Intentionally

  • Go Programs

  • Compiling and Executing Go Programs

 

ENVIRONMENT SETUP

 

  • Local Environment Setup

  • Text Editor

  • The Go Compiler

  • Download Go Archive

  • Installation on UNIX/Linux/Mac OS X, and FreeBSD

  • Installation on Windows

  • Verifying the Installation

 

PROGRAM STRUCTURE

 

  • Hello World Example

  • Executing a Go Program 

 

BASIC SYNTAX

 

  • Tokens in Go

  • Line Separator

  • Comments

  • Identifiers

  • Keywords

  • Whitespace in Go 

DATA TYPES

 

  • Integer Types

  • Floating Types

  • Other Numeric Types

VARIABLES

 

  • Variable Definition in Go

  • Static Type Declaration in Go

  • Dynamic Type Declaration / Type Inference in Go

  • Mixed Variable Declaration in Go

  • The lvalues and the rvalues in Go

CONSTANTS

 

  • Integer Literals

  • Floating-point Literals

  • Escape Sequence

  • String Literals in Go

  • The const Keyword  

 

OPERATORS

 

  • Arithmetic Operators

  • Relational Operators

  • Logical Operators

  • Bitwise Operators

  • Assignment Operators

  • Miscellaneous Operators

  • Operators Precedence in Go

 

DECISION MAKING

 

  • The if Statement

  • The if…else Statement

  • Nested if Statement

  • The Switch Statement

  • The Select Statement

  • The if...else if...else Statement

 

LOOPS

 

  • for Loop

  • Nested for Loops

  • Loop Control Statements

  • The continue Statement

  • The goto Statement

  • The Infinite Loop

 

FUNCTIONS

 

  • Defining a Function

  • Calling a Function

  • Returning Multiple Values from Function

  • Function Arguments

  • Call by Value

  • Call by Reference

  • Function Usage

  • Function Closures

  • Method

 

SCOPE RULES

 

  • Local Variables

  • Global Variables

  • Formal Parameters

  • Initializing Local and Global Variables

 

STRINGS

 

  • Creating Strings

  • String Length

  • Concatenating Strings

 

ARRAYS

 

  • Declaring Arrays

  • Initializing Arrays

  • Accessing Array Elements

  • Go Arrays in Detail

  • Multidimensional Arrays in Go

  • Two-Dimensional Arrays

  • Initializing Two-Dimensional Arrays

  • Accessing Two-Dimensional Array Elements

  • Passing Arrays to Functions

 

POINTERS

 

  • What Are Pointers?

  • How to Use Pointers?

  • Nil Pointers in Go

  • Go Pointers in Detail

  • Go – Array of Pointers

  • Go – Pointer to Pointer

  • Go – Passing Pointers to Functions

 

STRUCTURES

 

  • Defining a Structure

  • Accessing Structure Members

  • Structures as Function Arguments

  • Pointers to Structures

 

SLICES

 

  • Defining a slice

  • len() and cap() functions

  • Nil slice

  • Subslicing

  • append() and copy() Functions

 

RANGE

 

MAPS

 

  • Defining a Map

  • delete() Function

 

RECURSION

 

TYPE CASTING

 

INTERFACES

 

ERROR HANDLING

 

PACKAGES 

CONCURRENCY – Goroutines & Channel