skip to Main Content
Sale

Go: Data Structures, Algorithms and Design Patterns with Go

$99.99 $12.00

4.88 (12 reviews)
Category:

Description

What you’ll 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.

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.

Who this course is for:

  • Understanding the basics to get started with Golang
  • Implementing stacks and queues & data structure
  • Exploring different concurrency models for data processing
  • Build your own tiny distributed search engine
  • Encapsulate the creation of complex objects in an idiomatic way in Go
  • Create unique instances that cannot be duplicated within a program
  • Understand the importance of object encapsulation to provide clarity and maintainability
  • Learn most Go primitives and write concurrent apps
  • Develop some classical design patterns with concurrent structures to maximize parallelism

Course content

  • Learning Go Data Structures and Algorithms
  • Introduction to Go Classical Patterns
  • Go Behavioral Patterns
  • Go Concurrency

12 reviews for Go: Data Structures, Algorithms and Design Patterns with Go

  1. Luis Brito

    I can definitely see this course helping breaking through that initial barrier when it comes to learning a programming language. I’m positive I’ll finish it and hopefully master python by then.

  2. Abdallah Galal Abouhussein

    I would like to share my personnel experience, i`m very pleased and happy for taking this impressive course because Dr. Angela always makes it simple and easy to understand and always makes a precaution section before or after any bug that may appear to some students and also write or record the solution for us, and each word she said is very real and easy to understand.
    Thanks Dr. Angela
    Abdallah Galal

  3. Jiaqing Fan

    Very good course. Dr Angela explains things very clearly. The exercises are interactive and helpful.

    Angela’s voice is like ASMR in most lessons. So you won’t lose focus?

  4. Jaime Sánchez Blanco

    Every concept is very well explained so you can assimilate it, and the teacher insists in practicing daily to get the habit of programming. It really motivates to keep studying and practicing every day.

  5. Bradley Carouthers

    3 days in and I’ve already learned more than other training programs where I’ve put months in. Her teaching style is both efficient and effective.

    Edit: Now on day 29 and the course has held up my expectations and hopes. The rise in complexity is not too sharp, and every day feels like an accomplishment. Angela takes her time to explain things without rushing, yet is able to pack tons of information in nuggets of time.

    Still recommend supplemental exposure for a more wholesome grasp. Though, this should be quite enough

  6. Tommy Prévost

    Very good course.

    PROs: lots of coding exercises, clear explanations, great examples, adapted to 2021’s reality.

    CONs: past the first 30 lessons, many similar coding hands-on.

  7. Quang Tu

    I love all the lectures and challenges of this course. I finally find myself in love with coding. This is definitely a fun course. Thank you Angela for this great course.

  8. Fortunate Eze

    This course is nothing short of AMAZING. The level of love and sincere desire to see students succeed present in this course is a rare sight. This course is fun, it’s challenging, it’s suspense-filled, it makes you feel good about yourself solving those challenges. You don’t take this course and memorise codes, you take it and you know what you’re doing because you literally do it yourself.

    It couldn’t possibly be any more obvious that Angela brought out her whole heart, time, energy and resources to give us a course that if priced based on it’s value, many of us certainly can’t afford. I mean, she kept advising and encouraging us to keep going, because she knows the road could get bumpy, she made a few jokes and used funny animations so we smile along the way keeping it fun. Why some people can’t see this and would rather subscribe to trying to bend courses to fit their own personal preferences is beyond me, but I guess people will always be people.

    Dear Angela, I cannot speak for everyone but I certainly can speak for myself and I’m saying thank you. The efforts you put into making this course outstanding didn’t go unnoticed.

    Let as many of us as appreciate your efforts make you happy and energize you to create more life changing courses for us.

    Cheers.

  9. Chendaniel

    Just the course fits me. Learn by doing, it is easy to start and just follow the flow and at day 15 you realized how to program in Python. Then the magic happen. I am on day 27 and I am looking forward to start a new section everyday.

  10. Caspar Cheng

    Angela is my favourite teacher on Udemy, her courses always come with clear and concise demonstration, make it really easy to understand the content. Meanwhile, she also provide a lot of tips to encourage us moving further on the way of coding. I’m definitely a super fan of her. I had finished her web development boot camp and now I’m learning Python 100 days of code. This course is amazing as she provided one particular project for each day’s learning, which is, really useful and handy. Also, those projects are really interesting and won’t let me feel disappointed about myself. Although some of them are a little bit difficult, they’re still resolvable after some struggling and searching online. I’ll recommend this course for those who really want to learn Python well and write real python projects from scratch!

  11. Jonas Weber

    The course was awesome in the first half! Really helped me to get back to programming and learning new techniques. Also the course got way to much focused on web development in the second half, which I’m not really interested in and is redundand to your dedicated web development course. The lack of videos in the last quarter was rather sad. I really would’ve liked some video explanations for pandas and matplotlib. The challenges and capstone projects were great and challenging!
    All in all I can really recommend this course for beginners and those who want to learn python and/or get back to programming!

  12. Rohit Prasad

    Angela is the best teacher I have ever experienced. The way she explains all the topics and makes use of it in the projects is commendable. Thank you so much Angela for this course.

Leave a customer review

Your email address will not be published. Required fields are marked *

Back To Top