Home > Store

Ultimate Go Programming LiveLessons

Ultimate Go Programming LiveLessons

Your browser doesn't support playback of this video. Please download the file to view it.

Online Video

Register your product to gain access to bonus material or receive a coupon.


  • Copyright 2017
  • Edition: 1st
  • Online Video
  • ISBN-10: 0-13-475748-3
  • ISBN-13: 978-0-13-475748-3

14+ 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.

Sample Content

Table of Contents


Part I: Introduction

Lesson 1: Design Guidelines


1.1 Prepare Your Mind
1.2 Productivity versus Performance

1.3 Correctness versus Performance
1.4 Code Reviews

Part II: Language Mechanics

Lesson 2: Language Syntax


2.1 Variables

2.2 Struct Types

2.3 Pointers

2.4 Constants

2.5 Functions

Lesson 3: Data Structures


3.1 Data-Oriented Design

3.2 Arrays

3.3 Slices

3.4 Maps

Lessons 4: Decoupling


4.1 Methods

4.2 Interfaces

4.3 Embedding

4.4 Exporting

Part III: Software Design

Lesson 5: Composition


5.1 Grouping Types

5.2 Decoupling

5.3 Conversion and Assertions

5.4 Interface Pollution

5.5 Mocking

5.6 Design Guidelines

Lesson 6: Error Handling


6.1 Default Error Values

6.2 Error Variables

6.3 Type as Context

6.4 Behavior as Context

6.5 Find the Bug

6.6 Wrapping Errors

Lesson 7: Packaging


7.1 Language Mechanics

7.2 Design Guidelines

7.3 Package-Oriented Design

Part IV: Concurrency

Lesson 8: Goroutines


8.1 Go Scheduler Internals

8.1 Language Mechanics

8.2 Less Is More

Lesson 9: Data Races


9.1 Race Detection

9.2 Atomic Functions

9.3 Mutexes

Lesson 10: Channels


10.1 Language Mechanics

10.2 Unbuffer Examples

10.3 Buffer Example

10.4 Select Statement

10.5 Channel Design Guidelines

10.6 Concurrent Software Design

Lesson 11: Concurrency Patterns


11.1 Context

11.2 Task

11.3 Logger

Part V: Testing and Profiling

Lesson 12: Testing


12.1 Basic Testing

12.2 Web Testing

12.3 Example Tests

12.4 Sub Tests

12.5 Test Coverage

12.6 Benchmarking

12.7 Fuzzing

Lesson 13:  Profiling


13.1 Stack Traces

13.2 Profiling Guidelines

13.3 Memory Tracing

13.4 Scheduler Tracing

13.5 Memory and CPU Profiling

13.6 pprof Profiling

13.7 Blocking Profiling

13.8 Real World Example



Submit Errata

More Information

Unlimited one-month access with your purchase
Free Safari Membership