Go for Developers: Practical Techniques for Effective Coding
4h 38mIntermediate2024-10-24
Authors

Pearson

Cory LaNou

Mark Bates
Course details
Get a thorough introduction to Golang, the Go programming language. This course enables you to quickly understand and use Go syntax, core features, and idioms. Learn how to write robust, reliable, well-performing production code right from the outset.
Learning objectives
Manage packages, modules, and dependencies.
Apply Golang basics, such as variable declaration, types, and control flow.
Work effectively with collection types, iteration, functions, structs, and pointers.
Understand Go slices and use them properly.
Write idiomatic Go, using principles such as embedding and composition.
Expertly use concurrency to improve code performance.
Create proper tests to quickly identify and fix problems.
Write simpler, better code with generics and interfaces.
Take advantage of channels, context, sync primitives, and other advanced features.
Learning objectives
Manage packages, modules, and dependencies.
Apply Golang basics, such as variable declaration, types, and control flow.
Work effectively with collection types, iteration, functions, structs, and pointers.
Understand Go slices and use them properly.
Write idiomatic Go, using principles such as embedding and composition.
Expertly use concurrency to improve code performance.
Create proper tests to quickly identify and fix problems.
Write simpler, better code with generics and interfaces.
Take advantage of channels, context, sync primitives, and other advanced features.
Skills covered
GoProgramming FoundationsGoogleProgramming LanguagesSoftware DevelopmentOne-Off
Concepts
0. Introduction
- 01 - Go fundamentals - Introduction
1. Packages, Modules, and Dependencies
- 02 - Topics
- 03 - Understanding Go modules
- 04 - Packages
- 05 - Files, folders, and organization
- 06 - Dependency management
2. Go Language Basics
- 07 - Topics
- 08 - Language overview
- 09 - Numbers
- 10 - Strings and UTF-8
- 11 - Variables
- 12 - Constants
- 13 - Naming identifiers
- 14 - Printing and formatting
3. Arrays, Slices, and Iterations
- 15 - Topics
- 16 - Arrays and slices
- 17 - How slices work
- 18 - Iteration
4. Maps and Control Structures
- 19 - Topics
- 20 - Maps
- 21 - If statements
- 22 - Switch statements
5. Functions
- 23 - Topics
- 24 - Arguments and return values
- 25 - First class functions
- 26 - Variadic arguments
- 27 - Deferring function calls
- 28 - The init function
6. Structs, Methods, and Pointers
- 29 - Topics
- 30 - Structs
- 31 - Methods
- 32 - Pointers
7. Testing
- 33 - Topics
- 34 - Testing basics
- 35 - Running tests
- 36 - Code coverage
- 37 - Table-driven testing
- 38 - Test helpers
8. Interfaces
- 39 - Topics
- 40 - What are interfaces
- 41 - The empty interface
- 42 - Using interfaces
- 43 - Type assertion
9. Errors
- 44 - Topics
- 45 - Errors
- 46 - Panics
- 47 - Custom errors
- 48 - Wrapping and unwrapping errors
- 49 - Using errors.As() and errors.Is()
10. Generics
- 50 - Topics
- 51 - What are generics
- 52 - Type constraints
- 53 - Defining constraints
- 54 - Underlying type constraints
- 55 - Generic types
11. Channels
- 56 - Topics
- 57 - Concurrency
- 58 - Channels
- 59 - Iteration and select statements
- 60 - Closed channels
- 61 - Buffered channels
- 62 - System signals
12. Context
- 63 - Topics
- 64 - Contexts
- 65 - Context values
- 66 - Cancellation propagation
- 67 - Context errors
13. Synchronization
- 68 - Topics
- 69 - Wait groups
- 70 - Error groups
- 71 - Data races
- 72 - Locking with a mutex
- 73 - Performing tasks only once
14. Working with Files
- 74 - Topics
- 75 - Directories
- 76 - File path helpers
- 77 - Files
- 78 - Using file system interfaces
- 79 - Embedding files
Conclusion
- 80 - Go fundamentals - Summary