Programming · Intermediate

Go

A small language that fits in your head, built for servers and for teams that change.

Lessons
17 lessons
Total runtime
30 hours of video
Modules
5 modules
Optional lessons
14 optional
Start course

Free. No account.

About this course

Go was designed at Google by people who were tired of large C++ codebases, and every decision in it follows from that. The language is deliberately small — no inheritance, no generics for its first decade, one way to format code and a tool that enforces it. Experienced programmers often find this insulting for a week and then quietly stop missing the features.

The payoff is that Go is unusually easy to read. A codebase written by strangers three years ago is comprehensible, which matters more on a long project than expressiveness does. It also compiles to a single static binary, which makes deployment almost boring — a genuine feature.

The part worth real attention is concurrency. Goroutines and channels are Go's headline idea, and they make concurrent code approachable in a way threads never did. They are also the part people misuse first, which is why concurrency gets its own module here with four teachers in it, including Rob Pike's original talk on the patterns the language was designed around.

About eight hours on the required path. The optional lessons — second and third full courses, conference talks, and four different ways of building an HTTP API — take the whole pool past thirty. Go is a good second or third language and a reasonable first backend one: the standard library alone will get you a working HTTP server without touching a framework.

What you'll be able to do

  • Write idiomatic Go: structs, interfaces, and errors as values rather than exceptions
  • Use goroutines and channels without creating a deadlock
  • Build an HTTP server with nothing but the standard library
  • Manage a project with modules and the go toolchain
  • Explain why Go omits features you may miss, and judge whether that trade is right for you

Curriculum

17 lessons · 30 hours

Orientation

4 lessons · 6h 2m

  1. 01CompletedGo in 100 SecondsFireshipVideoWhere Go came from and what it deliberately leaves out. The omissions are the design, so it helps to see them framed as choices rather than gaps.2m
  2. 02CompletedGo / Golang Crash CourseTraversy MediaVideoThe syntax and enough of the standard library to be useful, in one sitting. Go is small enough that ninety minutes genuinely covers most of what you use daily.1h 27m
  3. 03CompletedLearn Go Fast — Full TutorialOptionalAlex MuxVideoThe whole language in an hour, assuming you already program. If the crash course felt slow, start here instead and skip straight to the concurrency module.1h 8m
  4. 04CompletedGolang Tutorial for Beginners — Full CourseOptionalTechWorld with NanaVideoA three-and-a-half hour course pitched at people coming from ops and infrastructure rather than from application development. Clearer than most on why Go looks the way it does.3h 25m

The Full Language

2 lessons · 16h 28m

  1. 05CompletedLearn Go Programming - Golang Tutorial for BeginnersfreeCodeCamp.orgVideoThe thorough treatment, and the reason to take this course rather than skim a tour. The concurrency chapters near the end are the ones to slow down for — goroutines are easy to start and easy to leak.6h 55m
  2. 06CompletedGo Programming — Golang Course with Bonus ProjectsOptionalfreeCodeCamp.orgVideoNine hours, with several built projects at the end rather than only syntax. The most complete single item in this course, and a reasonable substitute for the lot if you prefer one long treatment.9h 33m

Concurrency

4 lessons · 2h 28m

  1. 07CompletedGolang Concurrency ExplainedOptionalTiagoVideoGoroutines, channels, WaitGroups and mutexes in one sitting, with the race detector actually run. Start here — the full courses cover this material, but rarely slowly enough.30m
  2. 08CompletedGolang Concurrency — All the Basics You Have to KnowOptionalFlo WoelkiVideoWorker pools, fan-in and fan-out — the named patterns experienced Go programmers reach for instead of inventing something. This is the difference between knowing the syntax and using it well.45m
  3. 09CompletedUnderstanding ChannelsOptionalGopher AcademyVideoKavya Joshi taking a channel apart and showing the runtime underneath it. Watch when channels work but you cannot say why — it removes a lot of superstition.22m
  4. 10CompletedGo Concurrency Patterns (Google I/O 2012)OptionalGoogle for DevelopersVideoRob Pike, one of Go's designers, explaining the model the language was built around. Thirteen years old and still the clearest statement of the intent.51m

Interfaces and Design

3 lessons · 1h 1m

  1. 11CompletedThe Last Interface Explanation You'll Ever NeedOptionalFlo WoelkiVideoGo's interfaces are implicit, which is the single most confusing thing about the language for anyone arriving from Java. Eighteen minutes to fix that.18m
  2. 12CompletedThis Will Make Everyone Understand Golang InterfacesOptionalAnthony GGVideoThe same idea from a working backend developer, with more attention to when you should define one at all. Go's convention is to accept interfaces and return structs, and this explains why.21m
  3. 13CompletedAdvanced Golang — Channels, Context and InterfacesOptionalCode With RyanVideoContext is the piece the beginner courses skip and every real Go service uses for cancellation and timeouts. Worth it for that section alone.22m

Building Services

4 lessons · 4h 25m

  1. 14CompletedGo API Tutorial — Make an API With GoOptionalTech With TimVideoA first HTTP API using only the standard library, which is the right way to meet Go's web story. Frameworks make more sense once you have seen how little you need one.38m
  2. 15CompletedCreating a JSON CRUD API in GoOptionalCoding with RobbyVideoThe same shape of problem with Gin and GORM, so you can compare a framework against the standard library on identical ground.34m
  3. 16CompletedLearn Go by Building a TodoList AppOptionalTechWorld with NanaVideoA complete small application rather than an endpoint, including the parts tutorials usually skip — project layout, configuration and errors.1h 35m
  4. 17CompletedComplete Backend API in Golang (JWT, MySQL & Tests)OptionalTiagoVideoAuthentication, a real database and tests, which is the difference between a tutorial API and one you could deploy. The most demanding lesson here and the most useful.1h 38m

Credits

Every lesson in this course was made by one of these channels. Tubeversity sequenced them; it did not make them. If a course is useful to you, the people below are the ones who earned it.