Mastering Go Programming
4.0 (113 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
1,046 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Mastering Go Programming to your Wishlist.

Add to Wishlist

Mastering Go Programming

Master programming with Golang by learning how to write idiomatic, effective code
4.0 (113 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
1,046 students enrolled
Created by Packt Publishing
Last updated 3/2017
English
Curiosity Sale
Current price: $10 Original price: $200 Discount: 95% off
30-Day Money-Back Guarantee
Includes:
  • 20 hours on-demand video
  • 1 Supplemental Resource
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I 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
View Curriculum
Requirements
  • With a focus on hands-on exercises, this video course is a step-by-step approach to take your Go skills to the next level and create an application all by yourself.
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.


Who is the target audience?
  • This video is for experienced programmers with a background in any other language—this being from Ruby to C or JavaScript. If you are a fast learner who is well versed in the programmatic logic with a bit of basic understanding in Go, this course is for you.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
56 Lectures
20:12:17
+
Introduction
4 Lectures 01:01:11

This video gives an overview of the entire course.

Preview 12:33

Some people may think there is a large barrier to enter a new language like Go. This video serves to show how fun and easy it is to start learning advanced Go.

Welcome to the World of Go!
11:52

How do we write Go code? We will showcase the main principles behind organizing and writing Go code. 

How to Write Go Code?
18:14

Writing a web application can be difficult and tedious in some mainstream programming languages. Go http packet will show how easy writing a web application can be. 

Let’s Build a Rest API Client in Go!
18:32
+
Key Building Blocks
5 Lectures 45:13

The aim of the video is explain Go’s packages, functions, and variables from an advanced point of view. We will do that by building up the concepts from easy to difficult. 

Preview 12:22

The aim of this video is to teach you how to write logic in Go via conditional statements and loops. 

Flow Control
06:20

This video will go through different ways to implement the algorithm in Go. 

Applying Your New Knowledge – Binary Search Algorithm
10:20

We will build up the concepts of the three language components gradually. 

Structs, Slices, and Maps
10:45

How to create a Set even though Go doesn’t have native Set type? Use a Go Map. 

Applying Your New Knowledge – Let’s Create a Set
05:26
+
Advanced Building Blocks
8 Lectures 01:37:42

Slices are confusing in Go, the aim of this video is to cover practical aspects of the topic. 

Preview 14:43

Go does not have classes. How can we design modern software without them? This video provides a practical dive into how to develop code with object-oriented attributes. 

Methods and Interfaces – Linked List Data Structure Implementation
17:10

The aim of the video is to cover the first piece of Go concurrency, which are goroutines. We will cover the topic via practical examples and diagrams. 

Concurrency in Go – goroutines
07:40

The aim of the video is to explain communications between goroutines in Go. Go channels will be explained in detail. 

Concurrency in Go – Channels
13:49

The aim of this video is to discuss the third building component for Go concurrent software, which is the select statement. We will cover the select with practical examples. 

Concurrency in Go – Select
07:45

Go does not have exceptions. How can we handle errors? The solution is to use Go error types for error detection and troubleshooting. 

Errors and Troubleshooting
13:54

The aim of this video is to provide some exposure into some of Go’s most important packages. We will start to cover the packages one by one with examples. 

A Tour into Go’s Packages
15:50

The aim of this video is to write a web server via Go. We will explore the packages and the code needed. 

Project Hydra –Write the First Piece of the Spaceship Web Server
06:51
+
Object-Oriented Patterns in the Go World
5 Lectures 01:02:28

The aim of this video is to take a deep look into the advanced features of methods and interfaces in Go. 

A Closer Look at Interfaces and Methods in Go 1
23:03

The aim of the video is to take another look into advanced features of methods and interfaces in Go. 

A Closer Look at Interfaces and Methods II
10:44

The aim of the video is to cover the factory pattern in Go. 

Factory Design Pattern in Go
11:58

The aim of the video is to explain the singleton pattern in Go. 

The Singleton Pattern –Building the Hydra Custom Logger
10:31

The aim of the video is to cover the builder pattern in Go. 

Builder Pattern in Go – Construct the Ship’s Defense Shields
06:12
+
Go Master Topics
8 Lectures 03:29:57

The aim of this video is to cover how to lock concurrent Go in code using the sync package. 

Preview 26:58

Explain techniques to schedule executing future code in Go. 

Timers and Tickers
20:09

The aim of this video is to cover a useful Go concurrency pattern called channel generators. 

Channel Generators
05:58

The aim of the video is to cover pipeline patterns in Go, and we will start writing a chat system using it. 

Pipelines –Build the Hydra Chat System
28:19

The aim of the video is to cover pipeline patterns in Go and continue writing a chat system. 

Pipelines – Build the Hydra Chat System (Continued)
29:19

This video gives the viewer a practical exposure to Go’s reflections. 

Go Laws of Reflection
34:53

The aim of this video is to cover an advanced topic of Go’s reflection which is structs and interfaces support. 

Reflection on Structs and Interfaces
32:50

The aim of the video is to provide real-life practical examples of using reflection in Go. 

Hydra – Custom Configuration File Reader
31:31
+
Go Testing
3 Lectures 48:18

The aim of this video is to cover unit testing in Go.

Preview 24:25

The aim of this video is to discuss benchmarking in Go. 

Benchmarking in Go
11:37

The aim of this video is to cover some practical aspects in Go programming, like effective programming, cross-compilation, and the go tool.

Practices, Cross-Compilation, and the Go Tool
12:16
+
Files
4 Lectures 01:52:32

The aim of this video is to teach how to work with files in Go. 

Preview 25:24

The aim of the video is to cover the JSON format support in Go. 

Go and JSON Format
32:47

The aim of the video is to cover the XML format support in Go.

Go and the XML Format
34:16

The aim of this video is to cover how Go handles CSV files. 

Go and CSV Format
20:05
+
Databases
5 Lectures 01:55:30

The aim of this video is to cover Go’s support for MySQL. 

Go with MySQL
27:51

The aim of this video is to show how Go can support MongoDB. 

Go with MongoDB I
21:29

The aim of this video is to cover more powerful MongoDB operations using the powerful mgo driver. 

Go with MongoDB II
21:32

The aim of this video is to cover Go’s support for BoltDB by writing a password vault for storing usernames and passwords. 

Go with BoltDB
22:41

The aim of this video is to build Hydra’s database. 

Building Hydra’s Database Interface
21:57
+
Communications
5 Lectures 02:31:42

The aim of this video is to cover Go’s support for the TCP protocol. 

Preview 20:36

The aim of the video is to master TCP communications for Servers in Go. 

TCP Communication – Servers
18:56

The aim of the video is to cover UDP communications and base64 encoding. 

UDP Communications
36:18

The aim of the video is to cover protocol buffers, and Go’s support. 

Protocol Buffers with Go
37:17

We now build the Hydra communication layer. 

Hydra Protocol Buffer Layer
38:35
+
Web Applications in Go
9 Lectures 05:07:44

The aim of this video is to cover web servers in Go. 

Preview 42:31

The aim of this video is to cover web clients and RESTful API handling in Go. 

Client and RESTful API Application in Go
36:25

The aim of this video is to learn RESTful API design by building Hydra’s REST API.

Build Hydra’s RESTful API I
22:52

This is the second video covering how to design a REST API. Learn how to build the web server and test the API. 

Build Hydra’s RESTful API II
26:20

The aim of this video is to build a static website using the bootstrap framework with Go templates. 

Building the Hydra Website – Templates
34:53

We start building the backend of the Hydra website. 

Building the Hydra Website – Backend
27:20

The aim of this video is to cover client-side web forms and web sockets via building the frontend of the Hydra chat portal. 

Hydra Chat Portal I
32:16

We’ll cover backend forms, cookies and websockets by building the rest of Hydra’s chat portal. 

Hydra Chat Portal II
46:59

The aim of this video is to cover practical aspects regarding web security in Go. 

Web Security
38:08
About the Instructor
Packt Publishing
3.9 Average rating
7,297 Reviews
52,255 Students
616 Courses
Tech Knowledge in Motion

Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.

With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.

From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.

Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.