Mô tả

Go is a programming language created by Google, and this course is the most intuitive, in-depth, and highest-quality Go course on Udemy, with an insane level of attention to detail. You'll understand both the why and how. We've included thousands of animations, exercises, quizzes, examples, challenges, projects, and so on. By the end of the course, you'll become a confident Go programmer from scratch.

Why should you take this course now?

  • Watch ultra-detailed, entertaining, intuitive, and easy to understand illustrations and animations.

  • Solve 1000+ hands-on exercises (solutions are also included).

  • Create projects including a log parser, file scanner, spam masker, and more.

  • Learn Go programming tips and tricks that you can't find easily anywhere else.

  • Learn the Go internals and common Go idioms and best-practices.

Why should you learn Go (aka Golang and Go lang)?

  • 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.

What are you going to learn from this course (briefly)?

  • 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.

Bạn sẽ học được gì

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

Yêu cầu

  • Access to a computer with an internet connection.

Nội dung khoá học

17 sections

Basics

58 lectures
Installation and Resources
00:26
Introduction to Variables
08:05
Example: Path Separator
05:31
When to use a short declaration?
06:11
Let's convert a value!
07:09
⭐️ Get input from terminal ⭐️
04:54
Learn the basics of os.Args
04:06
Naming Things: Recommendations
08:25
★ EXERCISES ★
00:18
What is a Raw String Literal?
06:35
How to get the length of a utf-8 string?
04:36
Example: Banger: Yell it back!
04:41
★ STRINGS EXERCISES ★
00:02
Constants and iota
09:53
★ IOTA EXERCISES ★
00:01
⭐️ Print Formatted Output ⭐️
00:05
Println vs Printf
07:44
What is an Escape Sequence?
04:08
How to print using Printf?
07:47
The verbs can be type-safe too!
05:09
★ PRINTF EXERCISES ★
00:06
⭐️ If Statement ⭐️
00:16
If Statement
05:12
Else and Else If
03:51
★ IF STATEMENT EXERCISES ★
00:04
Tiny Challenge: Validate a single user
02:34
Solution: Validate a single user
07:50
Tiny Challenge: Validate multiple users
01:40
Solution: Validate multiple users
06:46
⭐️ Error Handling ⭐️
00:08
What is a nil value?
04:27
What is an error value?
06:30
Error handling example
03:43
Challenge: Feet to Meter
00:53
Solution: Feet to Meter
03:12
What is a Simple Statement?
04:15
Scopes of simple statements
06:13
Famous Shadowing Gotcha
05:12
★ ERR HANDLING EXERCISES ★
00:05
⭐️ Switch Statement ⭐️
00:08
Learn the Switch Statement Basics
09:25
What is a default clause?
03:26
Use multiple values in case conditions
02:25
Use bool expressions in case conditions
03:51
How does the fallthrough statement work?
06:52
What is a short switch?
03:00
Tiny Challenge: Parts of a Day
04:03
Solution: Parts of a Day
03:36
If vs Switch: Which one to use?
05:58
★ SWITCH EXERCISES ★
00:02
⭐️ Loops ⭐️
00:07
There is only one loop statement in Go
06:02
How to break from a loop?
05:23
How to continue a loop? (+BONUS: Debugging)
05:25
Create a multiplication table
05:40
How to loop over a slice?
05:22
For Range: Learn the easy way!
07:25
★ LOOP EXERCISES #1 ★
00:03

Projects: For Go Basics

13 lectures
Randomization in Go
00:07
Randomization and Go
07:08
Seed the randomizer with time
04:11
Write the Game Logic
07:30
Prove Yourself: Randomization
5 questions
★ RANDOMIZATION EXERCISES ★
00:02
Mini Project: Word Finder
00:05
Build the Word Finder Program
07:35
Labeled Break and Continue
09:08
Break from a Switch using Labels
04:09
Yes there is a "goto" statement in Go
05:18
Prove Yourself: Labeled Statements
5 questions
★ LABELED STATEMENT EXERCISES ★
00:02

Arrays and Memory Layout

19 lectures
Learn Go's Fixed Arrays
00:24
Introduction and Roadmap
06:09
What is an array in Go?
09:19
Let's create an array
04:57
Learn the gotcha when using a for range on arrays
07:33
Prove Yourself: Arrays #1
5 questions
What is a composite literal?
05:06
Refactor the Hipster's Love Bookstore to array literals
06:19
Tiny Challenge #1: Moodly
02:27
Can you compare array values?
07:48
Can you assign an array value to another one?
06:47
★ ARRAYS EXERCISES #1 ★
00:04
How to use multi-dimensional arrays?
08:45
Tiny Challenge #2: Moodly
04:14
Learn the rarely known feature of Go: The Keyed Elements
08:46
Learn the relation between composite and unnamed types
10:43
Prove Yourself: Arrays #2
5 questions
Recap: Arrays
04:09
★ ARRAYS EXERCISES #2 ★
00:03

Project: Write a Retro Clock

7 lectures
Grab the Slides!
00:02
Challenge: Retro Led Clock
06:41
Challenge Explanation
00:33
Let's print the digits
07:26
Let's print the clock
06:49
It's time to animate the clock!
08:16
★ RETRO CLOCK EXERCISES ★
00:27

Slices and Internals

34 lectures
Slices: Master Go's Dynamic Arrays
00:24
Introduction and Roadmap
03:09
Learn the differences between slices and arrays
06:00
Can you compare a slice to another one?
10:15
Create a unique number generator
07:14
Prove Yourself: Slices vs Arrays
5 questions
★ SLICE EXERCISES ★
00:07
Append: Let's grow a slice!
07:25
Prove Yourself: Appending
5 questions
★ APPEND EXERCISES ★
00:08
Slicing: Let's cut that slice!
09:33
How to create pagination using slices? (+ Sprintf)
04:47
Prove Yourself: Slicing
5 questions
★ SLICING EXERCISES ★
00:03
⭐️ Slice Internals ⭐️
00:10
What is a Backing Array?
10:45
Prove Yourself: Backing Array
5 questions
What's a slice header?
05:28
What does a slice header look like in the actual Go runtime code?
07:28
Prove Yourself: Slice Header
5 questions
What is the capacity of a slice?
05:09
Extend a slice using its capacity
06:03
Prove Yourself: Capacity
5 questions
When does the append function create a new backing array?
07:16
Animate: When the backing array of a slice grows?
06:17
Prove Yourself: Mechanics of Append
4 questions
★ SLICE INTERNALS EXERCISES ★
00:25
⭐️ Advanced Operations ⭐️
00:09
Full Slice Expressions: Limit the capacity of a slice
06:03
make(): Preallocate the backing array
09:22
copy(): Copy elements between slices
07:39
How to use multi-dimensional slices?
09:18
Prove Yourself: Advanced Slice Operations
5 questions
★ ADVANCED SLICE OPS EXERCISES ★
00:48

Project: Write a File Finder

5 lectures
Build an Empty File Finder Program
00:16
Fetch the Files
05:27
Write to a file
04:28
Optimize!
04:15
★ FILE FINDER EXERCISES ★
00:07

Project: Animate a Bouncing Ball

7 lectures
Project: Animate a Bouncing Ball
00:29
Challenge
04:10
Challenge Document
01:32
Step #1: Create and Draw the Board
06:26
Step #2: Optimize by adding a Buffer
07:02
Step #3: Animate the Ball
06:21
★ BOUNCING BALL EXERCISES ★
00:35

UTF-8: Encode and Decode

11 lectures
Learn how to encode and decode UTF-8 strings
00:13
Introduction and Roadmap
01:22
★ Resources ★
00:22
Let's learn the basics of bytes, runes and strings
03:36
Let's write a character-set program
06:44
Let's convert, index, and slice bytes, runes and strings
11:27
How can you decode a string?
07:48
String Header: Why strings are immutable?
08:15
Recap: Strings Revisited
01:40
Prove Yourself: Strings, Bytes, and Runes
5 questions
★ UTF-8 EXERCISES ★
00:04

Project: Create a Spam Masker

7 lectures
Project: Let's Build a Spam Masker
00:08
Challenge
03:04
Challenge Document
00:53
Detect the link patterns
05:03
Mask the links
06:17
★ Text Wrapper Challenge ★
00:43
Let's build a Unicode text wrapper
06:01

Maps and Internals

6 lectures
Learn Go's Maps and Internals
00:09
Create an English to Turkish dictionary
08:28
Populate the dictionary
08:13
Map Internals: How maps work behind the scenes?
10:45
Prove Yourself: Maps
5 questions
★ MAP EXERCISES ★
00:10

Project: Create a Log Parser

6 lectures
Scan for Input using bufio.Scanner
00:07
Scan user input using bufio.Scanner
07:07
Use maps as sets
09:22
Create a Log Parser using maps and bufio.Scanner
07:39
Prove Yourself: Input Scanning
5 questions
★ SCANNER EXERCISES ★
00:30

Structs: Encode and Decode JSON

10 lectures
Structs: Organize Data
00:09
What is a struct?
04:33
Let's create a struct!
07:40
When can you compare struct values?
08:11
Go OOP: Struct Embedding
06:46
Rewrite: Log Parser to Structs
05:44
Encode values to JSON
09:11
Decode values from JSON
06:42
Prove Yourself: Structs
5 questions
★ STRUCT EXERCISES ★
00:18

Functions, Pointers and Addressability

15 lectures
Functions: The Building Blocks
00:15
Learn the function basics
09:35
Confine variables to a function
10:06
Rewrite: Log Parser using functions
08:11
Learn the Pass By Value Semantics
07:58
Prove Yourself: Functions
5 questions
★ FUNC EXERCISES ★
00:27
Pointers: Indirectly update data
00:12
What is a pointer?
10:55
Learn the pointer mechanics
10:15
Learn how to work with pointers to composite types
08:01
Rewrite the Log Parser using Pointers
06:37
Pointers or Values? Be Consistent
07:24
Prove Yourself: Pointers
5 questions
★ POINTER EXERCISES ★
00:20

Methods: OOP with Go

4 lectures
Methods: Grab the code
00:10
Methods: Enhance types with additional behavior
11:02
Pointer Receivers: Change the received value
10:28
Non-Structs: Attach methods to almost any type
07:54

Interfaces: Implicit OOP Way

6 lectures
Interfaces: Grab the code!
00:15
Interfaces: Be dynamic!
11:37
Type Assertion: Extract the dynamic value!
11:48
Empty Interface: Represent any type of value
10:25
Type Switch: Detect and extract multiple values
06:27
Promoted Methods: Let's make a little bit of refactoring
09:32

Interfaces: Marshaler, Sorter, and so on

5 lectures
Famous Interfaces: Grab the code!
00:33
Don't interface everything!
11:45
Stringer: Grant a type the ability to represent itself as a string
09:46
Sorter: Let a type know how to sort itself
09:50
Marshalers: Customize JSON encoding and decoding of a type
08:39

BONUS SECTION: THANK YOU!

1 lectures
Bonus Lecture
00:13

Đánh giá của học viên

Chưa có đánh giá
Course Rating
5
0%
4
0%
3
0%
2
0%
1
0%

Bình luận khách hàng

Viết Bình Luận

Bạn đánh giá khoá học này thế nào?

image

Đăng ký get khoá học Udemy - Unica - Gitiho giá chỉ 50k!

Get khoá học giá rẻ ngay trước khi bị fix.