├── LICENSE └── README.md /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Amit Davidson 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Awesome Golang Workshops [![Awesome](https://awesome.re/badge.svg)](https://awesome.re) 2 | A curated list of awesome golang workshops. 3 | 4 | As opossed to tutorials or blog posts, workshops cover a topic thoroughly with great depth and are usually hosted in Github. 5 | 6 | ### Contributing 7 | Any comments, suggestions? [Let us know!](https://github.com/amit-davidson/awesome-golang-workshops/issues) If you see something missing, please open a PR. Workshops should be a source to learn a new topic in depth so keep that in mind when opening a PR. 8 | 9 | 10 | ## Contents 11 | * [Performance](#performance) 12 | * [Learning Go](#learning-go) 13 | * [Versioning](#versioning) 14 | * [Web](#web) 15 | * [Best Practices](#best-practices) 16 | * [Design Patterns](#design-patterns) 17 | * [Go Internals](#go-internals) 18 | * [gRPC](#grpc) 19 | * [ML](#ml) 20 | * [Tooling](#tooling) 21 | 22 | --- 23 | 24 | ### Performance 25 | * [High Performance Go Workshop](https://github.com/davecheney/high-performance-go-workshop) - Covers the tools to diagnose performance problems 26 | * [Go Perfbook](https://github.com/dgryski/go-perfbook/) - Outlines best practices for writing high-performance Go code 27 | * [Golang Benchmarks](https://github.com/jeromefroe/golang_benchmarks) - Comparison of different benchmarks with explanations for the results 28 | * [Compiler Optimizations](https://github.com/golang/go/wiki/CompilerOptimizations) - Optimizations done by the Go compiler 29 | 30 | ### Learning Go 31 | * [Learn Go With Tests](https://github.com/quii/learn-go-with-tests) - Learn Go with test-driven development 32 | * [Gopher Labs](https://github.com/sangam14/GopherLabs) - A workshop with a track on how to be a Go developer 33 | * [The Beginner's Guide to Go](https://tutorialedge.net/courses/go-beginners-guide/) - A workshop that walks you through everything you need in order to learn Go from the ground up. 34 | 35 | 36 | ### Versioning 37 | * [vgo](https://research.swtch.com/vgo) - A collection of posts by Russ Cox about versioning in Go 38 | 39 | ### Web 40 | * [Go Web Workshop](https://github.com/campoy/go-web-workshop) - How to build a web application with Go 41 | 42 | ### Best Practices 43 | * [Uber Styling guide](https://github.com/uber-go/guide) - Documents style patterns and conventions used in Go use at Uber 44 | * [Clean Go Article](https://github.com/Pungyeon/clean-go-article) - Covers writing clean code and discusses concrete refactoring examples specific to Go 45 | 46 | ### Data Structures 47 | * [Go Data Structures Course](https://tutorialedge.net/courses/go-data-structures-course/) - A course covering how you can build all the standard CS data structures using Go 48 | 49 | ### Design Patterns 50 | * [Go Patterns](https://github.com/tmrts/go-patterns) - Curated list of Go design patterns, recipes and idioms 51 | 52 | ### Go Internals 53 | * [Go Internals](https://github.com/teh-cmc/go-internals) - About the internals of Go 54 | * [Static Analysis Workshop](https://github.com/amit-davidson/GopherCon2021IsraelStaticAnalysisWorkshop) - Dicusses about writing static code analyzers (linters) in Go for Go programs 55 | * [Go 101](https://github.com/go101/go101) - focusing on Go syntax/semantics and all kinds of runtime related things 56 | 57 | ### gRPC 58 | * [gRPC Workshop](https://github.com/mresti/grpc-workshop) - How to build a gRPC server, a gRPC client and how to deploy a gRPC server using docker 59 | * [Go gRPC Crash Course](https://github.com/preslavmihaylov/go-grpc-crash-course) - A crash course on using gRPC with Go 60 | * [Building gRPC Microservices in Go](https://tutorialedge.net/courses/go-grpc-services-course/) - A course that walks you through setting up, and implementing a gRPC microservice in Go 61 | 62 | ### ML 63 | * [Machine Learning With Go](https://github.com/ardanlabs/training-ai/tree/master/machine-learning-with-go) - Provides a view on training, utilizing, evaluating, and deploying machine learning models using Go 64 | 65 | ### Tooling 66 | * [Go Tooling Workshop](https://github.com/campoy/go-tooling-workshop) - Covers all the tools gophers use in their day to day life 67 | --------------------------------------------------------------------------------