Go Bootcamp: Master Golang with 1000+ Exercises and Projects

15h 27m 7s
English
Paid

Course description

Deeply understand and master the Go Programming Language (Golang) from scratch 1000+ hands-on exercises and projects.

Read more about the course

Get a Real In-Depth Understanding of Go and its Internal Mechanisms by:

  • Ultra-detailed, entertaining, intuitive, and easy to understand animations.

Learn by doing:

  • Write a log parser, file scanner, spam masker and more.

  • Solve 1000+ hands-on exercises.

  • Learn a lot of tips and tricks that you can't find easily anywhere else.

What's included?

  • Go OOP: Interfaces and Methods

    • Internals of Methods and Interfaces

    • Functions and Pointers: Program design, pass by value, and addressability.

    • Implicit interface satisfaction

    • Type assertion and Type Switch

    • Empty interface: []interface{} vs interface{}

    • Value, Pointer, and Nil Receivers

    • Promoted Methods

  • Famous Interfaces

    • Tips about when to use interfaces

    • fmt.Stringer, sort.Sort, json.Marshaler, json.Unmarshaler, and so on.

  • Composite Types: Arrays, Slices, Maps, and Structs

    • Internals of Slices and Maps

    • Backing array, slice header, capacity, and map header

    • JSON encoding and decoding, field tags, embedding

    • Make, copy, full Slice expressions and append mechanics

    • UTF-8 encoding and decoding

  • Go Type System Mechanics

    • Type inference, underlying, predeclared, and unnamed types.

    • Untyped constants and iota.

    • Blank Identifier, short declaration, redeclaration, scopes, naming conventions

  • I/O

    • Process Command-Line Arguments, printf, working with files, bufio.Scanner, ...

  • How to create your own Go packages

    • How to run multiple Go files, and how to use third-party packages

  • Go tools

    • Debugging Go code, go doc, and others.

  • ...and more.

Why Go?

Go is one of the most desired, easy to learn, and the highest paying programming languages. There are 1+ million Go programmers around the world, and the number is increasing each day exponentially. It's been used by Google, Facebook, Twitter, Uber, Docker, Kubernetes, Heroku, and many others.

Go is Efficient like C, C++, and Java, and Easy to use like Python and Javascript. It's Open-Source, Simple, Powerful, Efficient, Cross-Platform (OS X, Windows, Linux, ...), Compiled, Garbage-Collected, and Concurrent.

Go is best for Command-line Tools, Web APIs, Distributed Network Applications like Microservices, Database Engines, Big-Data Processing Pipelines, and so on.

Go has been designed by one of the most influential people in the industry:

  • Unix: Ken Thompson

  • UTF-8, Plan 9: Rob Pike

  • Hotspot JVM (Java Virtual Machine): Robert Griesemer

Requirements:
  • Access to a computer with an internet connection.
Who this course is for:
  • Beginners who have never programmed before.
  • Programmers switching languages to Go.
  • Intermediate Go programmers who want to level up their skills!
  • Intermediate Go programmers who want to learn the internals of slices, maps, interfaces, and so on.

What you'll learn:

  • Watch the free videos to see how I teach Go programming in depth.
  • Practice with 1000+ Exercises (with included solutions)
  • Pass Interviews: Master Go Internals In-Depth
  • Master Interfaces and Internals
  • Master Slice Internals: Slice Header and Memory Allocations
  • Master Map Internals: Map Header
  • Encode and Decode JSON
  • Create a log file parser, spam masker, retro led clock, console animations, dictionary programs and so on.

Watch Online

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 138 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing

Watch Online Go Bootcamp: Master Golang with 1000+ Exercises and Projects

0:00
/
#1: Introduction to Variables

All Course Lessons (138)

#Lesson TitleDurationAccess
1
Introduction to Variables Demo
08:06
2
Example: Path Separator
05:32
3
When to use a short declaration?
06:12
4
Let's convert a value!
07:10
5
Learn the basics of os.Args
04:07
6
Naming Things: Recommendations
08:26
7
What is a Raw String Literal?
06:36
8
How to get the length of a utf-8 string?
04:37
9
Example: Banger: Yell it back!
04:43
10
Constants and iota
09:54
11
Println vs Printf
07:45
12
What is an Escape Sequence?
04:09
13
How to print using Printf?
07:48
14
The verbs can be type-safe too!
05:10
15
If Statement
05:13
16
Else and Else If
03:52
17
Tiny Challenge: Validate a single user
02:35
18
Solution: Validate a single user
07:51
19
Tiny Challenge: Validate multiple users
01:41
20
Solution: Validate multiple users
06:48
21
What is a nil value?
04:28
22
What is an error value?
06:31
23
Error handling example
03:44
24
Challenge: Feet to Meter
00:54
25
Solution: Feet to Meter
03:13
26
What is a Simple Statement?
04:17
27
Scopes of simple statements
06:14
28
Famous Shadowing Gotcha
05:13
29
Learn the Switch Statement Basics
09:26
30
What is a default clause?
03:27
31
Use multiple values in case conditions
02:26
32
Use bool expressions in case conditions
03:52
33
How does the fallthrough statement work?
06:53
34
What is a short switch?
03:01
35
Tiny Challenge: Parts of a Day
04:04
36
Solution: Parts of a Day
03:37
37
If vs Switch: Which one to use?
05:59
38
There is only one loop statement in Go
06:03
39
How to break from a loop?
05:24
40
How to continue a loop? (+BONUS: Debugging)
05:26
41
Create a multiplication table
05:41
42
How to loop over a slice?
05:23
43
For Range: Learn the easy way!
07:27
44
Randomization and Go
07:09
45
Seed the randomizer with time
04:12
46
Write the Game Logic
07:31
47
Build the Word Finder Program
07:36
48
Labeled Break and Continue
09:09
49
Break from a Switch using Labels
04:10
50
Yes there is a "goto" statement in Go
05:20
51
Introduction and Roadmap
06:10
52
What is an array in Go?
09:20
53
Let's create an array
04:58
54
Learn the gotcha when using a for range on arrays
07:34
55
What is a composite literal?
05:07
56
Refactor the Hipster's Love Bookstore to array literals
06:20
57
Tiny Challenge #1: Moodly
02:28
58
Can you compare array values?
07:49
59
Can you assign an array value to another one?
06:48
60
How to use multi-dimensional arrays?
08:46
61
Tiny Challenge #2: Moodly
04:15
62
Learn the rarely known feature of Go: The Keyed Elements
08:47
63
Learn the relation between composite and unnamed types
10:44
64
Recap: Arrays
04:10
65
Challenge: Retro Led Clock
06:43
66
Let's print the digits
07:27
67
Let's print the clock
06:51
68
It's time to animate the clock!
08:18
69
Introduction and Roadmap
03:10
70
Learn the differences between slices and arrays
06:01
71
Can you compare a slice to another one?
10:16
72
Create a unique number generator
07:15
73
Append: Let's grow a slice!
07:27
74
Slicing: Let's cut that slice!
09:34
75
How to create pagination using slices? (+ Sprintf)
04:48
76
What is a Backing Array?
10:46
77
What's a slice header?
05:29
78
What does a slice header look like in the actual Go runtime code?
07:29
79
What is the capacity of a slice?
05:10
80
Extend a slice using its capacity
06:04
81
When does the append function create a new backing array?
07:17
82
Animate: When the backing array of a slice grows?
06:18
83
Full Slice Expressions: Limit the capacity of a slice
06:04
84
make(): Preallocate the backing array
09:23
85
copy(): Copy elements between slices
07:40
86
How to use multi-dimensional slices?
09:19
87
Fetch the Files
05:28
88
Write to a file
04:29
89
Optimize!
04:17
90
Challenge
04:11
91
Step #1: Create and Draw the Board
06:27
92
Step #2: Optimize by adding a Buffer
07:03
93
Step #3: Animate the Ball
06:22
94
Introduction and Roadmap
01:23
95
Let's learn the basics of bytes, runes and strings
03:37
96
Let's write a character-set program
06:45
97
Let's convert, index, and slice bytes, runes and strings
11:28
98
How can you decode a string?
07:50
99
String Header: Why strings are immutable?
08:16
100
Recap: Strings Revisited
01:41
101
Challenge
03:05
102
Detect the link patterns
05:04
103
Mask the links
06:18
104
Let's build a Unicode text wrapper
06:02
105
Create an English to Turkish dictionary
08:29
106
Populate the dictionary
08:14
107
Map Internals: How maps work behind the scenes?
10:46
108
Scan user input using bufio.Scanner
07:08
109
Use maps as sets
09:23
110
Create a Log Parser using maps and bufio.Scanner
07:40
111
What is a struct?
04:34
112
Let's create a struct!
07:41
113
When can you compare struct values?
08:12
114
Go OOP: Struct Embedding
06:47
115
Rewrite: Log Parser to Structs
05:46
116
Encode values to JSON
09:12
117
Decode values from JSON
06:43
118
Learn the function basics
09:36
119
Confine variables to a function
10:07
120
Rewrite: Log Parser using functions
08:12
121
Learn the Pass By Value Semantics
07:59
122
What is a pointer?
10:56
123
Learn the pointer mechanics
10:16
124
Learn how to work with pointers to composite types
08:02
125
Rewrite the Log Parser using Pointers
06:38
126
Pointers or Values? Be Consistent
07:25
127
Methods: Enhance types with additional behavior
11:03
128
Pointer Receivers: Change the received value
10:29
129
Non-Structs: Attach methods to almost any type
07:55
130
Interfaces: Be dynamic!
11:38
131
Type Assertion: Extract the dynamic value!
11:49
132
Empty Interface: Represent any type of value
10:26
133
Type Switch: Detect and extract multiple values
06:28
134
Promoted Methods: Let's make a little bit of refactoring
09:33
135
Don't interface everything!
11:46
136
Stringer: Grant a type the ability to represent itself as a string
09:47
137
Sorter: Let a type know how to sort itself
09:51
138
Marshalers: Customize JSON encoding and decoding of a type
08:40

Unlock unlimited learning

Get instant access to all 137 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Comments

0 comments

Want to join the conversation?

Sign in to comment

Similar courses

How to develop a productive HTTP client in Golang (Go)

How to develop a productive HTTP client in Golang (Go)

Sources: udemy
Have you ever called a REST API from your Go program? Did you implemented your own HTTP client or did you ended up using some of the thousand libraries out there? Do you know wh...
9 hours 44 minutes 29 seconds
Ultimate Debugging

Ultimate Debugging

Sources: ardanlabs.com
Ultimate Debugging is a course that will help you master the art of debugging software at a deep level. Explore advanced methods of identifying and fixing bugs in your code and ...
10 hours 15 minutes 13 seconds
Foundations of Debugging for Golang

Foundations of Debugging for Golang

Sources: ByteSizeGo, Matt Boyle
Debugging is the most important skill that most people are never taught. Being able to debug locally and in production is a critical skill for any Go...
Let's Go! Learn to Build Professional Web Applications With Golang [Professional Package]

Let's Go! Learn to Build Professional Web Applications With Golang [Professional Package]

Sources: Alex Edwards
Go is a great language for building web applications. But teaching yourself from blog posts and the standard-library documentation can often leave you with....