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