Skip to content
UdemyGoPaid courseIntermediate levelCertificate

Go: Data Structures, Algorithms and Design Patterns with Go (Udemy.com)

Delve into Go's powerful data structure, algorithms, classical design patterns by using TDD with some easy tricks

Created by: Packt Publishing

Last updated April 2019

icon
What you will learn

  • This course is aimed at beginner-level developers in the Go programming language, who would like to learn data structures and algorithms in Golang.

How it compares

Against the other 52 rated Udemy courses in Go on CourseDuck:

  • Rating4.0 out of 5higher than 5% of them
  • Reviews152#31 of 53 by number of reviews
  • Length10.1 hourslonger than 57% of them
  • Last updatedApril 2019earlier than 84% of them

icon
Course Description

Go is a multi-paradigm programming language that has built-in facilities to create concurrent applications. Design Patterns will provide readers with a reference point to software design patterns and CSP concurrency design patterns to help them build applications in a more idiomatic, robust, and convenient way in Go.

With this hands-on, practical course, you'll first have a deep dive into understanding the basic data types, structures, linked lists and doubly linked lists in Go. Then, you will learn about graph algorithms such as binary & trees. You will then learn about CSP concurrency patterns used to maintain thousands of servers. Moving further, you will also gain advanced knowledge about classic design patterns to build concise, readable, and maintainable applications & software.

Finally, you will learn concurrent structures and parallel execution which helps you improve your concepts of Go Concurrency to write concurrent apps & develop some classical design patterns with concurrent structures to maximize parallelism.

Contents and Overview

This training program includes 2 complete courses, carefully chosen to give you the most comprehensive training possible.

The first course, Learning Go Data Structures, and Algorithms will begin by understanding the basic Data types and Structures in Go. Moving forward, you will learn the power of linked lists and doubly linked lists in Go and then learn to implement linear data structures such as stacks and queues. Also, implement binary searches and trees and will explore sorting algorithms in detail. From here, you will learn about graph algorithms and also be introduced to some common data structures used while working with strings. You will learn common techniques and structures used in tasks such as preprocessing, modelling, and transforming data. By the end of this course, you would have mastered functional and reactive implementations of traditional data structures in an easy and efficient manner

The second course, Introduction to Go Classical Patterns starts with a brief introduction to Go programming essentials and quickly moves on to explain the idea behind the creation of design patterns and how they appeared in the 90’s as a common "language" between developers to solve common tasks in object-oriented programming languages. You will then learn how to apply the 23 Gang of Four (GoF) design patterns in Go and also learn about CSP concurrency patterns, the "killer feature" in Go that has helped Google develop software to maintain thousands of servers. With all of this, the book will enable you to understand and apply design patterns in an idiomatic way that will produce concise, readable, and maintainable software.

The third course, Go Behavioural Patterns will take you to an advanced level of knowledge about classic design patterns but, as you will see, the design patterns covered here are quite different, partly because of the lack of inheritance in Go, but also because we have different and more optimal ways to solve the same problems. With all this, the course will enable you to understand and apply design patterns in an idiomatic way that will produce concise, readable, and maintainable software.

The fourth course, Go Concurrency is on learning about concurrent structures and parallel execution. You will use the majority of Go primitives to write concurrent apps, and we will develop some classical design patterns with concurrent structures to maximize parallelism. Also, you will learn some typical structures with which to develop concurrent apps in Go. You will learn how a classical pattern can become more complex if you need it to work in a concurrent way; however, the idea is to understand Go concurrent primitives so that you know how to write your own concurrent design patterns by using the knowledge taken from the course.

About the Authors:    

Gustavo is an experienced software developer and has been writing code since the beginning of the century. He has vast experience working with different languages, including Erlang, JavaScript, and C but with a major interest in Go. He is currently a Technical Leader of a Golang team that builds distributed systems. When he is not coding, you can find him cycling, rock-climbing, and playing guitar in his free time.

Mario Castro Contreras is a software engineer who has specialized in distributed systems and big data solutions. He works as a site reliability engineer, and now he is focused on containerized solutions and apps using most of the Google Cloud suite, especially, Kubernetes. He has wide experience in systems and solutions integration, and he has written many scalable and reliable 12-factor apps using Go and Docker. He has designed big data architectures for financial services and the media, and he has written data processing pipelines using event-driven architectures entirely in Go. He is also very active in the open source community, and you can find him on his GitHub account with the username sayden. In the past, he has also written mobile applications and backends in Java. Mario is passionate about programming languages, and he finds the best balance between fun and productivity in Go; however, recently he enjoys writing in Rust and embedded systems in C. He is also passionate about road cycling and winter sports.

icon
Udemy Discount

The discount is applied through our link. Open the course from here and Udemy's current promotional price is applied at checkout on most courses, no code to type.

Some courses are excluded from Udemy's promotions. If the price does not drop, clear your browser cookies and use the button again.

icon
Instructor Details

Packt Publishing

Packt are an established, trusted, and innovative global technical learning publisher, founded in Birmingham, UK with over eighteen years experience delivering rich premium content from ground-breaking authors and lecturers on a wide range of emerging and established technologies for professional development.


Packt’s purpose is to help technology professionals advance their knowledge and support the growth of new technologies by publishing vital user focused knowledge-based content faster than any other tech publisher, with a growing library of over 9,000 titles, in book, e-book, audio and video learning formats, our multimedia content is valued as a vital learning tool and offers exceptional support for the development of technology knowledge.


We publish on topics that are at the very cutting edge of technology, helping IT professionals learn about the newest tools and frameworks in a way that suits them.

icon
More courses by Packt Publishing

$64.99

$11.99

$11.99

$59.99

$59.99

$59.99

icon
More Go courses

$19.99

$99.99

$99.99

$79.99

$89.99

$94.99

icon
Reviews

4.0

152 ratings on Udemy

Select a bar to show only those reviews.Select the bar again to show every rating.

By Sapardi on 2/24/2024

There are many terms and insight i caught in learning this book.

By Sean Menezes on 1/22/2023

Fantastic! Love it. step by step immersion walk through for the visually and hands-on types :)

By Thanh Nguyen on 2/16/2022

Very poorly created course, not well design and more like cut and paste from many bits and peaces to put together a cheap course.

By Adegunwa Toluwalope on 12/7/2021

Well explained lessons.

By Dimas Yudha Prawira on 11/12/2021

the overall of this section is good hence the explanation is little bit too rush, new learner about design pattern and new to Go, may find it difficult to follow at the first.

By Chris Montgomery on 5/18/2020

Great explanations, if you are already familiar with the language. If this is your first exposure to the language, you will get introduced to the main differentiators of the language, but I would suggest supplemental materials.

By Niall Grant on 5/3/2020

The content might be ok but it is narrated by people who clearly do not understand what they are saying and it makes this course unlistenable. A real Shame.

By Wu Huijie on 4/18/2020

This course provided useful insight into programming design patterns from golang and from general perspective, and useful tips on various ways to implement concurrency code in golang. It could be better if source codes used in videos are provided.

By Bharathi S on 12/9/2019

The way this course is structured is really good, as it flows from the very basics to high-level implementations of concurrency.

By David Ayala on 3/8/2019

Great patterns, this is an advanced course. You need to know how to code in Go or at least be really really good at any other language.

Showing all 10 reviews on CourseDuck

Read all 152 reviews on Udemy

icon
Quality Score

No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.

Content Quality
/
Video Quality
/
Qualified Instructor
/
Course Pace
/
Course Depth & Coverage
/

Overall Score : 80 / 100