# Go Starter Pack

You want to start learning Go and not sure where to begin and what you'll need? No worries, "Keep It Simple, Stupid" for the rescue!

# The Source

Start from the [official Go website](https://go.dev/) - [https://go.dev/](https://go.dev/). You'll be coming back here for:

* the documentation - [https://go.dev/doc/](https://go.dev/doc/)
    
* the packages information - [https://pkg.go.dev/](https://pkg.go.dev/)
    
* the style guide - [https://go.dev/doc/effective\_go](https://go.dev/doc/effective_go)
    

# First steps

A step-by-step official Go tutorial can be found also on the Go official website - [https://go.dev/doc/tutorial/getting-started](https://go.dev/doc/tutorial/getting-started)

It will guide you from the requirements, through the installation process, to writing first lines of code.

Go for it!

# Learning Go

The best so far, free, on-line Go learning tutorial is the Learn Go with Tests - [https://quii.gitbook.io/learn-go-with-tests](https://quii.gitbook.io/learn-go-with-tests)

It navigates you through the Go fundamentals in the Test Driven Development manner. At the end you create a simple application that allows you to test your newly acquired knowledge.

> * Explore the Go language by writing tests
>     
> * **Get a grounding with TDD**. Go is a good language for learning TDD because it is a simple language to learn and testing is built-in
>     
> * Be confident that you'll be able to start writing robust, well-tested systems in Go
>     

Worth mentioning is also a Go by Example - [https://gobyexample.com/](https://gobyexample.com/) which has a simpler form, is designed to explain you a language concepts in an easy form, not to teach you in a step-by-step formula.

# Style Guides

Get to know how to write a good code by studying the official style guides from companies like:

* Google - [https://google.github.io/styleguide/go/](https://google.github.io/styleguide/go/)
    
* Uber - [https://github.com/uber-go/guide/blob/master/style.md](https://github.com/uber-go/guide/blob/master/style.md)
    
* and from the official Go website, effective Go - [https://go.dev/doc/effective\_go](https://go.dev/doc/effective_go)
    

Style guides will not only show you how to write a code, but also explain why some certain decisions has been made. It's a good source of an additional information about the language itself.

More on style guides, where to start and what are the differences you can find in my previous article - [https://blog.skopow.ski/the-go-style-guides](https://blog.skopow.ski/the-go-style-guides).

# IDE

The Golang IDE community is split in half:

* the professional IDE used by the companies worldwide and loved by the developers: JetBrains GoLand - [https://www.jetbrains.com/go/](https://www.jetbrains.com/go/)
    
* the free alternative with limited functionalities, but supported by the giant from the Redmond, Washington: Visual Studio Code - [https://code.visualstudio.com/](https://code.visualstudio.com/)
    

If you can afford the JetBrains IDE you'll definitely love it. If you're just starting the VSC is good enough.

# Socials

What would be a language without a community, right? The most active channels are definitely the Gophers Slack channel and the Golang Insiders community on X. Those and more you can find below:

* [Gophers](https://gophers.slack.com/) Slack channel
    
* [Golang Insiders](https://x.com/i/communities/1685641800449462272) on X
    
* Official [Go](https://twitter.com/golang) X profile
    
* Official Go [GitHub repository](https://github.com/golang)
    
* [Golang-nuts](https://groups.google.com/g/golang-nuts) Google Group
    
* [Golang](https://www.reddit.com/r/golang/) on Reddit
    

Hope that this short article will help you get started with this beatiful and powerful language. See you on the Gophercon!
