Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: about 1 month ago
JSON representation
A book on Go, contains fundamentals but also recipes
- Host: GitHub
- URL: https://github.com/softchris/golang-book
- Owner: softchris
- License: mit
- Created: 2022-02-24T22:17:36.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-10-30T17:18:06.000Z (about 1 year ago)
- Last Synced: 2024-09-29T21:21:14.536Z (about 1 month ago)
- Topics: api, book, free, go, golang, golang-application, golang-examples, json, programming, web
- Language: Go
- Homepage:
- Size: 1.23 MB
- Stars: 161
- Watchers: 5
- Forks: 28
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
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. :)