# Announcing the 2020 Go Developer Survey
20 Oct 2020
Tags: survey, community
Summary: Please take the 2020 Go Developer Survey. We want to hear from you!

Alice Merrick
amerrick@google.com

## Help shape the future of Go {#help}

Since 2016, thousands of Gophers around the world have helped the Go project
by sharing their thoughts via our annual Go Developer Survey.
Your feedback has played an enormous role in driving changes to our language,
ecosystem, and community, including the gopls language server,
the latest generics draft, the module mirror, and so much more.
And of course, we publicly share [each year's results](https://blog.golang.org/survey2019-results),
so we can all benefit from the community's insights.

This year we’ve streamlined the survey to shorten the time it takes to
complete and improved the survey’s accessibility.
The specific questions each person will see are randomly selected,
so folks who’ve taken the survey in prior years may not see all of the
questions they are used to.
Rest assured that they are still there. This approach allows us to ask about
a wider variety of topics than in prior years while also reducing the survey’s length.

Today we are launching the 2020 Go Developer Survey.
We'd love to hear from everyone who uses Go,
used to use Go, or is interested in using Go,
to help ensure the language, community, and ecosystem fit the needs of the
people closest to it.
Please help us shape Go's future by participating in this 10-minute survey by November 8th:
[Take the 2020 Go Developer Survey](https://google.qualtrics.com/jfe/form/SV_1O0A5f70Q38dlVr).

## Spread the word!

We need as many Gophers as possible to participate in this survey to help
us better understand our global user base.
We'd be grateful if you would spread the word by sharing this post on your
social network feeds,
around the office, at virtual meet-ups, and in other communities. Thank you!
