Disclosure: Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Best Courses Guides

9 Best Go Courses to Take in 2022

Here is a guide with the best online courses, tutorials and resources to learn Go, a statically-typed, compiled programming language designed by Google engineers.

In this article, I’ve picked the best online courses, tutorials, and resources to learn Go, a high-level programming language with the fast performance of a low-level language. It was designed at Google as a statically-typed and  compiled programming language, and specially tailored to make concurrency easy-to-write. It is used to create all sorts of programs, from small personal scripts to large cloud-based applications. All the courses in this guide are free or free-to-audit, except for one.

Here are my top picks. Click on one to skip to the course details:

Course Workload In Brief
1. Getting Started with Go (University of California, Irvine) 8–12 hours long Best university-level Go course for experienced programmers
2. Take your first steps with Go (Microsoft Learn) 5–6 hours long Best article-based Go course for experienced programmers
3. Golang for Tourists (Vilito Exquisitus) 19–20 hours long Best video course for beginners with exercises
4. Learn Go (karanpratapsingh.com) 2–4 hours long Best concise Go course for beginners
5. A Tour of Go (The Go Project) 1–2 hours long Best interactive Go course for experienced programmers to get started
6. Go (Exercism) Self-paced Best for practicing Go through hands-on exercises
7. Practical Go Lessons (practical-go-lessons.com) 6–10 hours long Best text-based Go course for beginners
8. Learn Go (Codecademy) 9 hours long Best interactive Go course for beginners
9. Learn How To Code: Google’s Go (golang) Programming Language (Udemy) 45 hours long Best comprehensive Go course for both new and experienced programmers

What is Go?

Go (sometimes incorrectly called Golang) is a statically-typed, compiled programming language designed by Google engineers Robert Griesemer, Rob Pike, and Ken Thompson.

It is known for having the natural syntax of dynamic languages like Python or Ruby but with the efficient performance of compiled languages like C or C++. Go is open source, and was created to provide first-class support for concurrency and parallelism to take full advantage of multicore processors and are often clumsy to write in other languages.

Go is a high-level language that has features like object-oriented programming (although not fully) and memory management using garbage collection, but also supports low-level features like pointers, although it disables pointer arithmetics to prevent headaches down the road.

According to the TIOBE index, Go is the 15th most popular programming language, and is expected to rise even further. Combined with Go being the 13th most used and 8th most loved programming language in the 2022 Stack Overflow survey, Go is a lucrative language for developers looking to advance their skills and careers. It is a general-purpose language, so it can be written for lightweight microservices to scalable and large software systems. Data on Glassdoor shows that the estimated total pay for a Golang Developer is $115K+ per year.

Find your next course on Class Central

Best Courses Guides Methodology

I built this ranking following the now tried-and-tested methodology used in previous Best Courses Guides (you can find them all here). It involves a three-step process:

  1. Research: I started by leveraging Class Central’s database with 100K online courses and 200K+ reviews. Then, I made a preliminary selection of 90+ courses by rating, reviews, and bookmarks.
  2. Evaluate: I read through reviews on Class Central, Reddit, and course providers to understand what other learners thought about each course and combined it with my own experience as a learner.
  3. Select: Well-made courses were picked if they presented valuable and engaging content and they have to fit in a set of criteria and be ranked accordingly: comprehensive curriculum, affordability, release date, ratings and enrollments.

Course Ranking Statistics

Here are some aggregate stats about the ranking:

  • In total, the courses account for 178,998 enrollments.
  • All of the courses except one are free, free-to-audit or free limitedaccess.
  • 6 of the courses are beginner–friendly, whereas three are for experienced programmers.
  • Around 800+ people follow Class Central’s Go Courses Topic.

Without further ado, let’s go through the top picks.

1. Getting Started with Go (University of California, Irvine)

My #1 pick for the best Go course is Getting Started with Go by the University of California, Irvine.

This free-to-audit course is designed for anyone with previous programming experience who wants to get a feel of the Go programming language. You’ll explore data types, protocols, formats, and writing code that incorporates RFCs and JSON. By the end of the course, you’ll have the basics needed to implement simple Go programs.

What You’ll Learn

The course begins with an introduction to the unique aspects of Go and why you should program in it. You’ll learn how to set up the Go environment and Go’s methodology of code organization, before writing a simple program that prints “Hello, World” as well as a few lessons on concurrency — a feature Go is built for.

Next, you’ll learn the basic data types in Go, like integers, floats, and strings. You’ll learn how to operate with these data types, as well as a special data type called the pointer which is used for low-level memory allocation. You’ll also be able to describe the process of garbage collection in Go, before taking note of some of the control flow structures.

After learning the basic data types, you’ll move on to the more complex data types — composite data types. Composite data are data types that aggregate other data types together, the ones you’ll learn being arrays, slices, maps, and structs. You’ll learn how to effectively utilize these complicated data types whenever you code.

Standardized protocols and formats allow your code to interact with other systems outside of your own code. In the final module of this course, you’ll learn about remote function calls (RFCs) that help you communicate between different systems and JavaScript Object Notation (JSON) that provide an interface for communicating with. Additionally, you’ll learn how to write routines that access and manipulate data from external files.

How You’ll Learn

This course is 4 weeks long, with each week taking 2–3 hours to complete. You’ll learn primarily by watching the lecture videos.

Those paying for the certificate will have access to the quizzes that’ll help consolidate your memory and peer-graded coding assignments that’ll provide you with a valuable opportunity to study other people’s solutions.

Institution University of California, Irvine
Provider Coursera
Instructor Ian Harris
Level Intermediate
Workload 8–12 hours total
Enrollments 52K
Rating 4.6 / 5.0 (1.9K)
Certificate Paid

Fun Facts

  • The course has 289 bookmarks and 4 reviews on Class Central.
  • This course is the first out of three in the Programming with Google Go Specialization. The next course you should take after this is Concurrency in Go.
  • Ian G. Harris is the Vice Chair of Undergraduate Education in the Computer Science Department at the University of California, Irvine. He currently serves on the program committees of several leading conferences like IEEE/ACM Design Automation Conference, IEEE International Conference on Computer-Aided Design, and IEEE Hardware Oriented Security and Trust (HOST).

If you’re interested in this course, you can find more information about the course and how to enroll here.

2. Take your first steps with Go (Microsoft Learn)

My second pick for the best Go course is Take your first steps with Go created by Microsoft.

In this course with a free certificate, you’ll learn the basic syntax and thought processes required to build simple programs in Go. By the end, you’ll be able to write programs that take advantage of your processor’s multithreading capabilities.

To take this course, you need some familiarity with at least one programming language.

What You’ll Learn

You’ll take your first steps with Go by reviewing its history and main features over other programming languages. Then, you’ll install and configure Go, taking a careful look at its code packages, before writing your first “Hello World!” application.

Then, you’ll investigate deeper by exploring its basic data types, variables, functions, and control structures. Go has conditional statements and loops, but you’ll also learn about Go’s defer, panic, and recover functions for better data handling. You’ll also learn how to create your own packages to be reused in other files.

Moving on, you’ll learn about aggregate types like arrays, slices, maps, and structs, that are the foundation for manipulating data of many types. You’ll also need to know how to deal with errors that’ll eventually pop up, and how to log them so that you have an easier time fixing your code.

Object-oriented programming (OOP) can be implemented in Go. You’ll cover OOP principles like encapsulation and compositions, and then discuss Go’s interfaces and methods and how they may differ from other programming languages you know. You’ll also gain insight into Go’s most useful capability, concurrency, before ending the course by using all that you’ve learned about Go to write and test a complete program.

How You’ll Learn

This course is 5–6 hours long. You’ll learn by reading and working through the course tutorials. At the end of each module, you’ll complete a coding exercise and a knowledge check to test your understanding of the material.

Institution Microsoft
Provider Microsoft Learn
Level Intermediate
Workload 5–6 hours total
Rating 4.8 / 5.0 (2.4K)
Certificate Free

Fun Facts

  • Microsoft Learn is a free, online training platform that provides interactive learning for Microsoft products and programming languages, like C++, C#, Python, and TypeScript.
  • They also provide exam certifications.

If you’re interested in this course, you can find more information about the course and how to enroll here.

3. Golang for Tourists (Vilito Exquisitus)

Golang for Tourists is a free introductory course to the Go Programming Language. It highlights the major features of Go — concurrency, memory management, exception-handling, and the likes — and teaches you how to program with these features.

No programming experience is required to take this course.

What You’ll Learn

Starting off, you’ll set up the development environment needed to code in Go. Then, you’ll study the typical structure of a Go application — how code is composed in a file and organized in packages. The basic programming will then be covered like data types (booleans, strings), control statements (if, for), and functions.

Then, you’ll advance your understanding of data types by learning about the different container types (named aptly because they store data) like arrays, slices, maps, and structs. You’ll explore the use case of each and when to prefer one over the other.

Go is famous for its implementation of concurrency. You’ll learn how to synchronize the execution of multiple lines of code with Goroutines and channels, and avoid the pitfalls when trying to write such code.

Then, you’ll study pointers in Go and when you might use them in a program. Finally, you’ll learn about interfaces and how to deal with data input and output in the context of files and network programming.

How You’ll Learn

This YouTube playlist is 19–20 hours long. At the end of each lecture, you’ll be able to practice what you’ve learned by working through the provided exercises, and additionally at the end of each section you’ll complete a lab to summarize everything you’ve learned in the section. Solutions are also provided.

Channel Vilito Exquisitus
Provider YouTube
Instructor Rob Adams
Level Beginner
Workload 19–20 hours total
Enrollments 10K
Certificate None

Fun Facts

If you’re interested in this course, you can find more information about the course and how to enroll here.

4. Learn Go (karanpratapsingh.com)

In this free course, you’ll master the fundamentals and advanced features of the Go programming language. You’ll start from the beginning and work your way up to proficiency. The course is written in simple English and is accompanied by intuitive examples, which makes it suitable for anyone weak in English.

No programming experience is required to take this course.

What You’ll Learn

The course begins with a history of the Go programming language and how to set it up. Then, you’ll learn the structure of a Go program by writing and compiling your first “Hello World!” script. You’ll follow this up with the essentials — variables, data types, control flow, and functions — to write simple but fully functional code. In addition, you’ll also get a grasp of code organization through modules, packages, and workspaces.

The next section of the course delves into advanced programming concepts, specifically data structures like pointers, arrays, slices, and maps. These data structures are key for writing real-life applications. You’ll also learn about methods, which are functions defined on data structures.

Moving on, you’ll learn higher-level concepts that professional developers use in their programs. Interfaces allow you to define behavior for similar types of objects, whereas generics allow you to write type-agnostic code. Common practices like error-handling and code-testing are also covered to help fix annoying bugs when they arise.

In the final chapter of the course, you’ll discuss concurrency — executing multiple lines of code at the same time. You’ll study how goroutines achieve this with channels to ensure access to shared resources are synchronized. Finally, you’ll end the course by learning some advanced concurrency patterns used in the real world.

How You’ll Learn

This course is 2–4 hours long. You’ll learn by reading through the course materials and trying out the code examples provided.

Website karanpratapsingh.com
Instructor Karan Pratap Singh
Level Beginner
Workload 2–4 hours total
Certificate None

Fun Facts

  • Singh is a Senior Software Engineer at Curebase, where he is working on a decentralized clinical trial platform.

If you’re interested in this course, you can find more information about the course and how to enroll here.

5. A Tour of Go (The Go Project)

From the creators of the Go programming language themselves, A Tour of Go covers the main features of Go that any interested developer should know. By the end of the free interactive course, you’ll have the basics down along with other more advanced concepts like interfaces, generics, and concurrency.

To take this course, you’ll need some prior knowledge of programming.

What You’ll Learn

The course begins by elaborating the structure of every program. Every Go program is made up of packages. You’ll learn how to import packages, define variables, and declare functions in Go. You’ll also learn about the different flow control statements and in what scenario you would use them, specifically the for, if, else, switch and defer statements.

What if you could define your own types? You’ll learn how to do exactly that with structs and study composite data types like arrays, slices, and maps. First, you’ll learn how to define methods on types. Then, figure out how to declare interfaces, how Go supports generic programming, and lastly how these components fit together in the larger picture of type-oriented programming.

The final module of the course goes over concurrency, a key feature of the language. Concurrent programming is a breeze in Go thanks to goroutines and channels. You’ll be instructed on their usage as well as the different concurrency patterns you may employ when coding.

How You’ll Learn

This course is 1–2 hours long. You’ll learn by going through the course modules and experimenting with the example programs shown in the course.

Institution The Go Project
Level Intermediate
Workload 1–2 hours total
Certificate None

Fun Facts

  • This course is also available in 9 other languages, from Portuguese to Japanese.

If you’re interested in this course, you can find more information about the course and how to enroll here.

6. Go (Exercism)

Exercism is a free online coding platform where you can practice your Go coding skills through well-designed programming exercises. As a learning developer, it is important that you cultivate your skills through hands-on exercises.

The best thing about this platform is that you’ll receive free personal mentoring. When you have solved an exercise, you’ll receive personalized feedback about your code. I can’t stress how helpful this is, especially for new programmers since they don’t have the programming experience yet to judge the quality of their own code.

Programmers of all levels of experience can find an exercise that’s just the right amount of difficulty for them, as exercises range from easy to challenging.

What You’ll Learn

The course has a learning mode to help beginners build their knowledge from the ground up by completing tutorials and exercises of increasing difficulty.

You’ll begin with the basics like printing “Hello, World!”. Then, you’ll learn about Go’s various data types like integers, strings, and booleans, along with other concepts like conditionals, loops, raising exceptions, enumerations, and more. This way, you’ll be acquainted with many of Go’s functionalities.

After completing the tutorials, you can practice what you’ve learned on exercises of three different difficulties: easy, medium, and hard.

Some easy exercises involve calculating the Hamming difference between two DNA strands, determining if a phrase is an isogram, or finding out if a given year is a leap year.

The medium exercises include implementing various kinds of error handling and resource management, simulating a bank account, and implementing a tree building algorithm

Some of the most challenging exercises include implementing the reactive programming paradigm and implementing a simple evaluator for Forth.

How You’ll Learn

This course is self-paced, so you can take all the time you need to complete the 135 hands-on programming exercises. Each exercise comes with automatic analysis of your code as well as personal mentoring to help you understand your code’s strengths and flaws.

Institution Exercism
Level All Levels
Workload Self-paced
Enrollments 73K
Certificate None

Fun Facts

  • Exercism provides exercises on 50+ programming languages like Python, Kotlin, F#, and WebAssembly.
  • Exercism’s mission is to help everyone get really good at programming, regardless of their background, share the love of programming, and help people upskill as part of their upward social mobility.
  • Around 300 people have contributed towards the Go syllabus and exercises, with close to 1100 mentors available at the time of writing.

If you’re interested in this course, you can find more information about the course and how to enroll here.

7. Practical Go Lessons (practical-go-lessons.com)

Practical Go Lessons is an excellent free introduction for beginners to the world of programming in general through the lens of Go. It teaches important computer science concepts that all programmers need to know to help them write and understand efficient code.

No programming experience is required to take this course.

What You’ll Learn

Programming can only be done on computers, so basic knowledge of computers is as important as knowledge of programming. You’ll begin the course by understanding what a program is and the four hardware components of a computer. After that, you’ll learn the history and motivations behind the Go language.

Next, you’ll set up your development environment to get ready to write and compile your first Go program! To accomplish this, you’ll learn about the different numeral systems like binary and different encoding systems like Unicode. You’ll then study variables, constants, and their basic types. Control statements will also be taught, along with functions that allow you to reuse blocks of code.

Code organization helps keep your programs tidy. You’ll learn about Go packages and modules and how to use them. You’ll also take a deep dive into data structures like pointers, arrays, slices, and maps, and see how these data structures can be incredibly versatile in programming.

Moving on, you’ll learn about more complex aspects of Go, like error handling and logging, anonymous functions, and most importantly, concurrency. Concurrent programming allows for multiple lines of code to be run at the same time. You’ll learn the concurrent programming patterns, along with other patterns like object-oriented programming.

How You’ll Learn

This course is 6–10 hours long. You’ll learn by reading through the chapters, following along the code examples, and testing your knowledge on the end-of-chapter questions.

Website practical-go-lessons.com
Instructor Maximilien Andile
Level Beginner
Workload 6–10 hours total
Certificate None

Fun Facts

  • Maximilien Andile also offers a paid video course where he builds an e-commerce website using Go, Vue.js and AWS.

If you’re interested in this course, you can find more information about the course and how to enroll here.

8. Learn Go (Codecademy) 

Codecademy’s Learn Go covers the fundamentals of Go. By the end of the free limited-access course, you’ll be able to build simple Go programs.

No prior knowledge of programming is required to take this course.

What You’ll Learn

The course begins with an introduction to how programs work, starting with the way Go organizes code. Then, you’ll learn about the Go compiler and how to run programs after compiling them.

Time to get into programming! Variables are used everywhere in programming. You’ll learn how to create and store values in variables, with a special emphasis on the different types the values may have. Next, you’ll learn about the fmt package that allows you to get user input and then display an output. You’ll use this to create an interactive program.

So you know now that code is executed line by line. But did you know that you can control which block of code will be executed? You’ll study boolean expressions and conditionals to help you control the flow of the program as if the program can make decisions for itself.

Functions allow you to repeat blocks of code without having to rewrite them again. You’ll learn how to define functions, call them from anywhere, and pass arguments to them. Finally, you’ll learn about memory addresses and pointers, a fundamental component of computer science.

How You’ll Learn

This course is 9 hours long. You’ll learn by going through interactive, hands-on coding tutorials.

Additionally if you have Codecademy Pro, you’ll be able to earn a certificate when you complete the course. Furthermore, you’ll be able to complete and showcase three portfolio projects and have access to quizzes that’ll recap your memory of the language.

Institution Codecademy
Level Beginner
Workload 9 hours total
Certificate Paid

Fun Facts

  • The course was built in partnership with Google.
  • Codecademy was co-founded by Zach Sims and Ryan Bubinski, with the goal of giving  anyone in the world the ability to learn the skills they’d need to succeed in the 21st century.
  • They offer free courses in 12 different programming languages, the most popular ones being Python, Java, Ruby, C++, C#, and Swift.

If you’re interested in this course, you can find more information about the course and how to enroll here.

9. Learn How To Code: Google’s Go (golang) Programming Language (Udemy)

If you’re looking for an awesome paid resource for both new and experienced programmers, this course is for you.

In this comprehensive Udemy course, you’ll learn everything you need to know to program in Go and then some. It is chock full of exercises to help the fledgling programmer spread their wings or experienced programmers to test their skills.

No prerequisite knowledge is required to take this course.

What You’ll Learn

First, you’ll learn a brief history of the programming language. Then, you’ll get familiarized with the everyday tools developers use in their workflow — the terminal, GitHub, integrated development environment (IDE), and so on. You’ll also learn the overall structure of a Go program and know the difference between packages, modules, and dependencies.

Next, you’ll get to programming. You’ll begin with variables that can contain values of different types, before moving on to control flow statements that can either make decisions or repeat certain lines of code. Coupled with data structures that group data together, and functions that allow you to reuse code, you’ll have a wide arsenal of tools to create a simple nifty program.

Programming comes hand in hand with computer science. You’ll study pointers that point to specific addresses in memory. You’ll also learn about standardized formats like JSON that allow programs written by different people to communicate between one another. Concurrency is also a key topic that’s crucial for taking full advantage of the processor, so you’ll learn how to achieve concurrency with goroutines and channels.

The final parts of the course cover good practices any developer should have, like error-handling, documenting code, unit testing, and benchmarking. With these, you’ll find yourself ready to tackle any programming project out there.

How You’ll Learn

This course has 45 hours worth of material. You’ll learn by watching the helpful lecture videos and trying your hands on the coding exercises complete with solutions. In addition, the course instructor actively answers questions in the Q&A section, so if you need any help with the exercises you can expect a swift reply.

Provider Udemy
Instructor Todd McLeod
Level Beginner
Workload 45 hours total
Enrollments 132K
Rating 4.6 / 5.0 (20K)
Certificate Paid

Fun Facts

  • Todd McLeod is a tenured professor in California who has taught at the college and university level for over 20 years. He is an autodidact, having authored 48 books with experience in the publishing industry, literature, and film.

If you’re interested in this course, you can find more information about the course and how to enroll here.

Elham Nazif Profile Image

Elham Nazif

Part-time content writer, full-time computer science student.

Comments 0

Leave a reply

Your email address will not be published. All comments go through moderation, so your comment won't display immediately.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Browse our catalog

Discover thousands of free online courses from top universities around the world like MIT, Stanford, and Harvard.

Browse all subjects