Get Started with Go!
Tags: go, programming, vscode
Published: 2021-05-30 17:57:56

## Installation

I use an Arch based Linux distribution so I am going to install golang through `pacman`. If you are a Mac or a Windows user you can see the installation procedure over [here](https://golang.org/dl/).

**Updated the packages**

```bash
$ sudo pacman -Syu
```

**Install golang**

```bash
$ sudo pacman -Sy go
```

Testing if the installation was successful

```bash
$ go version
```

it should give us an output like this :

```bash
go version go<version number> linux/amd64
```

## Setting Up the Code Editor

Make a directory and run `go mod init github.com/<github username>/<repo name>`

This will create  a `go.mod` file in the working directory.

If you are a JS developer you will be familiar to the `npm init` command that creates a `package.json` in the working directory to store the information about all the dependencies that the npm package would use. `go mod init` is similar to that and works in a similar way.

Open the working directory in Visual Code by running the command `code .`

Download Go extension from the [Visual Studio Code Marketplace](https://code.visualstudio.com/docs/languages/go)

You will see a pop up notification in Visual Studio Code like this:

![Get%20Started%20with%20Go!%20067d2ddd6ff240edaba2b303ef59c705/Untitled.png](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z574uwv4rezih4z3k8fs.png)

Click on `Install all` and wait some time.

After the process are completed we can now get to writing your first few lines in go.

For a video tutorial till now you can check this [link](https://youtu.be/1MXIGYrMk80).

## Hello World

Hello world is pretty much the first line of code that most programmers write while learning a new language so how can we miss this tradition.

Make a new file called `main.go` and write the following lines of code :

![https://media.giphy.com/media/13HgwGsXF0aiGY/giphy.gif](https://media.giphy.com/media/13HgwGsXF0aiGY/giphy.gif)

```go
package main

import "fmt"

func main() {
	fmt.Println("Hello world")
}
```

Lets take a look at what we have written. 

The `package main` tells the Go compiler that the package should compile as an executable program instead of a shared library.

The main function in the `package main` will be the entry point of our executable program. When you build shared libraries, you will not have any main package and main function in the package.

We can import modules using the `import` command like in the Hello World program we just wrote we imported the `fmt` library.

`fmt` library is very similar to the `print` commands in python or `console.log` in java-script.

`fmt.Println()` displays the data inside it in the terminal.

To get more information about `fmt`module click [here](http://golang.org/pkg/fmt/#hdr-Printing).

## Executing our code

To run our code we can use `go run main.go` command in the terminal.

We can also compile the go code into a executable binary file by using `go build main.go`

You can then execute the file by `./main`

```bash
$ go run main.go
Hello world

$ go build main.go

$ ls
go.mod main.go main

$ ./main
Hello world
```

You are all set for learning Go!

![https://media.giphy.com/media/8YHmc8luwmJJjFY7zh/giphy.gif](https://media.giphy.com/media/8YHmc8luwmJJjFY7zh/giphy.gif)