Mastering Go Programming

Master programming with Golang by learning how to write idiomatic, effective code

4.15 (660 reviews)
Udemy
platform
English
language
Programming Languages
category
5,036
students
20 hours
content
Mar 2017
last update
$69.99
regular price

What you will learn

Apply modern software design patterns utilizing the Go language

Take a deep dive into Go’s master topics like advanced concurrency patterns, and the flexible reflection capabilities

Write unit tests and benchmarks for your Go code

Create advanced backend microservices for the Hydra spaceship software and design an end to end chat system

Handle JSON, XML, and CSV data formats in your code

Interact with Mongodb, MySQL and BoltDB

Build powerful communications layer for your microservices using protocol buffers, TCP, and UDP

Develop powerful web applications and Restful APIs utilizing http requests, forms, and cookies

Design beautiful dynamic UI for the hydra software utilizing Go templates and websockets

Secure your applications with certificates, https, and secure web sockets

Description

Go has moved from the state of tentative to mass adoption. Its C-like speed, simplicity, and power for a growing number of systems level programming domains make it an attractive option for programmers working with older cumbersome, statically typed languages. Golang has entered the space as an entirely viable language for accomplishing a huge array of low level programming and service infrastructure tasks.

This video course not only gives you a deep insight into the fundamental mechanics behind the language, but also covers extensive practical topics on Go for modern software architectures. It shows you how to write Go in an intelligent, idiomatic way. After a brief re-acquaintance with the key building blocks of Go, we will also explore how we can build upon the  unique capabilities of the language to write effective, powerful code you can employ to develop software. We look at packages, object-oriented programming, concurrency and reflection among other things. Moreover, you will learn about Go’s awesome built-in testing support feature. Along the way, build your skills in File handling techniques, Go packages for databases, data serialization approaches, message communications between Go services, and Go web applications. Get your hands on with a plenty of illustrative code samples, exercises and real-world scenarios that will help you build your own application.

By the end of this course, you will be taught how to put this enhanced knowledge to build a real-world Spaceship application all by yourself with amazing features.

About The Author

Mina Andrawos is an experienced Engineer who has developed deep experience in Go from using it personally and professionally. He regularly authors articles and tutorials about the language, and also shares Go’s open source projects. He has written numerous Go applications with varying degrees of complexity. He is also the author of an upcoming course for Packt called “Go in Production”.

Other than Go, he has skills in C#, Java, Python, and C++. He has worked with various databases and software architectures and has skills with the agile methodology in software development. Besides software development; he has working experience of scrum mastering, sales engineering, and software product management.


Content

Introduction

The Course Overview
Welcome to the World of Go!
How to Write Go Code?
Let’s Build a Rest API Client in Go!

Key Building Blocks

Packages, Variables, and Functions
Flow Control
Applying Your New Knowledge – Binary Search Algorithm
Structs, Slices, and Maps
Applying Your New Knowledge – Let’s Create a Set

Advanced Building Blocks

Slicing Slices
Methods and Interfaces – Linked List Data Structure Implementation
Concurrency in Go – goroutines
Concurrency in Go – Channels
Concurrency in Go – Select
Errors and Troubleshooting
A Tour into Go’s Packages
Project Hydra –Write the First Piece of the Spaceship Web Server

Object-Oriented Patterns in the Go World

A Closer Look at Interfaces and Methods in Go 1
A Closer Look at Interfaces and Methods II
Factory Design Pattern in Go
The Singleton Pattern –Building the Hydra Custom Logger
Builder Pattern in Go – Construct the Ship’s Defense Shields

Go Master Topics

Syncs and Locks
Timers and Tickers
Channel Generators
Pipelines –Build the Hydra Chat System
Pipelines – Build the Hydra Chat System (Continued)
Go Laws of Reflection
Reflection on Structs and Interfaces
Hydra – Custom Configuration File Reader

Go Testing

Unit Testing in Go
Benchmarking in Go
Practices, Cross-Compilation, and the Go Tool

Files

File Handling in Go
Go and JSON Format
Go and the XML Format
Go and CSV Format

Databases

Go with MySQL
Go with MongoDB I
Go with MongoDB II
Go with BoltDB
Building Hydra’s Database Interface

Communications

TCP communication – Clients
TCP Communication – Servers
UDP Communications
Protocol Buffers with Go
Hydra Protocol Buffer Layer

Web Applications in Go

Web Server Applications in Go
Client and RESTful API Application in Go
Build Hydra’s RESTful API I
Build Hydra’s RESTful API II
Building the Hydra Website – Templates
Building the Hydra Website – Backend
Hydra Chat Portal I
Hydra Chat Portal II
Web Security

Screenshots

Mastering Go Programming - Screenshot_01Mastering Go Programming - Screenshot_02Mastering Go Programming - Screenshot_03Mastering Go Programming - Screenshot_04

Reviews

Victor
August 4, 2023
Very nice course, I have learned many low level skills in golang, I hope in the future the instructor can update this course.
Greg
March 16, 2023
IT seems like it's rushed through examples. And it's not clear which parts are supposed to be just watched, and which are the exercises. I also believe that the iterative binary search has a bug (infinite loop), but it was never shown during the course that it works. This kind of eroded my confidence in the course quality
Hendrik
January 24, 2023
This course covers many more advanced topics in Go than most others. Somewhat outdated now, but still extremely worth it.
Miguel
January 12, 2023
Great course, the teacher went in deep from fundamental topics to very advanced topics like microservices, web security, deep testing, communication protocols, web sockets, etc. Highly recommend to take your time to invest in this course
Mohanned
October 15, 2022
The topics discussed are advanced, but I (as 3.5 year experienced software engineer) really never faced an instructor that made me hate a subject as much as this instructor did. His teaching style is really boring, he just explains code that was already written before and even doesn't provide the source code. Really a waste of money and time for me.
Artem
September 4, 2022
The course is good, but I would like the information to be updated, the main concepts are presented well, but golang has already changed in some areas, modules and something else have been added. It is desirable to refresh some sections of the material.
Paulo
August 31, 2022
Not up to date with language, don't use go modules concepts, use many deprecated language structures, and very difficult to follow the MongoDB configuration (had to research a lot and correct the fonts to work properly) also, I had the same problems in the proto buffers session. For the other sessions it is very well explained and gives a good view about concurrency,
Ingo
March 14, 2022
decent course for beginner/intermediate level. nit: please upgrade the audio on some of the lectures. the microphone used on some of the lectures is not very good.
Samuel
November 25, 2021
It is the worse course I have ever taken on Udemy. The instructor uses the in-class method of teaching (I learn by doing). The content may be great, but the pacing and the teaching method don’t work for me. If you are the type that learns by actively participating, you may not enjoy this course.
Adriano
April 8, 2021
The course was amazing, covered several facets of Go with a project using most of the features available and guiding the student through the documentation, teaching the student how to be self sufficient! Amazing Course!
Chris
July 31, 2017
It's fine as an intro I guess. Some of the code and tricks seem very obfuscated and unreadable. I was hoping for a mastery class where clean code and larger examples and practical projects would be taught. I'm sorry to be critical. For example, the slice tricks section. Maybe it's idiomatic and has nothing to do with the course. I just think it's hard to read. We have to do variadic parameters to delete items? I just don't get this and would probably avoid it in code I'd have on a team and have to come back to months later.
Andy
July 18, 2017
The course was detailed and well explained, and using the concepts in a large application worked for me. Towards the end I glossed over the web concepts as I am going to do the Go and React, but found the rest of the course engaging.
Nico
June 15, 2017
The majority of the course is an introduction into Go. It's basicly a walkthrough of the Tour of Go. There is very little 'original' content or in-depth information about advanced topics.
Xavier
May 21, 2017
seems quality, needs to speak a tad faster.. get bored waiting for him.. i guess its better than too fast since this is learning but at times i get sleepy listening to him... *Edit* After learning how to use the 1.5x button this course has really sharpened my golang skills and took me from intermediate to expert... im now contributing to golang on github! :)
Henri
April 29, 2017
I give this course a 5-star rating, because it’s extremely rich in content well explained. However, there is also one negative, so let’s start with that. The code material is organized in a very sloppy way, e.g. it is not well synchronized with the video’s meaning that often code shown during the video doesn’t match with the code given in the resources. Even worse, some of the code is broken and not running. Some data(bases) to be used in the examples are missing. Having said this, the course is really excellent. In fact the course is some hybrid between Mastering Go Programming and a future book on Go, “The Go CookBook.” The code snippets are really to treasure and can be used in many situations during production. The instructor (Mina) explains the content very well. What I like is the way he shows you around and refers back to the https://golang.org/pkg/ site to explain why a certain method is able to do what it is doing. Also Mina responds promptly to the questions you post to the Q&A section of the site. The level of the course is not for beginners. If you have never heard of pointers, or worse, don’t know how to use the Terminal, you will be disappointed. This is not a course on how to code, but how to Master Go. Again I loved the course and will surely come back to some of the videos in the future.

Charts

Price

Mastering Go Programming - Price chart

Rating

Mastering Go Programming - Ratings chart

Enrollment distribution

Mastering Go Programming - Distribution chart
1116290
udemy ID
2/16/2017
course created date
8/31/2020
course indexed date
Bot
course submited by