Advanced Techniques in Go Programming

Advanced Techniques in Go Programming

This course covers advanced Go programming, including how to build concurrent systems such as web services, RESTful servers, and gRPC servers.

Intermediate

329 Lessons

70h

Certificate of Completion

This course covers advanced Go programming, including how to build concurrent systems such as web services, RESTful servers, and gRPC servers.

AI-POWERED

Explanations

AI-POWERED

Explanations

This course includes

324 Playgrounds
13 Quizzes

This course includes

324 Playgrounds
13 Quizzes

Course Overview

Go is one of the most popular programming languages today in the systems programming and networking space. Go has built-in concurrency capabilities using a simple concurrency model implemented using goroutines and channels. In addition to Go’s rich and reliable standard library, handy Go packages (cobra and viper) allow us to develop powerful command-line utilities (e.g., docker and hugo) in Go. You will start the course by covering the basics of Go—syntax, basic and composite data types, etc.—before movin...Show More

TAKEAWAY SKILLS

Go

Distributed Computing

Concurrency

Restful Api

Rest Api

What You'll Learn

Familiarity with the core features of the Go language

Hands-on experience with developing Go functions and packages

Thorough understanding of advanced Go features such as reflection, interfaces, and generics

Ability to design and develop feature-rich Windows and UNIX utilities and system tools in Go

Hands-on experience with designing highly concurrent applications in Go

Ability to build REST, gRPC, and WebSocket-based servers and clients in Go

What You'll Learn

Familiarity with the core features of the Go language

Show more

Course Content

1.

Course Introduction

This course introduces you to advanced topics in Go through several practical exercises, focusing on real-world programming practices and applications.
2.

Introduction to Go

This chapter explains the key features, advantages, and core concepts of Go while developing practical applications and utilities to reinforce learning.
3.

Basic Go Data Types

This chapter focuses on fundamental numeric and non-numeric data types in Go, their conversion and grouping, error type, pointers, and random number generation.
4.

Composite Data Types

This chapter covers composite data types like maps and structures, iterating over their groups, and searching and pattern matching using regular expressions.
5.

Reflection and Interfaces

This chapter highlights the role of reflection and interfaces in enhancing flexibility and functionality, and how Go is able to mimic object-oriented behaviour.
6.

Go Packages and Functions

26 Lessons

This chapter delves into Go's package and function systems, module management and versioning, and integration with GitHub and GitLab for CI/CD automation.
7.

Telling a UNIX System What to Do

36 Lessons

This chapter explores systems programming in Go, covering UNIX processes and signals, and file I/O, while creating command-line utilities to maximize learning.
8.

Go Concurrency

40 Lessons

This chapter explains Go's concurrency model, exploring goroutines, channels, synchronization, and best practices for efficient concurrent programming.
9.

Building Web Services

26 Lessons

This chapter shows how to work with HTTP to create a client server application, deploy it using Docker, and monitor performance using Prometheus.
10.

Working with TCP/IP and WebSocket

26 Lessons

This chapter explores techniques for building networked applications in Go using client and server sockets for TCP and UDP.
11.

Working with REST APIs

22 Lessons

The chapter shows how to create and manage clients and servers implementing RESTful APIs and covers Swagger for documenting REST API.
12.

Code Testing and Profiling

29 Lessons

This chapter covers code testing, profiling, and optimizing to enhance performance and correctness, and techniques to identify and resolve issues efficiently.
13.

Working with gRPC

16 Lessons

This chapter explores gRPC as an alternative to RESTful services, covers interface definition language, and creates a client server application with gRPC.
14.

Go Generics

17 Lessons

This chapter covers generics as a way to enhance code reusability, enabling flexible functions and data types while allowing constraints for type safety.
15.

Conclusion

1 Lesson

This course delved into Go's features and applications, encouraging hands-on learning through the development of various utilities and a phone book application.
16.

Appendix A—Go Garbage Collector

5 Lessons

The appendix explains how Go's garbage collector automates memory management using a concurrent mark-and-sweep algorithm to optimize performance.

Course Author

Trusted by 1.4 million developers working at companies

Anthony Walker

@_webarchitect_

Emma Bostian 🐞

@EmmaBostian

Evan Dunbar

ML Engineer

Carlos Matias La Borde

Software Developer

Souvik Kundu

Front-end Developer

Vinay Krishnaiah

Software Developer

Eric Downs

Musician/Entrepeneur

Kenan Eyvazov

DevOps Engineer

Souvik Kundu

Front-end Developer

Eric Downs

Musician/Entrepeneur

Anthony Walker

@_webarchitect_

Emma Bostian 🐞

@EmmaBostian

Hands-on Learning Powered by AI

See how Educative uses AI to make your learning more immersive than ever before.

Instant Code Feedback

Evaluate and debug your code with the click of a button. Get real-time feedback on test cases, including time and space complexity of your solutions.

AI-Powered Mock Interviews

Adaptive Learning

Explain with AI

AI Code Mentor

FOR TEAMS

Interested in this course for your business or team?

Unlock this course (and 1,000+ more) for your entire org with DevPath