Advanced Techniques in Go Programming

Gain insights into Go's concurrency model with goroutines and channels. Explore advanced concepts like interfaces, testing, and build highly concurrent systems like web and RESTful servers.

Intermediate

329 Lessons

70h

Certificate of Completion

Gain insights into Go's concurrency model with goroutines and channels. Explore advanced concepts like interfaces, testing, and build highly concurrent systems like web and RESTful 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

Get familiar with advanced Go, including RESTful services, WebSocket protocol, and generics.
2.

Introduction to Go

Look at Go’s advantages, syntax, variables, iteration, control structures, concurrency, and practical applications.
3.

Basic Go Data Types

Explore Go's basic data types, including numerics, strings, errors, and data structures.
4.

Composite Data Types

Grasp the fundamentals of using composite data types, patterns, and CSV file handling in Go.
5.

Reflection and Interfaces

Deepen your knowledge of implementing reflection and interfaces in Go for dynamic typing and sorting.
6.

Go Packages and Functions

26 Lessons

Follow the process of developing, using, and managing Go packages, functions, and modules.
7.

Telling a UNIX System What to Do

36 Lessons

Master UNIX system programming with Go, covering file I/O, JSON/XML handling, signals, and Cobra utilities.
8.

Go Concurrency

40 Lessons

Sharpen your skills in Go concurrency with goroutines, channels, mutexes, and context management.
9.

Building Web Services

26 Lessons

Get started with creating Go-based web services, HTTP handling, Docker images, and Prometheus metrics.
10.

Working with TCP/IP and WebSocket

26 Lessons

Work your way through TCP/IP, UDP, UNIX Domain Sockets, and WebSocket server/client creation.
11.

Working with REST APIs

22 Lessons

Build a foundation in developing and testing RESTful APIs using Go, including client-server interactions and database integrations.
12.

Code Testing and Profiling

29 Lessons

Optimize Go code performance and correctness through testing, profiling, benchmarking, and tracing techniques.
13.

Working with gRPC

16 Lessons

Focus on implementing gRPC services in Go, including server, client, and protocol buffer definitions.
14.

Go Generics

17 Lessons

Build on understanding Go generics, their applications, constraints, interfaces, and practical exercises.
15.

Conclusion

1 Lesson

Step through Go's features, concurrency, networking, and practical applications for real-world use.
16.

Appendix A—Go Garbage Collector

5 Lessons

Get insights into Go's garbage collector, memory allocation, and performance optimization techniques.

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

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