Go (Golang) Programming The Complete Go Bootcamp 2023
Course description
Fully updated for 2021. This Go Programming course covers every major topic, including Pointers, Methods, and Interfaces (Go OOP), Concurrency In-Depth (Goroutines, Channels, Mutexes, WaitGroups), Go Packages and Modules, and many more! This course IS NOT like any other Go Programming course you can take online. At the end of this course, you will MASTER all the Golang key concepts starting from scratch and you'll be in the top Go Programmers.
Read more about the course
This is a brand new Go Programming course just updated and is a perfect match for both beginners and experienced developers!
Welcome to this practical Go Programming course for learning Go, the language created to solve "Google-size" problems.
Go (Golang) will be one of the most in-demand programming languages across the job market in the near future! Go is on a Trajectory to Become the Next Enterprise Programming Language. Cutting-Edge Technologies and Software are already written in Go, for example, Docker, Kubernetes, Terraform, or Ethereum. In addition to Google, Golang is used by Uber, Netflix, Medium, Pinterest, Slack, SoundCloud, Dropbox and so many more!
Why this Go Programming course?
This Go (Golang) course is a unique experience on Udemy. There are many other Go courses you can choose from, but this course is completely different.
For every Go language key concept, you'll get NOT ONLY a video but also:
1. Tens of Quizzes
2. Practice Exercises and Challenges
3. Coding Section Full of Examples
4. Slides with main points
Watch Online
| # | Lesson Title | Duration |
|---|---|---|
| 1 | Why Go Programming? Why now? | 02:25 |
| 2 | The Go Playground. Your First Go Program | 07:59 |
| 3 | Setup the Programming Environment on Windows (Go, Git and VSCode) | 09:40 |
| 4 | Code Organization | 04:00 |
| 5 | The Structure of a Go Application | 07:29 |
| 6 | Compiling (go build) and Running Go Applications (go run) | 08:26 |
| 7 | Formatting Go Source Code (gofmt) | 05:31 |
| 8 | Variables in Go | 08:44 |
| 9 | Multiple Declarations | 06:39 |
| 10 | Types and Zero Values | 05:23 |
| 11 | Comments | 03:09 |
| 12 | Naming Conventions in Go | 06:47 |
| 13 | Package fmt | 15:21 |
| 14 | Constants in Go | 08:28 |
| 15 | Constant Rules | 03:40 |
| 16 | Constant Expressions. Typed vs. Untyped Constants | 07:51 |
| 17 | IOTA | 04:44 |
| 18 | Go Data Types - Part 1 | 08:34 |
| 19 | Go Data Types - Part 2 | 06:29 |
| 20 | Operations on Types: Arithmetic and Assignment Operators | 09:40 |
| 21 | Comparison and Logical Operators | 06:41 |
| 22 | Overflows | 06:26 |
| 23 | Converting Numeric Types | 05:46 |
| 24 | Converting Numbers to Strings and Strings to Numbers | 07:55 |
| 25 | Defined (Named) Types - part 1 | 02:42 |
| 26 | Defined (Named) Types - part 2 | 05:49 |
| 27 | Alias Declarations | 03:45 |
| 28 | If, Else If and Else Statements | 07:43 |
| 29 | Command Line Arguments: os.Args | 06:41 |
| 30 | Simple If Statement | 08:54 |
| 31 | For Loops | 03:31 |
| 32 | Where is the While Loop in Go? | 02:54 |
| 33 | For and Continue Statements | 02:24 |
| 34 | For and Break Statements | 03:19 |
| 35 | Label Statement | 05:56 |
| 36 | Goto | 03:10 |
| 37 | Switch Statement | 08:05 |
| 38 | Scopes in Go | 08:15 |
| 39 | Intro to Arrays | 02:45 |
| 40 | Declaring Arrays | 05:38 |
| 41 | Array Operations | 07:52 |
| 42 | Arrays with Keyed Elements | 06:56 |
| 43 | Intro to Slices | 01:45 |
| 44 | Declaring Slices and Basic Slice Operations | 07:38 |
| 45 | Comparing Slices | 06:04 |
| 46 | Appending to a Slice. Copying Slices | 05:19 |
| 47 | Slice Expressions | 06:44 |
| 48 | Slice Internals: Backing Array and Slice Header -part 1 | 06:02 |
| 49 | Slice Internals: Backing Array and Slice Header - part 2 | 08:47 |
| 50 | Append, Length and Capacity In-Depth | 08:34 |
| 51 | Intro to Strings | 08:14 |
| 52 | Intro to Runes, Bytes and Unicode Code Points | 03:06 |
| 53 | Coding Runes and Strings. Decoding Strings Byte by Byte and Rune by Rune | 06:51 |
| 54 | String Length in Bytes and Runes | 03:14 |
| 55 | Slicing Strings | 03:48 |
| 56 | Strings Package Part1: Contains, ContainsAny, Count, ToLower, ToUpper, EqualFold | 07:53 |
| 57 | Strings Package Part2. Manipulating Strings: Repeat, Replace, Split, Join, Field | 10:05 |
| 58 | Intro to Maps | 03:23 |
| 59 | Declaring Maps, Working with Maps | 14:29 |
| 60 | Comparing Maps | 03:30 |
| 61 | Map Header. Cloning Maps | 05:03 |
| 62 | Open, Close, Rename, Move, Remove Files | 13:46 |
| 63 | Writing Bytes to File: os.Write and ioutil.WriteFile | 06:42 |
| 64 | Writing to Files using a Buffered Writer (bufio Package) | 07:08 |
| 65 | Reading n Bytes from a File. Reading a File using a Buffered Reader | 06:26 |
| 66 | Reading a File Line by Line Using a Scanner | 06:26 |
| 67 | Scanning for User Input. Reading From Stdin | 05:43 |
| 68 | Organizing Data with Structs | 01:51 |
| 69 | Creating Structs | 08:49 |
| 70 | Retrieving and Updating Struct Fields | 05:40 |
| 71 | Anonymous Structs and Anonymous Struct Fields | 05:56 |
| 72 | Embedded Structs | 05:36 |
| 73 | Intro to Functions | 02:31 |
| 74 | Function Parameters, Arguments and Return Values | 09:19 |
| 75 | Variadic Functions - Part 1 | 04:37 |
| 76 | Variadic Functions - Part 2 | 08:03 |
| 77 | Defer Statement | 04:24 |
| 78 | Anonymous Functions | 04:46 |
| 79 | Computer Memory and Pointers | 03:43 |
| 80 | Declaring Pointers. Address of and Dereferencing Operators | 11:09 |
| 81 | Pointer to Pointer. Comparing Pointers | 05:43 |
| 82 | Passing and Returning Pointers From Functions - Part 1 | 05:02 |
| 83 | Passing Pointers to Functions. Passing by Value vs. Passing by Pointer - Part 2 | 13:57 |
| 84 | Receiver Functions (Methods) | 07:53 |
| 85 | Methods with a Pointer Receiver | 10:20 |
| 86 | Intro to Interfaces | 05:44 |
| 87 | Implementing Interfaces | 07:25 |
| 88 | Interface Dynamic Type and Polymorphism | 04:16 |
| 89 | Type Assertions and Type Switches | 06:54 |
| 90 | Embedded Interfaces | 05:07 |
| 91 | Empty Interface | 07:17 |
| 92 | Concurrency vs. Parallelism | 03:50 |
| 93 | Intro to Goroutines | 04:11 |
| 94 | Spawning Goroutines. The go Keyword | 08:29 |
| 95 | WaitGroups | 04:09 |
| 96 | Project: URL Checker and Page Downloader | 12:17 |
| 97 | Project Refactoring Using WaitGroups : URL Checker and Page Downloader | 04:54 |
| 98 | Data Race | 07:08 |
| 99 | Go Race Detector | 04:04 |
| 100 | Mutexes | 04:48 |
| 101 | Intro to Channels | 09:41 |
| 102 | Goroutines and Channels | 05:01 |
| 103 | Goroutines, Channels and Anonymous Function | 02:58 |
| 104 | Project Refactoring Using Channels: URL Checker and Page Downloader | 08:03 |
| 105 | Project Refactoring Using Channels and Anonymous Function | 07:39 |
| 106 | Unbuffered Channels | 04:16 |
| 107 | Buffered Channels | 08:53 |
| 108 | Select Statement | 06:51 |
| 109 | Go Packages Overview | 02:39 |
| 110 | Creating a Package | 09:44 |
| 111 | GOPATH and Packages In Depth | 07:40 |
| 112 | Exporting Names. Private vs. Private Access | 05:46 |
| 113 | Import Statement and Scopes | 09:04 |
| 114 | The Init function | 04:28 |
| 115 | Go Modules Overview | 04:07 |
| 116 | Importing and Using Go Modules | 08:39 |
| 117 | Creating Your Own Go Module | 05:21 |
| 118 | Publish the Module on GitHub. Semantic Versioning | 10:59 |
| 119 | Releasing a Bug Fix and a Minor Update | 08:15 |
| 120 | Releasing a Major Update | 06:38 |
| 121 | Using Multi-Version Dependency | 02:31 |
| 122 | Installing Ubuntu in a VM | 13:22 |
| 123 | Things to Do After Installing Ubuntu | 10:17 |
| 124 | Terminals, Consoles, Shells and Command | 09:34 |
| 125 | Linux Command Structure | 06:56 |
| 126 | Getting Help, Man Pages (man, type, help, apropos) | 11:10 |
| 127 | Mastering the Terminal: The TAB Key | 06:43 |
| 128 | Mastering the Terminal: Keyboard Shortcuts | 04:59 |
| 129 | Mastering the Terminal: The Bash History | 08:41 |
| 130 | root vs. Non-privileged Users. Getting root Access (sudo, su, passwd) | 11:25 |
| 131 | Intro to The Linux Files System | 05:29 |
| 132 | The Filesystem Hierarchy Standard (FHS) | 09:40 |
| 133 | Absolute vs. Relative Paths. Walking through the File System (pwd, cd, tree) | 13:11 |
| 134 | The LS Command In Depth (ls) | 08:23 |
| 135 | Understanding File Timestamps: atime, mtime, ctime (stat, touch, date) | 09:45 |
| 136 | Sorting Files by Timestamp | 01:55 |
| 137 | File Types in Linux (ls -F, file) | 08:23 |
| 138 | Viewing Files - Part 1 (cat) | 04:29 |
| 139 | Viewing Files - Part 2 (less, more) | 03:51 |
| 140 | Viewing Files - Part 3 (tail, head, watch) | 06:19 |
| 141 | Creating Files and Directories (touch, mkdir) | 07:11 |
| 142 | Copying Files and Directories (cp) | 06:21 |
| 143 | Moving and Renaming Files and Directories (mv) | 07:47 |
| 144 | Removing Files and Directories (rm, shred) | 09:29 |
| 145 | Working With Pipes in Linux (|, wc) | 08:08 |
| 146 | Command Redirection (>, >>, 2> &>, cut, tee) | 14:32 |
| 147 | Finding Files and Directories - Part 1 (locate, which) | 10:12 |
| 148 | Finding Files and Directories - Part 2 (find) | 11:44 |
| 149 | Find and Exec | 04:25 |
| 150 | Searching for String Patterns in Text Files (grep) | 12:33 |
| 151 | Searching for Strings in Binary Files (strings) | 03:40 |
| 152 | Comparing Files (cmp, diff, sha256) | 09:55 |
| 153 | Compressing and Archiving Files and Directories (tar, gzip) | 14:16 |
| 154 | Hard Links and the Inode Structure | 09:30 |
| 155 | Working With Symlinks. Symlinks vs. Hard Links | 05:23 |
Comments
0 commentsWant to join the conversation?
Sign in to commentSimilar courses
Ultimate Go: Software Design with Kubernetes 2.0
Ultimate Go
Advanced Branching and Looping in GO
Writing An Interpreter In Go