To access to the Go binary and its libraries
To tell the Go compiler where to find the source code for the project and its dependencies.
Contain the source code of our projects and their dependencies.
To store reusable machine code that can be readily included in our Go binary.
Go compiles and builds our projects into executable binaries and places them in this directory.