Getting Started With Golang by Maximilian Schwarzmuller
Maximilian Schwarzmuller is one of Cloud Monk's favorite teachers of programming on the Internet.
Getting Started With Golang by Maximilian Schwarzmuller
https://pro.academind.com/p/golang-the-practical-guide
https://pro.academind.com/courses/1427203/lectures/32770465
https://www.youtube.com/watch?v=hAUMDeUEZJY
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” Deep dives into values & variables Advanced function concepts like “Recursion” Detailed information about “Interfaces” Embedding of Interfaces and Structs All about concurrency, Goroutines and Channels And so much more! This course doesn't assume any prior Go knowledge and will turn you into a Go developer in a matter of hours!
11+ hours
140+ lessons
Course Curriculum
Getting Started
PreviewWelcome To The Course (1:00) PreviewWhat Is Go? (6:12) PreviewWhy Would You Use Go? (3:52) PreviewInstalling Go (3:55) PreviewCode Editor Setup (VS Code) (2:40) PreviewFinishing Editor Config & First Go Code (6:53) PreviewBasic Programming Knowledge Helps! (1:55) PreviewAbout This Course (2:21) PreviewHow To Get The Most Out Of This Course (3:50) PreviewUsing Code Snapshot AttachmentsGo Basics: Values, Variables & Types
StartModule Introduction (1:26) StartBase Syntax & Language Features (9:08) StartGetting Started With Values & Value Types (5:25) StartExploring Variables (9:34) StartThe "int" Type & Math Operations (8:20) StartTime To Practice: Problem (5:38) StartTime To Practice: Solution (10:24) StartWorking With Floats & Type Conversions (7:47) Startfloat64 vs float32 (3:30) StartVariables & "Null Values" StartA Brief Look At "bool", "rune" and "byte" Types (7:10) StartString Operations & Type Clashes (6:26) StartWorking with Multiline Strings StartFormatting Strings (11:05) StartTime To Practice: Problem (2:41) StartTime To Practice: Solution (7:36) StartGo Packages & Modules: The Theory (5:33) StartCreating & Using A First Module (4:59) StartWorking With Packages & Exports + Imports (9:01) StartUsing Constant Values (Constants) (3:54) StartModule Summary (2:52) StartModule ResourcesGo Basics - Time To Practice (Building a BMI Calculator App)
StartModule Introduction (1:49) StartCreating Our Go Module (4:23) StartPrinting Output (3:40) StartFetching User Input (8:19) StartCleaning & Parsing User Input (10:15) StartBMI Calculation & Outputting Formatted Strings (3:40) StartUsing Constant Values (4:20) StartSplitting Our Code Into Files & Packages (7:38) StartUS / English Units StartModule ResourcesWorking with Functions
StartModule Introduction (0:49) StartWhat Is A "Function"? (3:49) StartCreating A Function & Working With Parameters + Return Values (10:10) StartPracticing Functions (3:43) StartGo Special Feature: Multiple Return Values (7:56) StartUsing Named Return Values (3:39) StartModule Summary (1:38) StartModule ResourcesFunctions - Time To Practice (Enhancing The BMI Project)
StartModule Introduction (2:52) StartCreating a First Function (3:44) StartOutsourcing The User Input Logic (5:21) StartFinishing the "main" Function Refactoring (5:22) StartAvoiding Code Duplication (6:24) StartModule Summary (1:11) StartModule ResourcesUnderstanding Pointers
StartModule Introduction (0:46) StartWhat Are Pointers & Why Do We Have Them? (8:07) StartCreating a First Pointer (5:06) StartWorking With Pointers (5:35) StartAdvantages Of Pointers (& Disadvantages) (8:47) StartModule Resources“Struct”uring Data with Structs
StartModule Introduction (0:54) StartWhat & Why + Defining a First Struct (9:25) StartCreating Struct Instances (6:21) StartCreating Structs With "Creation Functions" (3:39) StartStructs & Pointers (4:31) StartAccessing Struct Values (8:41) StartAdding Methods To Structs (7:19) StartModule Summary (4:17) StartModule ResourcesStructs - Time To Practice (Storing Data In Files)
StartModule Introduction (3:06) StartDefining a Struct (3:29) StartCreating Struct Instances (9:44) StartAdding a Method (5:02) StartReading User Input (14:06) StartWriting To Files (7:53) StartModule ResourcesData Collections: Arrays, Slices & Maps
StartModule Introduction (1:08) StartIntroducing Arrays For Storing Lists Of Data (8:02) StartWorking With Arrays (6:18) StartSelecting Parts Of Arrays With Slices (3:26) StartMore Ways Of Using Slices (2:23) StartSlices - Deep Dive (9:43) StartCreating Dynamic Lists With Slices (9:16) StartTime To Practice - Problem (4:17) StartTime To Practice - Solution (20:10) StartUnpacking List Values (3:29) StartIntroducing Maps (6:48) StartMutating Maps (3:41) StartMaps vs Structs (4:00) StartModule ResourcesWorking With Control Structures
StartModule Introduction (1:14) StartWorking on the Project Setup (5:34) StartIntroducing "if" Statements (3:46) StartMore about "if" Statements & Boolean Values (Booleans) (4:40) Start"else" & "else if" (5:08) StartCombining Conditions (4:28) StartUsing "switch" Statements StartHandling Expected Errors (8:10) StartReturning Errors In Functions (3:33) StartPracticing What We Learned (13:50) StartOnwards To "Loops" (and why do we need them?) (5:44) StartIntroducing a Basic "for" Loop (5:11) StartA More Useful Loop (2:55) StartPracticing Basic "for" Loops (4:22) StartGo's "while" Loop (9:43) StartPreparing Another Scenario (5:29) StartLooping Through Collections (Arrays, Slices, Maps) (5:22) Start"continue" and "break" (2:33) StartModule Summary (2:47) StartModule ResourcesThe Main Project: Building the “Monster Slayer” Game
StartModule Introduction (1:46) StartPlanning the App (5:20) StartInitializing The Project (2:12) StartAdding The Core Game Steps & Logic (5:24) StartOutputting Text & Adding a First Package (4:05) StartKeeping Track Of The Active Round (4:59) StartDisplaying Available Player Actions (3:38) StartGetting Started With Fetching User Input (6:54) StartValidating & Using User Input (11:05) StartGenerating (True) Random Numbers (7:17) StartAdding Logic For Different Actions (7:02) StartUtilizing Constants (5:45) StartChecking For A Winner (11:12) StartAdding the "End Game" Logic (3:50) StartOutputting Round Data (with a Struct) (18:05) StartManaging Multiple Rounds (with a Slice) (5:45) StartWriting To A Log File (10:11) StartModule Summary (1:12) StartModule ResourcesThird-Party Modules & Building Go Apps
StartModule Introduction (1:17) StartUsing Third-Party Modules (10:46) StartBuilding & Distributing Modules StartBuilding Go Projects (Standalone Executables) (3:50) StartA Gotcha: Executables & File Paths (7:38) StartModule ResourcesDiving Deeper Into Values, Variables & Constants
StartModule Introduction (1:30) StartVariables, Scope & Variable Shadowing (7:35) Start"make"ing Values (10:26) StartThe "new" Function (7:01) Startnew vs make (1:21) StartWorking With Custom Types (10:35) StartMore On Custom Types StartMore On Constants (7:55) StartModule Summary (3:18) StartModule ResourcesDiving Deeper Into Functions
StartModule Introduction (0:59) StartUsing Functions As Values & Function Types (15:10) StartReturning Functions In Functions (6:21) StartIntroducing Anonymous Functions (6:34) StartWorking with Closures (6:42) StartUsing Recursion (11:20) StartIntroducing Variadic Functions (6:47) StartSplitting Slices Into Parameter Lists (3:05) StartDeferring Function Execution with "defer" (9:04) StartPanic! (4:10) StartModule Summary (2:42) StartModule ResourcesWorking with Interfaces
StartModule Introduction (0:55) StartWhat's the Problem? (6:31) StartInterfaces As a Solution (i.e. What are Interfaces?) (6:17) StartExample Time: Built-in Interfaces We Already Used (4:54) StartInterfaces: Rules & Conventions (5:06) StartEmpty Interfaces (4:36) StartFlexible Code With Empty Interfaces & Type Switches (11:03) StartModule Summary (1:30) StartModule ResourcesEmbedding Interfaces & Structs
StartModule Introduction (0:44) StartEmbedding Interfaces (8:15) StartEmbedding Structs (5:57) StartModule ResourcesConcurrency, Goroutines & Channels
StartModule Introduction (0:53) StartWhat Is Concurrency? (1:43) StartIntroducing Goroutines (7:45) StartWorking With Channels (8:59) StartReading From A Channel Multiple Times (1:59) StartTransmitting Values Via Channels (8:25) StartLooping Through Channel Values (5:26) StartUsing Buffered Channels (7:04) StartUsing The "select" Statement (4:09) StartModule Summary (2:43) StartModule Resources
Course Prerequisites
NO prior Go knowledge is required. General programming knowledge (any language) helps but is also NOT required.