Getting Started With Golang

Getting Started With Golang

English | MP4 | AVC 1920×1080 | AAC 48KHz 2ch | 15h 17m | 4.62 GB

Learn all the key fundamentals of Go – one of the most in-demand and popular programming languages you can learn these days!

Go (or Golang) is a very modern, performant and popular programming language which you can use to build applications, scripts, automations, web servers and APIs and much more!

Go was originally invented and developed by a team at Google and whilst Google still heavily uses Go, it’s now also very popular outside of Google. Golang regularly scores top placements in Stackoverflow surveys: In 2020, Go was the 5th most loved language according to the Stackoverflow survey.

Hence there was never a better time to get started with go and in this course, you’ll learn all the key fundamentals of Go in great depth, step by step and from the ground up.

NO prior Go knowledge is assumed and you will of course learn all key concepts with both theory and practical examples, demo projects and exercises. After finishing this course, you will understand how Go works, how to write Go code and which features Go has to offer. Of course we’re also going to build multiple demo projects throughout this course!

In detail, this course will teach you:

  • What Go is and how it works
  • The general Go syntax and rules
  • Key basics like working with values & variables
  • All about Go’s value types, how they differ and how you use them
  • How to write functions with Go
  • “Special features” like multiple return values in functions
  • How to organize your code into packages and modules
  • How to work with third-party modules
  • How to run and build Go programs
  • All about controlling code flow with conditionals and loops
  • More complex data types like structs
  • Collection value types like arrays, slices and maps (+ how and when to use them)
  • A highly understandable explanation of “Pointers”
  • And so much more!
Table of Contents

Getting Started
1 getting-started-01-welcome
2 getting-started-02-what-is-go
3 getting-started-03-why-go
4 getting-started-04-installing-go
5 getting-started-05-setting-up-vs-code
6 getting-started-06-finishing-editor-config-and-first-go-code
7 getting-started-07-basic-programming-knowledge-helps
8 getting-started-08-about-this-course
9 getting-started-09-getting-the-most-out-of-the-course

Go Basics Values, Variables Types
10 basics-01-intro
11 basics-02-base-syntax-and-features
12 basics-03-getting-started-with-values-and-value-types
13 basics-04-exploring-variables
14 basics-05-int-type-operations-and-working-with-vars
15 basics-06-exercise-problem
16 basics-07-exercise-solution
17 basics-08-floats-and-type-conversions
18 basics-09-float64-vs-float32
19 basics-10-bool-rune-and-byte
20 basics-11-string-operations-and-type-clashes
21 basics-12-string-formatting
22 basics-13-exercise-problem
23 basics-14-exercise-solution
24 basics-15-packages-modules-theory
25 basics-16-creating-and-using-a-first-module
26 basics-17-working-with-packages-imports-and-exports
27 basics-18-constants
28 basics-19-summary

Go Basics – Time To Practice (Building a BMI Calculator App)
29 practice-basics-01-intro
30 practice-basics-02-creating-our-module
31 practice-basics-03-printing-output
32 practice-basics-04-fetching-user-input
33 practice-basics-05-cleaning-and-parsing-the-user-input
34 practice-basics-06-bmi-calculation-and-outputting-formatted-strings
35 practice-basics-07-constant-values
36 practice-basics-08-splitting-our-code-into-files-and-packages

Working with Functions
37 functions-01-intro
38 functions-02-what-is-a-function
39 functions-03-custom-fn-params-and-return-value
40 functions-04-practicing-functions
41 functions-05-multiple-return-values
42 functions-06-named-return-values
43 functions-07-summary

Functions – Time To Practice (Enhancing The BMI Project)
44 practice-fn-01-intro
45 practice-fn-02-creating-a-first-function
46 practice-fn-03-outsourcing-the-input-logic
47 practice-fn-04-finshing-the-main-function-refactoring
48 practice-fn-05-avoiding-code-duplication
49 practice-fn-06-summary

Understanding Pointers
50 pointers-01-intro
51 pointers-02-what-and-why
52 pointers-03-creating-a-first-pointer
53 pointers-04-working-with-pointers
54 pointers-05-advantages-of-pointers

Structuring Data with Structs
55 structs-01-intro
56 structs-02-what-why-and-defining-a-first-struct
57 structs-03-creating-struct-instances
58 structs-04-creating-structs-with-a-creation-fn
59 structs-05-structs-and-pointers
60 structs-06-accessing-struct-values
61 structs-07-methods
62 structs-08-summary

Structs – Time To Practice (Storing Data In Files)
63 practice-structs-01-intro
64 practice-structs-02-defining-a-struct
65 practice-structs-03-creating-struct-instances
66 practice-structs-04-adding-a-method
67 practice-structs-05-reading-user-input
68 practice-structs-06-writing-to-files

Data Collections Arrays, Slices Maps
69 arrays-maps-01-intro
70 arrays-maps-02-introducing-arrays
71 arrays-maps-03-working-with-arrays
72 arrays-maps-04-selecting-parts-of-arrays-with-slices
73 arrays-maps-05-more-ways-of-selecting-slices
74 arrays-maps-06-diving-deeper-into-slices
75 arrays-maps-07-dynamic-lists-with-slices
76 arrays-maps-08-exercise-problem
77 arrays-maps-09-exercise-solution
78 arrays-maps-10-unpack-list-values
79 arrays-maps-11-introducing-maps
80 arrays-maps-12-mutating-maps
81 arrays-maps-13-maps-vs-structs

Working With Control Structures
82 control-01-intro
83 control-02-project-setup
84 control-03-introducing-if-statements
85 control-04-more-about-if-statements-and-booleans
86 control-05-else-and-else-if
87 control-06-combining-checks
88 control-07-error-handling
89 control-08-returning-errors
90 control-09-practicing-what-we-learned
91 control-10-why-do-we-need-loops
92 control-11-introducing-a-basic-for-loop
93 control-12-a-more-useful-loop
94 control-13-practicing-basic-for-loops
95 control-14-looping-whilst-a-condition-is-met
96 control-15-preparing-another-scenario
97 control-16-looping-through-arrays-slices-maps
98 control-17-continue-and-break
99 control-18-summary

The Main Project Building the Monster Slayer Game
100 prj-game-01-intro
101 prj-game-02-planning-the-app
102 prj-game-03-initializing-the-project
103 prj-game-04-adding-the-core-game-steps-and-logic
104 prj-game-05-outputting-text-and-creating-a-first-package
105 prj-game-06-checking-for-the-special-attack-round
106 prj-game-07-displaying-action-options-to-the-user
107 prj-game-08-getting-started-with-fetching-user-input
108 prj-game-09-validating-and-using-user-input
109 prj-game-10-generating-random-numbers
110 prj-game-11-adding-logic-for-the-different-player-actions
111 prj-game-12-working-with-constants
112 prj-game-13-checking-for-a-winner
113 prj-game-14-adding-the-end-game-logic
114 prj-game-15-outputting-round-data-with-structs
115 prj-game-16-managing-a-slice-of-round-data
116 prj-game-17-writing-a-log-file
117 prj-game-18-summary

Third-Party Modules Building Go Apps
118 modules-build-01-intro
119 modules-build-02-using-third-party-modules
120 modules-build-03-building-go-projects
121 modules-build-04-executables-and-file-paths

Diving Deeper Into Values, Variables & Constants
122 adv-values-var-01-intro
123 adv-values-var-02-scoping-and-shadowing
124 adv-values-var-03-make
125 adv-values-var-04-new
126 adv-values-var-05-make-vs-new
127 adv-values-var-06-custom-types
128 adv-values-var-07-more-on-const
129 adv-values-var-08-summary

Diving Deeper Into Functions
130 more-functions-01-intro
131 more-functions-02-functions-as-values-and-function-types
132 more-functions-03-returning-functions-as-values
133 more-functions-04-introducing-anonymous-functions
134 more-functions-05-closures
135 more-functions-06-recursion
136 more-functions-07-variadic-functions
137 more-functions-08-splitting-slices-into-parameter-values
138 more-functions-09-defer
139 more-functions-10-panic
140 more-functions-11-summary

Working with Interfaces
141 interfaces-01-intro
142 interfaces-02-the-problem
143 interfaces-03-what-and-why
144 interfaces-04-we-already-used-built-in-interfaces
145 interfaces-05-rules-and-conventions
146 interfaces-06-empty-interfaces
147 interfaces-07-making-code-dynamic-with-empty-interfaces-and-type-switches
148 interfaces-08-summary

Embedding Interfaces & Structs
149 embedding-01-intro
150 embedding-02-embedding-interfaces
151 embedding-03-embedding-structs

Concurrency, Goroutines & Channels
152 concurrency-01-intro
153 concurrency-02-what-is-concurrency
154 concurrency-03-introducing-goroutines
155 concurrency-04-working-with-channels
156 concurrency-05-reading-from-a-channel-multiple-times
157 concurrency-06-sending-values-via-channels
158 concurrency-07-looping-through-channel-values
159 concurrency-08-buffered-channels
160 concurrency-09-the-select-statement
161 concurrency-10-summary

Homepage