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

https://github.com/ineelhere/code-with-go

Learning to code using Go with examples - from the basics to working projects! Collaborations are welcome πŸ€—
https://github.com/ineelhere/code-with-go

basics-to-advanced collaborate documentation go golang learning-by-doing lessons markdown opensource technical-writing tutorial-code

Last synced: 5 months ago
JSON representation

Learning to code using Go with examples - from the basics to working projects! Collaborations are welcome πŸ€—

Awesome Lists containing this project

README

          

# Learning Go by doing! πŸš€

![](https://miro.medium.com/v2/resize:fit:384/0*A6EB_Ykks5bPp_rM.gif)

Inspired from [Go by Example](https://gobyexample.com/) by Mark McGranaghan and Eli Bendersky ([Creative Commons Attribution 3.0 Unported License](https://creativecommons.org/licenses/by/3.0/)), this is an attempt to document the Go learning journey with additional details and features. Of course, thanks to [ChatGPT](https://chat.openai.com/) for most of the explanations 🦾

### Collaborations and Contributions 🀝
This is an open-source effort meant to be freely accessible by the community.

For contributing with code, here's a quick guideline πŸ˜‰
* Go to [https://github.com/ineelhere/code-with-go](https://github.com/ineelhere/code-with-go)
* You need to either [clone](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) the repository or [fork](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo) it
* [Create a branch of your own](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository), preferably from the `dev` branch
* [Commit](https://github.com/git-guides/git-commit) your changes
* [Raise a PR](https://docs.github.com/en/desktop/working-with-your-remote-repository-on-github-or-github-enterprise/creating-an-issue-or-pull-request-from-github-desktop) to the `dev` branch
* Now you [chill](https://youtu.be/KOnFBHqztbM) while I review the codeπŸ₯€

![](https://media.giphy.com/media/0Av9l0VIc01y1isrDw/giphy.gif)

### Table of contents

* [Code With Go! πŸš€](documentation/README.md)
* [Hello World](documentation/01-hello-world.md)
* [Values](documentation/2-values.md)
* [Variables](documentation/3-variables.md)
* [Constants](documentation/4-constants.md)
* [For Loop](documentation/5-for.md)
* [If Else](documentation/6-iflese.md)
* [Switch](documentation/7-switch.md)
* [Array](documentation/8-array.md)
* [Slice](documentation/9-slice.md)
* [Map](documentation/10-map.md)
* [Range](documentation/11-range.md)
* [Functions](documentation/12-functions.md)
* [Multiple Return Values](documentation/13-multiple-return-values.md)
* [Variadic Functions](documentation/14-variadic-functions.md)
* [Closure](documentation/15-closure.md)
* [Recursion](documentation/16-recursion.md)
* [Pointers](documentation/17-pointers.md)
* [Strings and Runes](documentation/18-strings-and-runes.md)
* [Structs](documentation/19-structs.md)
* [Methods](documentation/20-methods.md)
* [Interfaces](documentation/21-interfaces.md)
* [Struct Embedding](documentation/22-struct-embedding.md)
* [Generics](documentation/23-generics.md)
* [Error](documentation/24-error.md)
* [Goroutines](documentation/25-goroutines.md)
* [Channels](documentation/26-channels.md)
* [Channel Buffering](documentation/27-channelbuffering.md)
* [Channel Synchronization](documentation/28-channel-synchronization.md)
* [Channel Directions](documentation/29-channel-directions.md)
* [Select](documentation/30-select.md)
* [Timeouts](documentation/31-timeouts.md)
* [Non-Blocking Channel Operations](documentation/32-non-blocking-channel-operations.md)
* [Closing Channels](documentation/33-closing-channels.md)
* [Range over Channels](documentation/34-range-over-channels.md)
* [Timers](documentation/35-timers.md)
* [Tickers](documentation/36-tickers.md)
* [Worker Pools](documentation/37-worker-pools.md)
* [Wait Groups](documentation/38-wait-groups.md)
* [Rate Limiting](documentation/39-rate-limiting.md)
* [Atomic Counters](documentation/40-atomic-conters.md)
* [Mutexes](documentation/41-mutexes.md)
* [Stateful Goroutines](documentation/42-stateful-goroutines.md)
* [Sorting](documentation/43-sorting.md)
* [Sorting by Functions](documentation/44-sorting-by-functions.md)
* [Panic](documentation/45-panic.md)
* [Defer](documentation/46-defer.md)
* [Recover](documentation/47-recover.md)
* [String Functions](documentation/48-string-functions.md)
* [String Formatting](documentation/49-string-formatting.md)
* [Text Templates](documentation/50-text-templates.md)
* [Regular Expressions](documentation/51-regular-expressions.md)
* [JSON](documentation/52-json.md)
* [XML](documentation/53-xml.md)
* [Time](documentation/54-time.md)
* [Epoch](documentation/55-epoch.md)
* [Time Formatting / Parsing](documentation/56-time-formatting-parsing.md)
* [Random Numbers](documentation/57-random-numbers.md)
* [Number Parsing](documentation/58-number-parsing.md)
* [SHA256 Hashes](documentation/59-sha256-hashes.md)
* [Base64 Encoding](documentation/60-base64-encoding.md)
* [Reading Files](documentation/61-reading-files.md)
* [Writing Files](documentation/62-writing-files.md)
* [Line Filters](documentation/63-line-filters.md)
* [File Paths](documentation/64-file-paths.md)
* [Directories](documentation/65-directories.md)
* [Temporary Files and Directories](documentation/66-temporary-files-and-directories.md)
* [Embed Directive](documentation/67-embed-directive.md)
* [Testing and Benchmarking](documentation/68-testing-and-benchmarking.md)
* [Command-Line Arguments](documentation/69-command-line-interface.md)
* [Command-Line Flags](documentation/70-command-line-flags.md)
* [Command-Line Subcommands](documentation/71-command-line-subcommands.md)
* [Environment Variables](documentation/72-environment-variables.md)
* [Logging](documentation/73-logging.md)
* [HTTP Client](documentation/74-http-client.md)
* [HTTP Server](documentation/75-http-server.md)
* [Context](documentation/76-context.md)
* [Spawning Processes](documentation/77-spawning-process.md)
* [Exec'ing Processes](documentation/78-exec`ing-processes.md)
* [Signals](documentation/79-signals.md)
* [Exit](documentation/80-exit.md)
___

**Β© `Indraneel Chakraborty` | 2024** πŸ§‘β€πŸ’»

[ Email](mailto:hello.indraneel@gmail.com) | [LinkedIn](https://www.linkedin.com/in/indraneelchakraborty/) | [GitHub](https://github.com/ineelhere)