GOROOT

To access to the Go binary and its libraries

GOPATH

To tell the Go compiler where to find the source code for the project and its dependencies.

src/

Contain the source code of our projects and their dependencies.

pkg/

To store reusable machine code that can be readily included in our Go binary.

bin/

Go compiles and builds our projects into executable binaries and places them in this directory.