Unlike many projects on GitHub, the Go project does not use its bug tracker for general discussion or asking questions.
We only use our bug tracker for tracking bugs and tracking proposals going through the [Proposal Process](https://golang.org/s/proposal-process).

For asking questions, see:

* [The golang-nuts mailing list](https://groups.google.com/d/forum/golang-nuts)

* [The Go Forum](https://forum.golangbridge.org/), a web-based forum

* [Gophers Slack](https://gophers.slack.com), use the [invite app](https://invite.slack.golangbridge.org/) for access

* [Stack Overflow](http://stackoverflow.com/questions/tagged/go) with questions tagged "go"

* **IRC** channel #go-nuts on Freenode
