> For the complete documentation index, see [llms.txt](https://docs.orbs.network/v2-contract-sdk/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.orbs.network/v2-contract-sdk/getting-started/untitled.md).

# Becoming a Go developer

## Installing Go

The recommended way to install Go on Mac is with [brew](https://brew.sh/)

```
brew install go
```

If you prefer a regular package installer instead, those are available [here](https://golang.org/dl/). If you run into trouble, go over the official Go [installation instructions](https://golang.org/doc/install).

## Verifying the installation

Verify Go is installed correctly by running in terminal

```
go version
```

Any version above 1.11 should suffice.

## The Go workspace

Go creates a workspace on your machine where source files should be placed. This is a bit different from other programming languages which are less opinionated about the location of your source files.

Unless configured explicitly otherwise, your Go workspace is found at

```
~/go/src
```

The common convention is to place files in a directory structure that mirrors easily to Github. If your Github username is `johnsnow` and your repo name is `mycontract` you should place your files at

```
~/go/src/github.com/johnsnow/mycontract
```

For more information about workspaces, consult the official Go [documentation](https://golang.org/doc/code.html#Workspaces).

## Choosing an editor

Working with an [IDE](https://en.wikipedia.org/wiki/Integrated_development_environment) that has good Go support is highly recommended for code completion, syntax highlighting and debugging.

[Atom](https://atom.io/) is an excellent free editor which has Go support through the [go-plus](https://atom.io/packages/go-plus) plugin. You can install both by running in terminal

```
brew cask install atom
apm install go-plus
```

Another free alternative is [VSCode](https://code.visualstudio.com/), which [supports](https://code.visualstudio.com/docs/languages/go) Go out of the box. A commercial alternative is [GoLand](https://www.jetbrains.com/go/) by JetBrains. For the complete list of editors consult the official Go [documentation](https://golang.org/doc/editors.html).

## Learning Go

One of the main benefits of the Go programming language is its simplicity. It should not require more than a few days to gain a firm grasp of the syntax.

The official documentation contains a fantastic [Tour of Go](https://tour.golang.org) - an interactive tutorial that teaches the basics of the language in an hour or so. Another way to dive quickly into the language is using this [cheat sheet](https://learnxinyminutes.com/docs/go/) which contains all syntax in one page.

If you don't feel like learning the language first that's also fine. Most of the contract examples are simple enough to understand without any prior knowledge.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.orbs.network/v2-contract-sdk/getting-started/untitled.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
