GO
=====
—–
* Course Id : PROG-GOLN
* Duration : 32 Hours
Overview
—–
* Golang is an open source, statically-typed, compiled programming language from Google
* Go supports concurrent programming – running multiple processes simultaneously
* This is achieved using channels, goroutines, etc
* Go has garbage collection to manage memory
* Go allows the deferred execution of functions
Pre-Requisites
—–
* Basic understanding of computer programming terminologies
* Awareness of atleast one programming language
Training Objectives
—–
All participants learn to:
* Set up the Go development environment
* Understand Go language fundamentals
* Use Go language advanced and powerful features
* Create highly efficient programs using Go
* Start doing web development with Go
Course Structure
—–
* We provide more focus on hands-on in our technical courses (typically 80% hands-on/20% theory)
* Students get the capability to apply the material they learn to real-world problems
Materials Provided
—–
* PDF of slides and hands-on exercises
* Access to instance with lab environment
Software Requirements
—–
Any of the following
* Any current internet browser
* vnc client
* rdp client
Hardware Requirements
—–
* Processor: 1.2 GHz
* RAM: 512 MB
* Disk space: 1 GB
* Network Connection with low latency (<250ms) to Internet
## Daywise Course Outline
—–
## Day 1
—–
* Unit 1 : Introduction to Go
* Unit 2 : Language Fundamentals
* Unit 3 : GoLang Comparison
* Unit 4 : Control Flow
## Day 2
—–
* Unit 5 : Functions & Methods
* Unit 6 : Working With Arrays
* Unit 7 : Slices
* Unit 8 : I/O
## Day 3
—–
* Unit 9 : Structures
* Unit 10 : Strings
* Unit 11 : Pointers
* Unit 12 : Interfaces
## Day 4
—–
* Unit 13 : Concurrency
* Unit 14 : Error Handling
## Detailed Course Outline
—–
Unit 1 : Introduction to Go
—–
* What is Go?
* Introduction to Golang
* How to Download and install GO
* Hello World! in Golang
Unit 2 : Language Fundamentals
—–
* Identifiers
* Keywords
* Data Types
* Variables
* Constants
* Operators in Golang
* Scope of Variables
* Type Casting
* var Keyword in Golang
* Short Declaration Operator(:=)
* var keyword vs short declaration operator
Unit 3 : Comparing Go with Other Languages
—–
* Golang vs C++
* Golang vs Java
* Golang vs Python
Unit 4 : Control Flow
—–
* Control Statements
* Decision Making Statements
* Loop Control Statements
* Switch Statement in Go
* Select Statement
Unit 5 : Functions & Methods
—–
* What are the Functions?
* Variadic Function
* Anonymous Function
* Function Arguments
* Function Returning Multiple Values
* Named Return Values
* Blank Identifier
* Defer
* Stacking defers
* Methods
* Methods With Same Name
* Packages
Unit 6 : Working With Arrays
—–
* Arrays
* Slices
* Arrays in Golang
* Copying an Array into Another Array
* Passing an Array to a Function
Unit 7 : Slices
—–
* Slice Composite Literal
* Copying one Slice into another Slice
* Passing a Slice to Function
* Comparing two Slices in Golang
* Checking the Equality of Slices in Golang
* Sorting a Slice
* Trimming a Slice
* Splitting a Slice
Unit 8 : I/O
—–
Reading files
Writing files
Unit 9 : Structures
—–
* Structures
* Structure Equality
* Nested Structure
* Anonymous Structure and Fields
* Promoted Fields in Structure
* Function as a Field in Structure
Unit 10 : Strings
—–
* String
* Strings in Golang
* Different ways to compare Strings
* Different ways to concatenate two strings
* Trimming a String in Golang
* Splitting a String in Golang
* Check if the given characters are present in String
* Repeating a String for Specific Number of Times
* Finding the index value of specified string
* Counting the Number of Repeated Characters in String
Unit 11 : Pointers
—–
* Pointers
* Pointers
* Pointer to Pointer (Double Pointer)
* Pointers to a Function
* Returning Pointer from a Function
* Pointer to an Array as Function Argument
* Pointer to Struct
Unit 12 : Interfaces
—–
* Interfaces
* Interfaces
* Multiple Interfaces
* Embedding Interfaces
Unit 13 : Concurrency
—–
* Goroutines
* Multiple Goroutines
* Channels in Golang
* Unidirectional Channel in Golang
* Select
* Mutex
Unit 14 : Error Handling
—–
* Error handling
* Custom errors
