Why Learn Go

My reason for learning Go is simple. I saw people around me using it, it looked fun, and I wanted to play with it too.

That said, I usually write Python, use FastAPI for backends, and spend the rest of my time on JavaScript. Both work well for me and I have no real complaints. Before spending time on a new language, I should at least ask myself: is it worth it?

Let’s start with attention. The chart below shows the TIOBE Programming Community index (TIOBE Software BV, 2026), which estimates how popular each language is from search engine queries. You can change the time range and the scale, or keep only the languages you care about (the language logos come from Devicon contributors (n.d.)):

Figure 1: TIOBE index of major programming languages, June 2001 to November 2026

For most of the last ten years Go has stayed between 1% and 3%. In November 2026 it stands at 1.69%, the lowest of these ten mainstream languages. Python, by comparison, climbed from 3.57% to 20.86%.

What about jobs? This is the share of IT job ads in the UK that mention Go, according to IT Jobs Watch (IT Jobs Watch, 2026):

Figure 2: Share of UK IT job ads that mention Go (approximate values)

For permanent roles the share peaked at about 3% in early 2022 and is now only about 0.45%. Of course, this is just one market, so take it with a grain of salt. One more detail is interesting: about 58.5% of the ads that mention Go also ask for Python, so Go looks more like a language that is paired with Python.

From another angle, in the Stack Overflow developer survey, the share of developers using Go rose from 9.55% in 2021 (Stack Overflow, 2021) to 16.4% in 2025 (Stack Overflow, 2025).

Go is not the most popular or the most mainstream language, but it is not going away either. For me, it is worth the time!

What Is Go

Go was first sketched on a whiteboard on 21 September 2007 by Robert Griesemer, Rob Pike and Ken Thompson at Google, and it became open source on 10 November 2009 (The Go Project, n.d.).

It came from their frustration with building large projects in the languages of the time: the programs and the build systems were too complicated, and multicore processors were becoming common while most languages did little to help (The Go Project, n.d.). Pike later added that Google’s servers were mostly written in C++, with Java and Python for the rest, and that builds often took minutes or even hours (Pike, 2012). The official description of the language is:

Go is a compiled, concurrent, garbage-collected, statically typed language developed at Google.

— Rob Pike (Pike, 2012)

For a Python programmer, the most direct differences are compilation and static typing. Python is interpreted and types are only known at run time. Go is compiled into an executable first, and types are checked at compile time. It also links statically by default, so the executable carries Go’s runtime with it (The Go Project, n.d.), and you do not need to install an interpreter on the machine first, as you do with Python.

As for the design goals, Pike is quite honest:

…a language that is not a breakthrough research language but is nonetheless an excellent tool for engineering large software projects.

— Rob Pike (Pike, 2012)

Learning Plan

My goal is simple: I want to become as comfortable with Go as I am with Python, and build services that are faster and use fewer resources.

So this series has four parts: the basic syntax, concurrency and the runtime, the frameworks and databases commonly used for backends, and finally a simplified payment service.

BasicsAdvancedBackendProjectEntrance — Meet GoEntrance — Meet GoSetup and Hello WorldSetup and Hello WorldTypes and control flow (coming soon)Types and control flowFunctions (coming soon)FunctionsSlices and maps (coming soon)Slices and mapsStructs and interfaces (coming soon)Structs and interfacesError handling (coming soon)Error handlingGoroutines and channels (coming soon)Goroutines and channelssync and context (coming soon)sync and contextThe GMP scheduler (coming soon)The GMP schedulerMemory and GC (coming soon)Memory and GCTesting and benchmarks (coming soon)Testing and benchmarksGenerics and modules (coming soon)Generics and modulesGin and REST APIs (coming soon)Gin and REST APIsPostgreSQL and GORM (coming soon)PostgreSQL and GORMRedis and caching (coming soon)Redis and cachinggRPC and protobuf (coming soon)gRPC and protobufKafka and RabbitMQ (coming soon)Kafka and RabbitMQDynamoDB (extra) (coming soon)DynamoDB (extra)Payment design and idempotency (coming soon)Payment design and idempotencyOrders (coming soon)OrdersSplitting into microservices (coming soon)Splitting into microservicesProfiling and load testing (coming soon)Profiling and load testingDocker and k8s (coming soon)Docker and k8s
Figure 3: The learning route of the Go notes series1
1. The gopher artwork is adapted from the Go gopher designed by Renée French (CC BY 4.0) (Pike & Gerrand, 2014). ↩

References

Devicon contributors (n.d.). Devicon: Programming language and development tool icons (MIT License). Devicon. https://devicon.dev/

IT Jobs Watch (2026, November 11). Go (Golang). IT Jobs Watch. https://www.itjobswatch.co.uk/jobs/uk/go.do

Pike, R. (2012). Go at Google: Language Design in the Service of Software Engineering. The Go Programming Language. https://go.dev/talks/2012/splash.article

Pike, R., & Gerrand, A. (2014, March 24). The Go gopher. The Go Blog. https://go.dev/blog/gopher

Stack Overflow (2021). Stack Overflow Developer Survey 2021. Stack Overflow. https://survey.stackoverflow.co/2021

Stack Overflow (2025). Stack Overflow Developer Survey 2025: Technology. Stack Overflow. https://survey.stackoverflow.co/2025/technology

The Go Project (n.d.). Frequently Asked Questions (FAQ). The Go Programming Language. https://go.dev/doc/faq

TIOBE Software BV (2026, November). TIOBE Programming Community index. TIOBE. https://www.tiobe.com/tiobe-index/