Home > Store

Ultimate Go Programming LiveLessons (Video Training), 2nd Edition

Ultimate Go Programming LiveLessons (Video Training), 2nd Edition

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.

Description

  • Copyright 2019
  • Edition: 2nd
  • Online Video
  • ISBN-10: 0-13-526166-X
  • ISBN-13: 978-0-13-526166-8

16+ Hours of Video Instruction

Ultimate Go Programming LiveLessons, Second Edition, 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

Learn How To

  • Read code with an understanding of the language mechanics and internals
  • Understand costs by knowing the different semantics of the language
  • Code and design software more effectively
  • Design your Go projects and better ways to package your APIs
  • Write multithreaded code in Go and learn the things you need to focus on
  • Unit test your code and write benchmarks to validate assumptions
  • Profile and trace your Go programs to identify and fix bugs and to make improvements


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, Networking, Security, and more. Learn more about Pearson Video training at http://www.informit.com/video. Video Lessons are available for download for offline viewing within the streaming format. Look for the green arrow in each lesson.

Sample Content

Table of Contents

Introduction

Part I: Introduction

Lesson 1: Design Guidelines

Topics

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

Topics

2.1 Variables

2.2 Struct Types

2.3 Pointers

2.4 Constants

Lesson 3: Data Structures

Topics

3.1 Data-Oriented Design

3.2 Arrays

3.3 Slices

3.4 Maps

Lesson 4: Decoupling

Topics

4.1 Methods

4.2 Interfaces

4.3 Embedding

4.4 Exporting

Part III: Software Design

Lesson 5: Composition

Topics

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

Topics

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

Topics

7.1 Language Mechanics

7.2 Design Guidelines

7.3 Package-Oriented Design

Part IV: Concurrency

Lesson 8: Goroutines

Topics

8.1 OS Scheduler Mechanics

8.2 Go Scheduler Mechanics

8.3 Creating Goroutines

Lesson 9: Data Races

Topics

9.1 Cache Coherency and False Sharing

9.2 Synchronization with Atomic Functions

9.3 Synchronization with Mutexes

9.4 Race Detection

9.5 Map Data Race

9.6 Interface-Based Race Condition

Lesson 10: Channels

Topics

10.1 Signaling Semantics

10.2 Basic Patterns

10.3 Pooling Pattern

10.4 Fan Out Pattern

10.5 Drop Pattern

10.6 Cancellation Pattern

Lesson 11: Concurrency Patterns

Topics

11.1 Context

11.2 Failure Detection

Part V: Testing and Benchmarking

Lesson 12: Testing

Topics

12.1 Basic Unit Testing

12.2 Table Unit Testing

12.3 Mocking Web Server Response

12.4 Testing Internal Endpoints

12.5 Example Tests

12.6 Sub Tests

12.7 Code Coverage

Lesson 13: Benchmarking

Topics

13.1 Basic Benchmarking

13.2 Sub Benchmarks

13.3 Validate Benchmarks

Part VI: Profiling and Tracing

Lesson 14: Profiling and Tracing

Topics

14.1 Profiling Guidelines

14.2 Stack Traces

14.3 Micro Level Optimization

14.4 Macro Level Optimization

14.5 Execution Tracing

Summary

Updates

Submit Errata

More Information

Unlimited one-month access with your purchase
Free Safari Membership