We may earn an affiliate commission when you visit our partners.
Pluralsight logo

Concurrent Programming in Go

Mike Van Sickle

Modern software systems must operate with a high degree of concurrency to take advantage of the hardware they are running on. This course will teach you how to get the most out of Go's features to build robust and elegant concurrent programs.

Read more

Modern software systems must operate with a high degree of concurrency to take advantage of the hardware they are running on. This course will teach you how to get the most out of Go's features to build robust and elegant concurrent programs.

One of Go’s primary design goals is to simplify the creation of concurrent programs. In this course, Concurrent Programming in Go, you’ll learn how to do just that. First, you’ll warm up by reviewing Go’s essential concurrency tools - goroutines and channels. Next, you’ll explore these constructs to learn their full capabilities. You’ll learn some design patterns that allow concurrent systems that are predictable and well-organized. Finally, you’ll learn about other features Go offers to ensure your concurrent programs are efficient and well-behaved. When you’re finished with this course, you’ll have the skills and knowledge of Go’s concurrency needed to create robust, clear, and efficient concurrent programs with Go.

Enroll now

What's inside

Syllabus

Course Overview
Concurrency in Go
Goroutines
Channels
Read more
Common Concurrency Patterns
Additional Tools to Support Concurrent Programming

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Delves into the essential modules of Go for writing organized and efficient multi-threaded applications
Suitable for learners seeking to enhance their mastery of software development in Go
Provides well-structured learning with a clear progression from foundational to advanced concepts
Incorporates practical examples and patterns to drive home concepts and enable effective implementation
Focuses on teaching techniques to ensure robust and efficient concurrent programs

Save this course

Save Concurrent Programming in Go to your list so you can find it easily later:
Save

Activities

Coming soon We're preparing activities for Concurrent Programming in Go. These are activities you can do either before, during, or after a course.

Career center

Learners who complete Concurrent Programming in Go will develop knowledge and skills that may be useful to these careers:
Machine Learning Engineer
Machine Learning Engineers design and develop machine learning models and algorithms. They are responsible for ensuring that machine learning models are accurate, reliable, and scalable. This course may be useful to Machine Learning Engineers who want to learn how to develop and maintain concurrent and parallel software systems in Go.
Software Engineer
Software Engineers apply the principles of computer science and software design to the creation of computer software. They are responsible for the development, deployment, and maintenance of software systems. This course may be useful to Software Engineers who want to learn how to develop concurrent and parallel software applications in Go.
Web Developer
Web Developers design, develop, and maintain websites and web applications. They are responsible for ensuring that websites and web applications are reliable, scalable, and secure. This course may be useful to Web Developers who want to learn how to develop and maintain concurrent and parallel web applications in Go.
Data Engineer
Data Engineers design and develop systems for storing, processing, and analyzing data. They are responsible for ensuring that data systems are scalable, reliable, and secure. This course may be useful to Data Engineers who want to learn how to develop and maintain concurrent and parallel software systems in Go.
Quantitative Analyst
Quantitative Analysts use mathematical and statistical models to analyze financial data. They are responsible for developing trading strategies and making investment recommendations. This course may be useful to Quantitative Analysts who want to learn how to develop and maintain concurrent and parallel software systems in Go.
Computer Scientist
Computer Scientists conduct research in the field of computer science. They are responsible for developing new theories and algorithms for solving computational problems. This course may be useful to Computer Scientists who want to learn how to develop and maintain concurrent and parallel software systems in Go.
Game Developer
Game Developers design, develop, and maintain video games. They are responsible for ensuring that video games are fun, engaging, and visually appealing. This course may be useful to Game Developers who want to learn how to develop and maintain concurrent and parallel video games in Go.
DevOps Engineer
DevOps Engineers are responsible for the development and maintenance of software systems. They work with developers and operations teams to ensure that software systems are deployed and maintained efficiently and reliably. This course may be useful to DevOps Engineers who want to learn how to develop and maintain concurrent and parallel software systems in Go.
Cloud Engineer
Cloud Engineers design and develop cloud-based applications and services. They are responsible for ensuring that cloud-based systems are scalable, reliable, and secure. This course may be useful to Cloud Engineers who want to learn how to develop and maintain concurrent and parallel software systems in Go.
Software Developer
Software Developers design, develop, and maintain software applications. They are responsible for ensuring that software applications are reliable, scalable, and secure. This course may be useful to Software Developers who want to learn how to develop and maintain concurrent and parallel software applications in Go.
Software Architect
Software Architects design and develop the overall structure and architecture of software systems. They are responsible for ensuring that software systems are scalable, reliable, and maintainable. This course may be useful to Software Architects who want to learn how to design and develop concurrent and parallel software systems in Go.
Mobile Developer
Mobile Developers design, develop, and maintain mobile applications. They are responsible for ensuring that mobile applications are reliable, scalable, and secure. This course may be useful to Mobile Developers who want to learn how to develop and maintain concurrent and parallel mobile applications in Go.
Computational Scientist
Computational Scientists use computers to solve scientific problems. They are responsible for developing and using mathematical models to simulate and analyze scientific phenomena. This course may be useful to Computational Scientists who want to learn how to develop and maintain concurrent and parallel software systems in Go.
Systems Engineer
Systems Engineers design, develop, and maintain complex systems, including software systems. They are responsible for ensuring that systems are reliable, scalable, and secure. This course may be useful to Systems Engineers who want to learn how to design and develop concurrent and parallel software systems in Go.
Embedded Systems Engineer
Embedded Systems Engineers design, develop, and maintain embedded systems. Embedded systems are computer systems that are embedded in other devices, such as cars, airplanes, and medical devices. This course may be useful to Embedded Systems Engineers who want to learn how to develop and maintain concurrent and parallel embedded systems in Go.

Reading list

We've selected 12 books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Concurrent Programming in Go.
Provides a comprehensive overview of Go's concurrency features and best practices, with a focus on practical examples and real-world scenarios. It valuable reference for developers looking to deepen their understanding of Go's concurrency model.
While not specifically focused on concurrency, this book provides a comprehensive and authoritative introduction to the Go programming language. It covers the basics of Go, including concurrency primitives, and valuable resource for anyone new to Go or looking to strengthen their foundational knowledge.
Comprehensive guide to parallel programming in C#. It covers all the basics, including threads, locks, and synchronization. It good choice for beginners who want to learn about concurrency in a language other than Go.
Provides a comprehensive introduction to Go programming. It covers the basics of the language, including concurrency primitives, and valuable resource for anyone new to Go or looking to strengthen their foundational knowledge.
Is collection of practical recipes for writing Go code. It covers a range of topics, including concurrency.
Comprehensive guide to concurrent and distributed programming. It covers all the basics, including threads, locks, and synchronization. It good choice for students who want to learn about concurrency in a more academic setting.
Comprehensive guide to concurrency in Java. It covers all the basics, including threads, locks, and synchronization. It good choice for beginners who want to learn about concurrency in a language other than Go.
Is another practical guide to the Go programming language. It covers all the basics, including concurrency, and great resource for beginners.
While not specific to Go, this book provides a comprehensive overview of the principles and patterns involved in designing and building scalable, reliable data-intensive systems. It covers topics such as distributed systems, data consistency, and fault tolerance, which are relevant to concurrent programming in general.
Provides a practical guide to building web applications with Go. It covers topics such as web frameworks, HTTP request handling, and data persistence. While not specifically focused on concurrency, it provides examples of how to use Go's concurrency features in web development.
Introduces the concepts and practices of cloud-native development using Go. It covers topics such as containerization, microservices, and distributed systems. While not specifically focused on concurrency, it provides insights into how to design and build scalable and resilient cloud-native applications in Go.

Share

Help others find this course page by sharing it with your friends and followers:
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser