aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
blob: c83679432879be07905766ee7dbf4652ee682205 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# golings

[![build and test](https://github.com/mauricioabreu/golings/actions/workflows/go.yml/badge.svg)](https://github.com/mauricioabreu/golings/actions/workflows/go.yml)

![gopher](misc/gopher-dance.gif)

> rustlings but for golang this time

You may know [rustlings](https://github.com/rust-lang/rustlings), right? If you don't, please go ahead and check out.
`rustlings` is awesome. It is a CLI app designed to teach the awesome Rust programming language through exercises.

`golings` has the very same idea, but for the [Go programming language](https://go.dev/)

## Installing

First, you need to have `go` installed. You can install it by visiting the [Go downloads page](https://go.dev/dl/)

There are two ways to install

### go install

```sh
go install github.com/mauricioabreu/golings/golings@latest
```

### Binaries

Go to the [releases page](https://github.com/mauricioabreu/golings/releases) and choose the option that best fits your environment.

## Doing exercises

First, clone this repository

```sh
git clone git@github.com:mauricioabreu/golings.git
```

All the exercises can be found in the directory `golings/exercises/<topic>`.

If you want to run a single exercise:

```sh
golings run variables1
```

In case you are stuck and need a hint:

```sh
golings hint variables1
```

To list all exercise while checking your progress:

```sh
golings list
```

To compile and run all the exercises:

```sh
golings verify
```

## Contributing

See [CONTRIBUTING.md](./CONTRIBUTING.md)

## Learning resources

* [Golang official tutorial](https://go.dev/doc/tutorial/)
* [Go by example](https://gobyexample.com)
* [Aprenda Go](https://www.youtube.com/playlist?list=PLCKpcjBB_VlBsxJ9IseNxFllf-UFEXOdg)