Go: The Complete Developer’s Guide (Golang)

Go: The Complete Developer’s Guide (Golang)

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 83 lectures (8h 53m) | 2.66 GB

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

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!

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
Table of Contents

Getting Started
1 How to Get Help
2 Course Resources
3 Join Our Community!
4 Environment Setup
5 VSCode Installation
6 Go Support in VSCode

A Simple Start
7 Boring Ol’ Hello World
8 Five Important Questions
9 Go Packages
10 Import Statements
11 File Organization
12 How to Access Course Diagrams

Deeper Into Go
13 Project Overview
14 New Project Folder
15 Variable Declarations
16 Functions and Return Types
17 Slices and For Loops
18 OO Approach vs Go Approach
19 Custom Type Declarations
20 Receiver Functions
21 Creating a New Deck
22 Slice Range Syntax
23 Multiple Return Values
24 Byte Slices
25 Deck to String
26 Joining a Slice of Strings
27 Saving Data to the Hard Drive
28 Reading From the Hard Drive
29 Error Handling
30 Shuffling a Deck
31 Random Number Generation
32 Testing With Go
33 Writing Useful Tests
34 Asserting Elements in a Slice
35 Testing File IO
36 Project Review

Organizing Data With Structs
37 Structs in Go
38 Defining Structs
39 Declaring Structs
40 Updating Struct Values
41 Embedding Structs
42 Structs with Receiver Functions
43 Pass By Value
44 Structs with Pointers
45 Pointer Operations
46 Pointer Shortcut
47 Gotchas With Pointers
48 Reference vs Value Types

49 What’s a Map
50 Manipulating Maps
51 Iterating Over Maps
52 Differences Between Maps and Structs

53 Purpose of Interfaces
54 Problems Without Interfaces
55 Interfaces in Practice
56 Rules of Interfaces
57 Extra Interface Notes
58 The HTTP Package
59 Reading the Docs
60 More Interface Syntax
61 Interface Review
62 The Reader Interface
63 More on the Reader Interface
64 Working with the Read Function
65 The Writer Interface
66 The io.Copy Function
67 The Implementation of io.Copy
68 A Custom Writer

Channels and Go Routines
69 Website Status Checker
70 Printing Site Status
71 Serial Link Checking
72 Go Routines
73 Theory of Go Routines
74 Channels
75 Channel Implementation
76 Blocking Channels
77 Receiving Messages
78 Repeating Routines
79 Alternative Loop Syntax
80 Sleeping a Routine
81 Function Literals
82 Channels Gotcha!

83 Bonus!