Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/softchris/golang-book

A book on Go, contains fundamentals but also recipes
https://github.com/softchris/golang-book

api book free go golang golang-application golang-examples json programming web

Last synced: 2 days ago
JSON representation

A book on Go, contains fundamentals but also recipes

Awesome Lists containing this project

README

        

# Go from the beginning

Welcome to Go from the beginning, a free book containing 25+ lessons that will take you from "zero to hero" in the amazing language Go.

## Read online

>

## Read offline/PDF/EPUB

> FREE on LeanPub

## Donate

Please consider donating to the people of Ukraine.

- **Back and Alive** (they are buying what the army requests and do public reports)

- **NBU** (National Bank of Ukraine) accounts for the army support
- **UNICEF**,

## Table of content

| Chapter | Title | Section | What you will learn | Lesson
|--|--|--|--|--|
| 01 | Hello world | Basics | Why use Go and how to write your first program | [Lesson](/01-basics/01-hello/README.md) |
| 02 | Using variables | Basics | How to declare variables with different data types and how to initialize and assign values | [Lesson](/01-basics/02-variables/README.md) |
| 03 | Boolean logic with If and Else | Basics | How to work with boolean variables and create different execution paths with If, Else and Else If | [Lesson](/01-basics/03-if-and-else/README.md) |
| 04 | Converting between strings and numbers | Basics | How to use the `strconv` library to convert between primitives and strings. | [Lesson](/01-basics/04-conversions/README.md) |
| 05 | Loop statements | Basics | How to repeat statements and iterating over list structures and ways to control the loops | [Lesson](/01-basics/05-loops/README.md) |
| 06 | User input | Basics | How to read user input from the console | [Lesson](/01-basics/06-user-input/README.md) |
| 07 | Functions | Basics | Reuse your code by creating functions. Learn how to deal with parameters and how to deal with returns and return types | [Lesson](/01-basics/07-functions/README.md) |
| 08 | Error handling | Basics | How manage errors in your code. This will teach both how to produce errors as well as deal with them | [Lesson](/01-basics/08-error-handling/README.md) |
| 09 | Arrays | Composite data types | Here we will learn about arrays, how to construct them, access items and iterate over them | [Lesson](/02-data-types/01-arrays/README.md) |
| 10 | Structs | Composite data types | Structs enables us to collect many fields in one grouping, learn how to create and modify structs | [Lesson](/02-data-types/02-structs%20/README.md) |
| 11 | Maps | Composite data types | Maps make it easy to lookup items if you know the key. Maps have the notion of keys and values. | [Lesson](/02-data-types/03-maps/README.md) |
| 12 | Interfaces | Composite data types | Learn how you can model your data as interfaces and how to implement them | [Lesson](/02-data-types/04-interfaces/README.md) |
| 13 | Create your first project | Projects | Learn how to create your first project | [Lesson](/03-projects/01-first-project/README.md) |
| 14 | Consume external packages | Projects | Learn how to use external packages | [Lesson](/03-projects/02-consume-external/README.md) |
| 15 | Create shared module | Projects | Create a module you can share with others | [Lesson](/03-projects/03-create-shared-module/README.md) |
| 16 | Testing | Testing | Learn to test your code | [Lesson](/03-projects/04-testing/README.md) |
| 17 | JSON | Web Dev | Learn to work with the JSON format | [Lesson](/04-webdev/01-json/README.md) |
| 18 | Build a Web App | Web Dev | Learn how to build a web app capable of serving many different formats | [Lesson](/04-webdev/02-web-dev/README.md) |
| 19 | Logs | Miscellaneous | Use logging for better management of all kinds of messages in your app | [Lesson](/05-misc/01-logs/README.md) |
| 20 | Strings | Miscellaneous | Work with the string library | [Lesson](/05-misc/02-strings/README.md) |
| 21 | Regex | Miscellaneous | Work with regular epressions | [Lesson](/05-misc/03-regex/README.md) |
| 22 | Goroutines | Miscellaneous | Work with goroutines and channels | [Lesson](/05-misc/04-goroutines/README.md) |
| 23 | Database with Sqlite | Miscellaneous | Work with databases | [Lesson](/05-misc/05-sqlite/README.md) |
| 24 | Read and write to files | IO | Learn to read from and write to files | [Lesson](/06-io/01-read-write-files/README.md) |
| 25 | Files and directories | IO | Learn to perform operations on files and directories | [Lesson](/06-io/02-file-directories/README.md) |

## How to use this content

Every chapter consist of a lesson and an exercise. You are encouraged to run the code in the exercise, modify it and understand how it works.

## Contributions

Contributions are very welcome. Please raise an issue of you see something or a PR.

I welcome contributions on:

- Suggestions on topics to cover
- Correctness issues
- Spelling
- Suggestions on better formatting
- I hope I hear from you. :)