Go (Golang) Programming: The Complete Go Bootcamp 2023

Go (Golang) Programming: The Complete Go Bootcamp 2023

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 242 lectures (19h 21m) | 6.20 GB

Master Go (Golang) from Beginner to Pro. Become a Professional Golang Programmer from Scratch. Learning by doing!

Welcome to this practical Go Programming course for learning Go, the language created to solve “Google-size” problems.

Go (Golang) will be one of the most in-demand programming languages across the job market in the near future! Go is on a trajectory to become the Next Enterprise Programming Language. Cutting-Edge Technologies and Software are already written in Go. For example, Docker, Kubernetes, Terraform, or Ethereum are all written in Go. In addition to Google, Golang is used by Uber, Netflix, Medium, Pinterest, Slack, SoundCloud, Dropbox and many more!

The topics covered in this Complete Go (Golang) Programming Bootcamp are:

  • Installing Go, Git, and VSCode on Windows, Mac, and Linux
  • Compiling and Running Go Programs
  • Using Go tools like go fmt to format and write idiomatic Go code
  • GOPATH and Go Application Structure
  • Go Packages and Modules In Depth
  • Publish Modules on GitHub
  • Declarations, Variables, Constants, and Comments in Go
  • Constant Rules, Typed vs. Untyped Constans, IOTA
  • Math, Comparison and Logical Operators
  • Go Data Types in Depth, Zero Values, Dynamically vs. Statically Typed Languages
  • Converting Types
  • fmt Package: Println, Printf, Sprintf, etc
  • Named (Defined) Types in Go
  • Alias Declarations
  • Flow Control: if, simple if statement, for, continue, break, switch, labels, goto
  • Scopes in Go
  • Strings, Runes, Bytes, and UTF-8 in Go
  • strings Package
  • Arrays in Go
  • Slices in Go
  • Maps in Go
  • Structs in Go
  • User-defined Functions, Variadic and Anonymous Functions, Defer Statement
  • Working with Files in Go: os, io, ioutil, bufio packages
  • Error Handling
  • Pointers In-Depth: Dereferencing and Address of Operators, Passing to Functions and Methods, etc
  • Methods (Function Receivers) and Interfaces (Go OOP): Embedded Interfaces, Empty Interface, Type
  • Assertions, and Type Switches, etc
  • Concurrency in Go
  • Goroutine Synchronization Using WaitGroups
  • Data Races, Go Race Detector, and Mutexes
  • Goroutines and Channels
  • Buffered and Unbuffered Channels
  • Channel Select Statement

Every topic includes many live examples in Go, a coding section, tens of quizzes, slides, and many practice exercises.

By the end of this Go Programming Course, you’ll also have acquired the prerequisite Go skills to move into specific branches: Network and Server Programming, Cloud and Infrastructure Programming, and Large-Scale Software Development in general.

What you’ll learn

  • Become a professional Go programmer and get hired.
  • You will MASTER all Go (Golang) key concepts starting from scratch. No prior Go knowledge is required.
  • For each Go key concept you’ll get HD Videos, coding sections, quizzes, practice exercises with solutions and slides.
  • Build a COMPLETE understanding of Go from the ground. Write idiomatic, bug-free Go code using best practices.
  • Learn to work with Go control flow structures: if, for, break, continue, switch, goto, labels etc.
  • Master all Go data structures in depth: arrays, slices, strings, maps, structs.
  • Learn to work efficiently with pointers.
  • Learn to work efficiently with files.
  • Master the full power of methods and interfaces (Go OOP).
  • Understand Go concurrency in depth: WaitGroups, Mutexes, Buffered and Unbuffered Channels, Select Statement and Patterns.
  • Build massively concurrent programs with Goroutines and Channels.
  • Hundreds of hands-on exercises with solutions and quizzes.
  • Go Packages and Modules in depth
Table of Contents

Course Introduction
1 Why Go Programming Why now
2 IMPORTANT Please read
3 Join Our Online Community

Getting Started
4 The Go Playground Your First Go Program
5 Setup the Programming Environment on Windows Go Git and VSCode
6 Setup the Programming Environment on Linux Go and VSCode
7 Setup the Programming Environment on macOS Go Git and VSCode
8 Code Organization
9 The Structure of a Go Application
10 Coding Go Application Structure
11 Compiling go build and Running Go Applications go run
12 Go Packages and Modules
13 Formatting Go Source Code gofmt

Challenge HandsOn Exercises Getting Started
14 HandsOn Exercices

Go Basics
15 Variables in Go
16 Multiple Declarations
17 Coding Variables and Declarations
18 Types and Zero Values
19 Coding Types and Zero Values
21 Naming Conventions in Go
22 Coding Comments and Naming Convention
23 Package fmt
24 Coding Package fmt
25 Constants in Go
26 Constant Rules
27 Constant Expressions Typed vs Untyped Constants
29 Coding Constants and IOTA
30 Go Data Types Part 1
31 Go Data Types Part 2
32 Coding Go Data Types
33 Operations on Types Arithmetic and Assignment Operators
34 Comparison and Logical Operators
35 Coding Go Operators
36 Overflows
37 Converting Numeric Types
38 Converting Numbers to Strings and Strings to Numbers
39 Coding Converting Types
40 Defined Named Types part 1
41 Defined Named Types part 2
42 Coding Defined Types
43 Alias Declarations
44 Coding Aliases

Coding Challenges Go Basics
45 Declare Variables
46 Constant
47 Package fmt
48 Operators and Conversions
49 Named Types and Aliases

Program Flow Control in Go
50 If Else If and Else Statements
51 Coding If Else If and Else
52 Command Line Arguments osArgs
53 Coding Command Line Arguments
54 Simple If Statement
55 Coding Simple If
56 For Loops
57 Where is the While Loop in Go
58 Coding For Loops
59 For and Continue Statements
60 For and Break Statements
61 Coding For Break and Continue
62 Label Statement
63 Goto
64 Coding Labels and Goto Statements
65 Switch Statement
66 Coding Switch Statement
67 Scopes in Go
68 Coding Scopes

Coding Challenges Flow Control
69 Coding Challenge Exercises Flow Control

Arrays in Go
70 Intro to Arrays
71 Declaring Arrays
72 Array Operations
73 Coding Declaring Arrays and Operations
74 Arrays with Keyed Elements
75 Coding Arrays with Keyed Elements

Coding Challenges Arrays
76 Array Coding Exercises

Slices in Go
77 Intro to Slices
78 Declaring Slices and Basic Slice Operations
79 Comparing Slices
80 Coding Slice Basics
81 Appending to a Slice Copying Slices
82 Slice Expressions
83 Coding Slice Expressions
84 Slice Internals Backing Array and Slice Header part 1
85 Slice Internals Backing Array and Slice Header part 2
86 Coding Slices Backing Array
87 Append Length and Capacity InDepth
88 Coding Appending to Slices

Coding Challenges Slices
89 Coding Challenge Exercises Slices

Strings Runes Bytes and UTF8 in Go
90 Intro to Strings
91 Coding String Basics
92 Intro to Runes Bytes and Unicode Code Points
93 Coding Runes and Strings Decoding Strings Byte by Byte and Rune by Rune
94 String Length in Bytes and Runes
95 Coding Strings Runes and Decoding
96 Slicing Strings
97 Coding Slicing Strings
98 Strings Package Part1 Contains ContainsAny Count ToLower ToUpper EqualFold
99 Strings Package Part2 Manipulating Strings Repeat Replace Split Join Field
100 Coding Strings Package

Coding Challenges Strings
101 Coding Challenge Exercises Strings

Maps in Go
102 Intro to Maps
103 Declaring Maps Working with Maps
104 Comparing Maps
105 Map Header Cloning Maps
106 Coding Maps in Go

Coding Challenges Maps
107 Coding Challenge Exercises Maps

Working with Files in Go
108 Open Close Rename Move Remove Files
109 Coding Operations on Files
110 Writing Bytes to File osWrite and ioutilWriteFile
111 Coding Writing to Files Using os and ioutil
112 Writing to Files using a Buffered Writer bufio Package
113 Coding Writing to Files Using a Buffer in Memory
114 Reading n Bytes from a File Reading a File using a Buffered Reader
115 Coding Reading Bytes from Files
116 Reading a File Line by Line Using a Scanner
117 Coding Reading Files Using a Delimiter
118 Scanning for User Input Reading From Stdin
119 Coding Reading from Console

Coding Challenges Working with Files
120 Coding Exercises Working with Files

Structs in Go
121 Organizing Data with Structs
122 Creating Structs
123 Retrieving and Updating Struct Fields
124 Coding Working with Structs
125 Anonymous Structs and Anonymous Struct Fields
126 Embedded Structs
127 Coding Anonymous and Embedded Structs

Coding Challenges Structs
128 Coding Challenge Exercises Structs

Functions in Go
129 Intro to Functions
130 Function Parameters Arguments and Return Values
131 Coding Function Basics
132 Variadic Functions Part 1
133 Variadic Functions Part 2
134 Coding Variadic Functions
135 Defer Statement
136 Coding Defer Statement
137 Anonymous Functions
138 Coding Anonymous Functions

Coding Challenges Functions
139 Coding Challenge Exercises Functions

Pointers in Go
140 Computer Memory and Pointers
141 Declaring Pointers Address of and Dereferencing Operators
142 Pointer to Pointer Comparing Pointers
143 Coding Pointer Basics
144 Passing and Returning Pointers From Functions Part 1
145 Passing Pointers to Functions Passing by Value vs Passing by Pointer Part 2
146 Coding Passing Values and Pointers to Functions

Coding Challenges Pointers
147 Coding Challenge Exercises Pointers

Methods and Interfaces in Go OOP
148 Receiver Functions Methods
149 Coding Intro to Methods
150 Methods with a Pointer Receiver
151 Coding Methods with a Pointer Receiver
152 Intro to Interfaces
153 Implementing Interfaces
154 Coding Implementing Interfaces
155 Interface Dynamic Type and Polymorphism
156 Type Assertions and Type Switches
157 Coding Type Assertions
158 Embedded Interfaces
159 Empty Interface
160 Coding Empty Interface

Coding Challenges Methods and Interfaces
161 Coding Challenge Exercises Methods
162 Coding Challenge Exercises Interfaces

Concurrency in Go
163 Concurrency vs Parallelism
164 Intro to Goroutines
165 Spawning Goroutines The go Keyword
166 Coding Getting Information
167 WaitGroups
168 Coding Goroutines and WaitGroups
169 Project URL Checker and Page Downloader
170 Project Refactoring Using WaitGroups URL Checker and Page Downloader
171 Data Race
172 Go Race Detector
173 Coding Data Race
174 Mutexes
175 Coding Mutexes
176 Intro to Channels
177 Coding Intro to Channels
178 Goroutines and Channels
179 Goroutines Channels and Anonymous Function
180 Coding Goroutines and Channels
181 Project Refactoring Using Channels URL Checker and Page Downloader
182 Project Refactoring Using Channels and Anonymous Function
183 Unbuffered Channels
184 Coding Unbuffered Channels
185 Buffered Channels
186 Coding Buffered Channels
187 Select Statement
188 Coding Select Statement

Coding Challenges Concurrency
189 Coding Challenge Exercises Goroutines WaitGroups and Mutexes
190 Coding Challenge Exercises Goroutines and Channels

Go Packages and Modules
191 Go Packages Overview
192 Creating a Package
193 GOPATH and Packages In Depth
194 Exporting Names Private vs Private Access
195 Import Statement and Scopes
196 The Init function
197 Go Modules Overview
198 Importing and Using Go Modules
199 Creating Your Own Go Module
200 Publish the Module on GitHub Semantic Versioning
201 Commands Create and Publish a Module on GitHub
202 Releasing a Bug Fix and a Minor Update
203 Releasing a Major Update
204 Using MultiVersion Dependency

Challenge HandsOn Exercises Packages and Modules
205 HandsOn Exercises

APPENDIX Linux Administration
206 Installing Ubuntu in a VM
207 Things to Do After Installing Ubuntu
208 Terminals Consoles Shells and Command
209 Linux Command Structure
210 Getting Help Man Pages man type help apropos
211 Mastering the Terminal The TAB Key
212 Mastering the Terminal Keyboard Shortcuts
213 Mastering the Terminal The Bash History
214 root vs Nonprivileged Users Getting root Access sudo su passwd
215 Intro to The Linux Files System
216 The Filesystem Hierarchy Standard FHS
217 Absolute vs Relative Paths Walking through the File System pwd cd tree
218 The LS Command In Depth ls
219 Understanding File Timestamps atime mtime ctime stat touch date
220 Sorting Files by Timestamp
221 File Types in Linux ls F file
222 Viewing Files Part 1 cat
223 Viewing Files Part 2 less more
224 Viewing Files Part 3 tail head watch
225 Creating Files and Directories touch mkdir
226 Copying Files and Directories cp
227 Moving and Renaming Files and Directories mv
228 Removing Files and Directories rm shred
229 Working With Pipes in Linux wc
230 Command Redirection 2 cut tee
231 Finding Files and Directories Part 1 locate which
232 Finding Files and Directories Part 2 find
233 Find and Exec
234 Searching for String Patterns in Text Files grep
235 Searching for Strings in Binary Files strings
236 Comparing Files cmp diff sha256
237 Compressing and Archiving Files and Directories tar gzip
238 Hard Links and the Inode Structure
239 Working With Symlinks Symlinks vs Hard Links

Contents to Come in 2023
240 New Content to be Added

Course Completion
241 Congratulations