CursosPago

Go Bootcamp: Master Golang with 1000+ Exercises and Projects

15:27:07 Inglés Premium 03/04/2024 138 videos

Descripción del curso

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

Curriculum

Section 1: Module 1

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

About the Instructor

Instructor

udemy

Course

$0.00

$8.00
Que esta incluido?
  • Streaming Multiplataforma
  • Acceso de por vida
  • Soporte al cliente
  • Actualizaciones gratuitas