Hands-on Concurrency with Go

Build better software faster with concurrency in Go

4.40 (53 reviews)
Udemy
platform
English
language
Programming Languages
category
Hands-on Concurrency with Go
263
students
2.5 hours
content
Aug 2018
last update
$44.99
regular price

What you will learn

Theory of concurrency and parallelism

How to use Goroutines to implement concurrent systems

The Go memory sharing model with channels

The importance of I/O concurrent design for high-performance software

How to improve performance by recognizing and exploiting inherent data parallelism

Techniques for improving your software’s architecture with the “gopher” model

Best practices for building concurrent systems in Go

Why take this course?

This course presents you a hands-on look at creating concurrent and parallel programs using the Go programming language. From a blazing-fast garbage-collected memory model to effortless, lightweight Goroutines to speedy communication using in-memory channels, Go makes powerful concurrency primitives available which are unparalleled in other languages. This course provides you with both the theoretical and practical knowledge you will need to apply them to your own software.

This course covers the basics of concurrency and parallelism in Go, along with in-depth looks at the three types of concurrent and parallel program models and an introduction to concurrent architecture. This course will show you the multitude of tools available in Go for implementing concurrent systems, including goroutines, blocking channels, buffered channels, and non-blocking in-memory communication.You will build multiple concurrent applications and examine the benefits and drawbacks of the various concurrency options available.

By the end of the course, you will be able to rapidly and confidently identify concurrent and parallel problems and apply the Go language concurrency constructs to solve them.   

About the Author

Leo Tindall is a software developer and hacker from San Diego whose interests include scalability, parallel software, and machine learning.

Content

What are Concurrency and Parallelism?

The Course Overview
The World of Concurrent Software
Scalability – Why Does My Website Keep Crashing?
Performance — Getting the Most out of Your CPU
Reliability — What Do You Mean, us-east-1 Is Down?
Maintainability

Goroutines, channels, and concurrency in Go

Go Programming Review
Goroutines
Communicating by Sharing Memory
Sharing Memory by Communicating with Channels
Queuing Work with Buffered Channels
Non-Blocking Channel Operations
Concurrency is Cheap

Data Parallelism

What is Data Parellism
The Barycenter Problem
A Naive Barycenter Implementation
A Parallel Barycenter Implementation
Performance Comparison

I/O Concurrency

What is I/O Concurrency?
A Reddit and Hacker News Client
I/O Concurrent Design
Putting it All Together
Testing

Task Parallelism

What is Task Parallelism?
A Cautionary Tale
A Reddit and HackerNews Search Engine
Building a Web Service in Go
Incorporating the Reddit and HackerNews Client
Advantages and Disadvantages of Task-Parallel Design

Concurrent Architecture

What is Concurrent Architecture?
Data Parallelism in Concurrent Architecture
I/O Concurrency in Concurrent Architecture
Task Parallelism in Concurrent Architecture
Advantages and Disadvantages of Concurrent Architecture
Applying Concurrent Design in Projects Large and Small

Screenshots

Hands-on Concurrency with Go - Screenshot_01Hands-on Concurrency with Go - Screenshot_02Hands-on Concurrency with Go - Screenshot_03Hands-on Concurrency with Go - Screenshot_04

Reviews

Stephan
March 17, 2021
I took a chance on the course, since it is pretty expensive and I'm always concerned it will not live up to expectation. That said what's there is fantastic and I'm sad that the course doesn't feel terribly complete to me. It also doesn't seem like anyone is supporting the questions of this course here. Things I'd recommend to make this course 5 stars: - Add a clear link to a gist or github link where the code examples reside. - Actual responses to questions int he course. - I was fooled by the number of stars provided to this. Unfortunately these are not being weighted by the after-sales support of the course creators. Lesson learnt! Summary: As a very interesting blog post this would get top marks. For something you pay money for? Not so much. I am relieved I did not pay the full retail price.
Dennis
December 21, 2020
Topics: 5/5 Presentation: 5/5 Cutting: 4/5 LiveCoding: 4/5 Very nice course! If you want to start coding in go (concurrent) this course is a very good entrypoint. The only thing I am complaining about is that in some "live-coding" parts were some mistakes that weren't fixed on screen. They weren't in the resources though, so everything can be reviewed and tested. At some points it seems like you wanted to say something and it were cut off, but that has a minor impact. Good course, very engaging presentation!
Devraj
October 28, 2018
Author is direct and to the point. He will code in front of us along with explanation which helps to understand the code. You need to have basic knowledge of Golang in order to gain out of this course. Overall I learned lot of about concurrency and I'm glad I took this course.

Charts

Price

Hands-on Concurrency with Go - Price chart

Rating

Hands-on Concurrency with Go - Ratings chart

Enrollment distribution

Hands-on Concurrency with Go - Distribution chart
1834550
udemy ID
8/2/2018
course created date
8/31/2020
course indexed date
Bot
course submited by