Ultimate Go Programming

Video description

15+ Hours of Video Instruction

Ultimate Go Programming LiveLessons 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, Bill 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.

Skill Level

  • Intermediate

What You Will Learn

  • Language mechanics and internals
  • Data structures and mechanical sympathy
  • Software design and best practices
  • Project structure and design
  • Concurrent software design
  • Testing and benchmarking
  • Tracing and profiling

Who Should Take This Course

Any intermediate-level developer who has some experience with other programming languages and wants to learn Go. This video is perfect for anyone who wants a jump-start in learning Go or wants a more thorough understanding of the language, its internals and how to design software.

Course Requirements

  • Studied CS in school or has a minimum of two years of experience programming full time professionally.
  • Familiar with structural and object-oriented programming styles.
  • Has worked with arrays, lists, queues and stacks.
  • Understands processes, threads and synchronization at a high level.
  • Operating Systems
  • Has worked with a command shell
  • Knows how to maneuver around the file system
  • Understands what environment variables are

About Pearson Video Training

Pearson publishes expert-led video tutorials covering a wide selection of technology topics designed to teach you the skills you need to succeed. These professional and personal technology videos feature world-leading author instructors published by your trusted technology brands: Addison-Wesley, Cisco Press, Pearson IT Certification, Prentice Hall, Sams, and Que. Topics include: IT Certification, Programming, Web Development, Mobile Development, Home and Office Technologies, Business and Management, and more. Learn more about Pearson Video Training at http:// www.informit.com/video.

Table of contents

  1. Introduction
    1. Ultimate Go Programming: Introduction
  2. Lesson 1: Design Guidelines
    1. 1.0 Topics
    2. 1.1 Prepare Your Mind
    3. 1.2 Productivity versus Performance
    4. 1.3 Correctness versus Performance
    5. 1.4 Code Reviews
  3. Lesson 2: Language Syntax
    1. 2.0 Topics
    2. 2.1 Variables
    3. 2.2 Struct Types
    4. 2.3.1 Pointers, Part 1
    5. 2.3.2 Pointers, Part 2
    6. 2.3.3 Pointers, Part 3
    7. 2.3.4 Pointers, Part 4
    8. 2.3.5 Pointers, Part 5
    9. 2.4 Constants
    10. 2.5 Functions
  4. Lesson 3: Data Structures
    1. 3.0 Topics
    2. 3.1 Data-Oriented Design
    3. 3.2 Arrays
    4. 3.3.1 Slices, Part 1
    5. 3.3.2 Slices, Part 2
    6. 3.3.3 Slices, Part 3
    7. 3.4 Maps
  5. Lesson 4: Decoupling
    1. 4.0 Topics
    2. 4.1.1 Methods, Part 1
    3. 4.1.2 Methods, Part 2
    4. 4.2.1 Interfaces, Part 1
    5. 4.2.2 Interfaces, Part 2
    6. 4.3 Embedding
    7. 4.4 Exporting
  6. Lesson 5: Composition
    1. 5.0 Topics
    2. 5.1 Grouping Types
    3. 5.2.1 Decoupling, Part 1
    4. 5.2.2 Decoupling, Part 2
    5. 5.3 Conversion and Assertions
    6. 5.4 Interface Pollution
    7. 5.5 Mocking
    8. 5.6 Design Guidelines
  7. Lesson 6: Error Handling
    1. 6.0 Topics
    2. 6.1 Default Error Values
    3. 6.2 Error Variables
    4. 6.3 Type as Context
    5. 6.4 Behavior as Context
    6. 6.5 Find the Bug
    7. 6.6 Wrapping Errors
  8. Lesson 7: Packaging
    1. 7.0 Topics
    2. 7.1 Language Mechanics
    3. 7.2 Design Guidelines
    4. 7.3 Package-Oriented Design
  9. Lesson 8: Goroutines
    1. 8.0 Topics
    2. 8.1 Go Scheduler Internals
    3. 8.2 Language Mechanics
    4. 8.3 Less Is More
  10. Lesson 9: Data Races
    1. 9.0 Topics
    2. 9.1 Race Detection
    3. 9.2 Atomic Functions
    4. 9.3 Mutexes
  11. Lesson 10: Channels
    1. 10.0 Topics
    2. 10.1.1 Language Mechanics, Part 1
    3. 10.1.2 Language Mechanics, Part 2
    4. 10.2 Unbuffer Examples
    5. 10.3 Buffer Example
    6. 10.4 Select Example
    7. 10.5 Channel Design Guidelines
    8. 10.6 Concurrent Software Design
  12. Lesson 11: Concurrency Patterns
    1. 11.0 Topics
    2. 11.1 Context
    3. 11.2 Task
    4. 11.3 Logger
  13. Lesson 12: Testing
    1. 12.0 Topics
    2. 12.1 Basic Testing
    3. 12.2 Web Testing
    4. 12.3 Example Tests
    5. 12.4 Sub Tests
    6. 12.5 Test Coverage
    7. 12.6 Benchmarking
    8. 12.7 Fuzzing
  14. Lesson 13: Profiling
    1. 13.0 Topics
    2. 13.1 Stack Traces
    3. 13.2 Profiling Guidelines
    4. 13.3 Memory Tracing
    5. 13.4 Scheduler Tracing
    6. 13.5 Memory and CPU Profiling
    7. 13.6 pprof Profiling
    8. 13.7 Blocking Profiling
    9. 13.8 Real World Example
  15. Summary
    1. Ultimate Go Programming: Summary

Product information

  • Title: Ultimate Go Programming
  • Author(s): William Kennedy
  • Release date: May 2017
  • Publisher(s): Pearson
  • ISBN: 0134757475