Ultimate Go: Advanced Concepts

Video description

15+ Hours of Video Instruction

Go is lightweight, simple, and perfect for modern cloud-native and microservices development.

Overview

Ultimate Go: Advanced Concepts Video Course provides an intensive, comprehensive, and idiomatic view of the Go programming language. This course focuses on both the specification and implementation of the language, including topics ranging from language syntax, design, and guidelines to concurrency, testing, and profiling. This class is perfect for anyone who wants a jump-start in learning Go or wants a more thorough understanding of the language and its internals.

In this video training, William Kennedy starts by providing a deep and intensive dive into Go’s language syntax, idioms, implementation, and specification. Then Bill guides you through the essential things you need to know about designing software in Go. With that strong foundation, Bill then teaches the language mechanics behind Go’s concurrency primitives and covers all the things you need to know to design concurrent software. Finally, Bill covers the tooling Go provides for testing, tracing, and profiling your programs.

About the Instructor

William Kennedy is a managing partner at Ardan Studio in Miami, Florida, a mobile, web, and systems development company. He is also a coauthor of the book Go in Action, the author of the blog “GoingGo.Net,” and a founding member of GoBridge, which is working to increase Go adoption through embracing diversity. Ardan Labs is a software development, consulting, staffing, and training organization that specializes in Go, DevOps, Rust, Kubernetes, Terraform, and Blockchain technologies. For over 12 years, Ardan Labs has been trusted by startups and Fortune 500 companies to train their engineers and develop highly technical software solutions. If you’re eager to elevate your Go skills to an expert level, get in touch and we can point you to a solution that fits your needs!

Skill Level

  • Beginner
  • Intermediate 

Learn How To

  • Write better, more idiomatic, and performant code
  • Focus on micro-level engineering decisions
  • Use your new understanding of the internals to leverage the core tradeoffs on readability, simplicity and performance.
  • Utilize data semantics, guidelines, mechanical sympathy, data-oriented design, and package-oriented design
  • Structure your Go projects for the long term.
  • Manage packages, modules, and dependencies

Who Should Take This Course

  • Those learning their first programming language
  • Experienced programmers who want to take advantage of the power of GO

Course Requirements

  • You need to know how to program
  • You need to understand and core concepts of working with computers (such as files, HTTP, memory management, other)
  • Studied CS in school or have a minimum of two years of experience programming full-time professionally
  • Be familiar with structural and object-oriented programming styles.
  • Have worked with arrays, lists, queues and stacks
  • Understand processes, threads and synchronization at a high level

Table of contents

  1. Lesson 1 Strings and Formatted Output
    1. 1.1 Prepare Your Mind
    2. 1.2 Productivity versus Performance
    3. 1.3 Correctness versus Performance
    4. 1.4 Code Reviews
    5. 1.5 If Performance Matters
  2. Lesson 2 Memory and Data Semantics
    1. 2.1 Variables
    2. 2.2 Struct Types
    3. 2.3.1 Pointers: Pass by Values
    4. 2.3.2 Pointers: Sharing Data
    5. 2.3.3 Pointers: Escape Analysis
    6. 2.3.4 Pointers: Stack Growth
    7. 2.3.5 Pointers: GC
    8. 2.4 Constants
  3. Lesson 3 Data Structures
    1. 3.1 Arrays: Mechanical Sympathy
    2. 3.2.1 Arrays: Semantics
    3. 3.2.1 Arrays: Range Mechanics
    4. 3.3.1 Slices: Declare, Length, and Reference Types
    5. 3.3.2 Slices: Appending Slices
    6. 3.3.3 Slices: Taking Slices of Slices
    7. 3.3.4 Slices: Strings and References
    8. 3.3.5 Slices: Strings and Slices
    9. 3.3.6 Slices: Range Mechanics
    10. 3.4 Maps
  4. Lesson 4 Decoupling
    1. 4.1.1 Methods: Value and Pointer Semantics
    2. 4.1.2 Methods: Function/Method Variables
    3. 4.2.1 Interfaces: Polymorphism
    4. 4.2.2 Interfaces: Method Sets and Address of Value
    5. 4.2.3 Interfaces: Storage by Value
    6. 4.2.4 Interfaces: Type Assertion
    7. 4.3 Embedding
    8. 4.4 Exporting
  5. Lesson 5 Composition
    1. 5.1 Grouping Types
    2. 5.2 Decoupling
    3. 5.3.1 Conversion and Assertions Part 1
    4. 5.3 Conversion and Assertions Part 2
    5. 5.4 Interface Pollution
    6. 5.5 Mocking
  6. Lesson 6 Error Handling
    1. 6.1 Default Error Values
    2. 6.2 Error Variables
    3. 6.3 Type as Context
    4. 6.4 Behavior as Context
    5. 6.5 Find the Bug
    6. 6.6 Wrapping Errors
  7. Lesson 7 Packaging
    1. 7.1 Language Mechanics Design Guidelines
    2. 7.2 Package Oriented Design
  8. Lesson 8 Go Routines
    1. 8.1 OS Scheduler Mechanics
    2. 8.2 Go Scheduler Mechanics
    3. 8.3 Creating Go Routines
  9. Lesson 9 Data Races
    1. 9.1 Managing Data Races
  10. Lesson 10 Channels
    1. 10.1 Signaling Semantics
    2. 10.2 Basic Patterns
    3. 10.3 Fan Out
    4. 10.4 Wait for Task
    5. 10.5 Pooling
    6. 10.6 Fan Out Semaphore
    7. 10.7 Fan Out Bounded
    8. 10.8 Drop Pattern
    9. 10.9 Cancellation Pattern
  11. Lesson 11 Concurrency Patterns
    1. 11.1 Failure Detection
  12. Lesson 12 Testing
    1. 12.1 Basic Unit Testing
    2. 12.2 Table Unit Testing
    3. 12.3 Mocking Web Server Response
    4. 12.4 Testing Internal Endpoints
    5. 12.5 Sub Tests
    6. 12.6 Code Coverage
  13. Lesson 13 Benchmarks
    1. 13.1 Basic Benchmarking
    2. 13.2 Validate Benchmarking
    3. 13.3 CPU-Bound Benchmarking
    4. 13.4 IO-Bound Benchmarking
  14. Lesson 14 Profiling and Tracing
    1. 14.1 Profiling Guidelines
    2. 14.2 Stack Traces
    3. 14.3 Micro Level Optimization
    4. 14.4 Macro Level Optimization
    5. 14.5 Execution Tracing

Product information

  • Title: Ultimate Go: Advanced Concepts
  • Author(s): William Kennedy
  • Release date: March 2024
  • Publisher(s): Pearson
  • ISBN: 0135339502