Is Go good for data structures and algorithms?
Yes. It compiles to fast native code, its syntax is small enough that the algorithm is most of what you read, and generics (since Go 1.18) make a typed stack or heap reusable. The trade-off is a lean standard library: beyond slices, maps, container/list and container/heap, you write the structures yourself, which on a learning path is the point. Go also runs much of today's cloud infrastructure, Docker and Kubernetes included, which makes it a natural interview language for backend roles.
Which Go types and packages match which data structures?
A slice is a dynamic array, and with append and reslicing it is also your stack; a map is a hash table, and map[T]struct{} is the idiomatic set; container/list is a doubly linked list; and container/heap runs a binary heap over any type that implements heap.Interface. There is no queue type, tree, trie or graph, so those you build yourself, in steps one and two.
How does container/heap work in Go?
You implement heap.Interface on a slice type of your own: Len, Less and Swap from sort.Interface, plus Push and Pop, which only append to and remove from the end of the slice. Then you call the package functions heap.Push and heap.Pop, never your own methods, and they do the sifting up and down that keeps the order. It reads oddly until you have written a heap yourself, which step two has you do.
Why does ranging over a Go map give a different order every time?
Because Go randomizes map iteration order on purpose, so that no program comes to depend on it. A hash table has no meaningful order in any language; Go just makes sure you notice. When order matters, as in output a test compares, collect the keys into a slice and sort it, or keep a slice beside the map.
Which courses on this path are not taught in Go?
Three: dynamic programming and the Python interview series, taught in Python, and bit manipulation, taught in C++. They are listed after the steps, each with a link that opens it in its own language. A memo table in Go is a slice or a map, and Go adds one bit operator C++ lacks: &^, AND NOT, which clears in its left operand every bit set in its right.
Do I need to know Go before starting this path?
Structs, pointers, slices, maps and methods, at least; generics help, and you can pick them up on the way. If those are new, Coddy's Go course takes you there first, free, and this path picks up where it ends.