Go The Complete Developers Guide

Master the fundamentals and advanced features of the Go Programming Language (Golang)

Last updated 2022-01-10 | 4.6

- Build massively concurrent programs with Go Routines and Channels
- Learn the advanced features of Go
- Understand the differences between commonly used data structures

What you'll learn

Build massively concurrent programs with Go Routines and Channels
Learn the advanced features of Go
Understand the differences between commonly used data structures
Prove your knowledge with dozens of included quiz questions
Apply Interfaces to dramatically simplify complex programs
Use types to future-proof your code and reduce the difficulty of refactors

* Requirements

* Solid experience with another programming language - Javascript
* Python
* Ruby
* Java
* or similar

Description

Go is an open source programming language created by Google.  As one of the fastest growing languages in terms of popularity, its a great time to pick up the basics of Go!

This course is designed to get you up and running as fast as possible with Go.  We'll quickly cover the basics, then dive into some of the more advanced features of the language.  Don't be tricked by other courses that only teach you for-loops and if-statements!  This is the only course on Udemy that will teach you how to use the full power of Go's concurrency model and interface type systems.

Go is designed to be easy to pick up, but tough to master.  Through multiple projects, quizzes, and assignments, you'll quickly start to master the language's quirks and oddities.  Go is like any other language - you have to write code to learn it!  This course will give you ample opportunities to strike out on your own and start working on your own programs.

In this course you will:

  • Understand the basic syntax and control structures of the language
  • Apply Go's concurrency model to build massively parallel systems
  • Grasp the purpose of types, which is especially important if you're coming from a dynamically typed language like Javascript or Ruby
  • Organize code through the use of packages
  • Use the Go runtime to build and compile projects
  • Get insight into critical design decisions in the language
  • Gain a sense of when to use basic language features


Go is one of the fastest-growing programming languages released in the last ten years.  Get job-ready with Go today by enrolling now!

Who this course is for:

  • Anyone who wants to understand the fundamental features of Go

Course content

8 sections • 97 lectures

How to Get Help Preview 00:19

Course Resources Preview 00:38

Join Our Community! Preview 00:07

Environment Setup Preview 02:55

VSCode Installation Preview 02:46

Go Support in VSCode Preview 03:22

Boring Ol' Hello World Preview 03:11

Five Important Questions Preview 06:17

Go Packages Preview 06:10

Import Statements Preview 03:58

File Organization Preview 03:34

Test Your Knowledge: Packages

How to Access Course Diagrams Preview 00:15

Project Overview Preview 02:31

New Project Folder Preview 01:55

Variable Declarations Preview 10:40

Test Your Knowledge: Variable Assignment

Functions and Return Types Preview 07:42

Test Your Knowledge: Functions

Slices and For Loops Preview 10:49

Test Your Knowledge: Slices and For Loops

OO Approach vs Go Approach Preview 04:33

Custom Type Declarations Preview 06:40

Receiver Functions Preview 06:16

Test Your Knowledge: Functions with Receivers

Creating a New Deck Preview 10:57

Slice Range Syntax Preview 05:56

Multiple Return Values Preview 08:11

Test Your Knowledge: Multiple Return Values

Byte Slices Preview 06:59

Deck to String Preview 07:26

Joining a Slice of Strings Preview 06:36

Saving Data to the Hard Drive Preview 07:02

Reading From the Hard Drive Preview 11:18

Error Handling Preview 07:52

Shuffling a Deck Preview 09:42

Random Number Generation Preview 10:30

Testing With Go Preview 03:40

Writing Useful Tests Preview 12:03

Asserting Elements in a Slice Preview 04:23

Testing File IO Preview 09:52

Project Review Preview 06:17

Even and Odd

Get a handle on slices and for loops with this assignment.

Structs in Go Preview 04:43

Defining Structs Preview 03:54

Declaring Structs Preview 04:51

Updating Struct Values Preview 05:36

Embedding Structs Preview 06:30

Structs with Receiver Functions Preview 07:26

Pass By Value Preview 05:52

Structs with Pointers Preview 03:12

Pointer Operations Preview 10:13

Pointer Shortcut Preview 06:26

Gotchas With Pointers Preview 04:09

Test Your Knowledge: Pointers

Reference vs Value Types Preview 07:38

Test Your Knowledge: Value vs Reference Types

What's a Map? Preview 05:47

Manipulating Maps Preview 04:55

Iterating Over Maps Preview 05:16

Differences Between Maps and Structs Preview 05:54

Test Your Knowledge: Maps

Purpose of Interfaces Preview 09:25

Problems Without Interfaces Preview 10:14

Interfaces in Practice Preview 09:16

Rules of Interfaces Preview 07:48

Extra Interface Notes Preview 06:58

The HTTP Package Preview 07:59

Reading the Docs Preview 05:35

More Interface Syntax Preview 03:13

Interface Review Preview 01:53

The Reader Interface Preview 08:17

More on the Reader Interface Preview 07:23

Working with the Read Function Preview 05:38

The Writer Interface Preview 04:15

The io.Copy Function Preview 05:12

The Implementation of io.Copy Preview 04:33

A Custom Writer Preview 07:56

Test Your Knowledge: Interfaces

Interfaces

Test your knowledge of creating interfaces!

Hard Mode Interfaces

Get more practice with interfaces implemented by the standard library.

Website Status Checker Preview 05:28

Printing Site Status Preview 04:32

Serial Link Checking Preview 03:27

Go Routines Preview 07:12

Theory of Go Routines Preview 08:41

Channels Preview 06:09

Channel Implementation Preview 09:16

Blocking Channels Preview 09:55

Receiving Messages Preview 03:32

Repeating Routines Preview 06:45

Alternative Loop Syntax Preview 03:58

Sleeping a Routine Preview 06:14

Function Literals Preview 04:48

Channels Gotcha! Preview 10:32

Channels and Go Routines