Course Highlights
  • Learn from a Go Contributor
  • Learn Go Tips & Tricks that you can't find easily anywhere else
  • Go from a total Go beginner to a confident Go programmer
  • Practice Go with 1000+ Exercises (with included solutions)
  • Understand Go In-Depth with Animated Illustrations (Pass Interviews)
  • Learn the Go internals and common Go idioms and best-practices
  • Create a Log File Parser that parses log files
  • Create a Spam Masker that masks spammy words within a block of text
  • Create a command-line Retro Led Clock that shows time
  • Create Console Animations, Dictionary Programs, and more
Curriculum

58 Topics
Installation and Resources
Introduction to Variables
Example: Path Separator
When to use a short declaration?
Let's convert a value!
⭐️ Get input from terminal ⭐️
Learn the basics of os.Args
Naming Things: Recommendations
★ EXERCISES ★
What is a Raw String Literal?
How to get the length of a utf-8 string?
Example: Banger: Yell it back!
★ STRINGS EXERCISES ★
Constants and iota
★ IOTA EXERCISES ★
⭐️ Print Formatted Output ⭐️
Println vs Printf
What is an Escape Sequence?
How to print using Printf?
The verbs can be type-safe too!
★ PRINTF EXERCISES ★
⭐️ If Statement ⭐️
If Statement
Else and Else If
★ IF STATEMENT EXERCISES ★
Tiny Challenge: Validate a single user
Solution: Validate a single user
Tiny Challenge: Validate multiple users
Solution: Validate multiple users
⭐️ Error Handling ⭐️
What is a nil value?
What is an error value?
Error handling example
Challenge: Feet to Meter
Solution: Feet to Meter
What is a Simple Statement?
Scopes of simple statements
Famous Shadowing Gotcha
★ ERR HANDLING EXERCISES ★
⭐️ Switch Statement ⭐️
Learn the Switch Statement Basics
What is a default clause?
Use multiple values in case conditions
Use bool expressions in case conditions
How does the fallthrough statement work?
What is a short switch?
Tiny Challenge: Parts of a Day
Solution: Parts of a Day
If vs Switch: Which one to use?
★ SWITCH EXERCISES ★
⭐️ Loops ⭐️
There is only one loop statement in Go
How to break from a loop?
How to continue a loop? (+BONUS: Debugging)
Create a multiplication table
How to loop over a slice?
For Range: Learn the easy way!
★ LOOP EXERCISES #1 ★

13 Topics
Randomization in Go
Randomization and Go
Seed the randomizer with time
Write the Game Logic
Prove Yourself: Randomization
★ RANDOMIZATION EXERCISES ★
Mini Project: Word Finder
Build the Word Finder Program
Labeled Break and Continue
Break from a Switch using Labels
Yes there is a "goto" statement in Go
Prove Yourself: Labeled Statements
★ LABELED STATEMENT EXERCISES ★

19 Topics
Learn Go's Fixed Arrays
Introduction and Roadmap
What is an array in Go?
Let's create an array
Learn the gotcha when using a for range on arrays
Prove Yourself: Arrays #1
What is a composite literal?
Refactor the Hipster's Love Bookstore to array literals
Tiny Challenge #1: Moodly
Can you compare array values?
Can you assign an array value to another one?
★ ARRAYS EXERCISES #1 ★
How to use multi-dimensional arrays?
Tiny Challenge #2: Moodly
Learn the rarely known feature of Go: The Keyed Elements
Learn the relation between composite and unnamed types
Prove Yourself: Arrays #2
Recap: Arrays
★ ARRAYS EXERCISES #2 ★

7 Topics
Grab the Slides!
Challenge: Retro Led Clock
Challenge Explanation
Let's print the digits
Let's print the clock
It's time to animate the clock!
★ RETRO CLOCK EXERCISES ★

34 Topics
Slices: Master Go's Dynamic Arrays
Introduction and Roadmap
Learn the differences between slices and arrays
Can you compare a slice to another one?
Create a unique number generator
Prove Yourself: Slices vs Arrays
★ SLICE EXERCISES ★
Append: Let's grow a slice!
Prove Yourself: Appending
★ APPEND EXERCISES ★
Slicing: Let's cut that slice!
How to create pagination using slices? (+ Sprintf)
Prove Yourself: Slicing
★ SLICING EXERCISES ★
⭐️ Slice Internals ⭐️
What is a Backing Array?
Prove Yourself: Backing Array
What's a slice header?
What does a slice header look like in the actual Go runtime code?
Prove Yourself: Slice Header
What is the capacity of a slice?
Extend a slice using its capacity
Prove Yourself: Capacity
When does the append function create a new backing array?
Animate: When the backing array of a slice grows?
Prove Yourself: Mechanics of Append
★ SLICE INTERNALS EXERCISES ★
⭐️ Advanced Operations ⭐️
Full Slice Expressions: Limit the capacity of a slice
make(): Preallocate the backing array
copy(): Copy elements between slices
How to use multi-dimensional slices?
Prove Yourself: Advanced Slice Operations
★ ADVANCED SLICE OPS EXERCISES ★

5 Topics
Build an Empty File Finder Program
Fetch the Files
Write to a file
Optimize!
★ FILE FINDER EXERCISES ★

7 Topics
Project: Animate a Bouncing Ball
Challenge
Challenge Document
Step #1: Create and Draw the Board
Step #2: Optimize by adding a Buffer
Step #3: Animate the Ball
★ BOUNCING BALL EXERCISES ★

11 Topics
Learn how to encode and decode UTF-8 strings
Introduction and Roadmap
★ Resources ★
Let's learn the basics of bytes runes and strings
Let's write a character-set program
Let's convert index and slice bytes runes and strings
How can you decode a string?
String Header: Why strings are immutable?
Recap: Strings Revisited
Prove Yourself: Strings Bytes and Runes
★ UTF-8 EXERCISES ★

7 Topics
Project: Let's Build a Spam Masker
Challenge
Challenge Document
Detect the link patterns
Mask the links
★ Text Wrapper Challenge ★
Let's build a Unicode text wrapper

6 Topics
Learn Go's Maps and Internals
Create an English to Turkish dictionary
Populate the dictionary
Map Internals: How maps work behind the scenes?
Prove Yourself: Maps
★ MAP EXERCISES ★

6 Topics
Scan for Input using bufio.Scanner
Scan user input using bufio.Scanner
Use maps as sets
Create a Log Parser using maps and bufio.Scanner
Prove Yourself: Input Scanning
★ SCANNER EXERCISES ★

10 Topics
Structs: Organize Data
What is a struct?
Let's create a struct!
When can you compare struct values?
Go OOP: Struct Embedding
Rewrite: Log Parser to Structs
Encode values to JSON
Decode values from JSON
Prove Yourself: Structs
★ STRUCT EXERCISES ★

15 Topics
Functions: The Building Blocks
Learn the function basics
Confine variables to a function
Rewrite: Log Parser using functions
Learn the Pass By Value Semantics
Prove Yourself: Functions
★ FUNC EXERCISES ★
Pointers: Indirectly update data
What is a pointer?
Learn the pointer mechanics
Learn how to work with pointers to composite types
Rewrite the Log Parser using Pointers
Pointers or Values? Be Consistent
Prove Yourself: Pointers
★ POINTER EXERCISES ★

4 Topics
Methods: Grab the code
Methods: Enhance types with additional behavior
Pointer Receivers: Change the received value
Non-Structs: Attach methods to almost any type

6 Topics
Interfaces: Grab the code!
Interfaces: Be dynamic!
Type Assertion: Extract the dynamic value!
Empty Interface: Represent any type of value
Type Switch: Detect and extract multiple values
Promoted Methods: Let's make a little bit of refactoring

5 Topics
Famous Interfaces: Grab the code!
Don't interface everything!
Stringer: Grant a type the ability to represent itself as a string
Sorter: Let a type know how to sort itself
Marshalers: Customize JSON encoding and decoding of a type

1 Topic
Bonus Lecture

  Write a Review

Go Bootcamp: Master Golang with 1000+ Exercises and Projects

Go to Paid Course