Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/avicennajr/golang-learning

Documenting Our Journey on Learning Go
https://github.com/avicennajr/golang-learning

Last synced: about 4 hours ago
JSON representation

Documenting Our Journey on Learning Go

Awesome Lists containing this project

README

        

# Golang Learning Guide RoadMap

I divided the learning into six sections. Each section is divided into a number
of units. Each unit should be completed in a day.

## Section One: Basics

### Unit 1: Hello Go
- [ ] Learn how to Install, create your first hello.go program and know
how to run it.

### Unit 2: Data Types
- [ ] Data types in Go

### Unit 3: Conditionals
- [ ] If Statements
- [ ] Switches

### Unit 4: Loops
- [ ] For Loops

### Unit 5: Functions
- [ ] Defining Functions
- [ ] Anonymous Functions

### Understanding what you learnt
We'll be required to create a few simple projects that will confirm our
learning so far.

## Section Two: Data Structures

### Unit 6: Arrays and Slices
- [ ] Learn how to define arrays
- [ ] Slicing and Ranging arrays

### Unit 7: Structs
- [ ] Creating Structs
- [ ] Copying a Struct
- [ ] Methods in Structs
- [ ] Comparing Structs

### Unit 8: Maps
- [ ] Creating Maps
- [ ] Using Structs and Maps

### Unit 9: Using JSON
- [ ] Decoding JSON
- [ ] Encoding JSON

### Unit 10: Interfaces
- [ ] Working with Interfaces
- [ ] How to use them

## Section Three: Multitasking

### Unit 11: Goroutines

- [ ] Understanding Goroutines
- [ ] Using Goroutines with shared resources
- [ ] Synchronizing Goroutines

### Unit 12: Communicating Goroutines with Channels

- [ ] Understanding Channels
- [ ] Iterating through channels
- [ ] Asynchronously waiting on channels
- [ ] Using buffered channels

## Section Four: Organizing Code

### Unit 13: Using and Creating packages in Go

- [ ] Working with Packages
- [ ] Using third party Packages

### Unit 14: Grouping packages into Modules

- [ ] Creating a module
- [ ] Testing and Building a module
- [ ] Publishing a module on github

# Extras

The following Units are not mandatory but will be good for practice

## Section Five: Go in Action

### Unit 15: Consuming Web APIs

- [ ] Fetching data from Web services

### Unit 16: Serving REST APIs

- [ ] Building web services using REST APIs
- [ ] Creating a REST API in Go

### Unit 17: Working with Databases

- [ ] Connecting to a Database with Go

## Resources:

* Go Programming Language for Dummies
* [Golang Tour Guide](https://go.dev/tour)
* [Exercism for practice exercises](https://exercism.org/tracks/go/exercises)