talk2sohail / go-class

Material for a class to teach Go

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Material for a class to teach the Go programming language

This repo contains the material, developed over the last years, to teach a class about the Go programming language.

It has been thought to be used in class by an instructor, but can also be seen as a journey for self learning.

The class is divided in several modules that cover

  • the core of the language, from syntax to built in types to code structuring via packages and modules
  • goroutines, concurrency primitives and concurrency patterns
  • generics
  • built in testing support

The modules reference several examples, some in the Go playground and some stored in the src folder of this repo.

Each module has a slide deck which can be accessed via the website provided by GitHub Pages for this Repo at the url https://EnricoPicci.github.io/go-class/.

According to its license, this material can be used for free for non commercial purposes.

If the material is going to be used for commercial purposes, for instance for paid education, we ask to be contacted to agree on a fee to be paid to the author, Enrico Piccinin (enrico.piccinin@gmail.com).

The fees collected will be devolved to non profit organizations. The donor will be mentioned in the website.

Parts marked as advanced

I have marked some slides as advanced, since I consider them to cover thems which are not really necessary during the first learning journey. It is an arbitrary cclassification. I would be happy to hear your opinion.

Issues and discussions

Anyone who finds errors in the material of the class can open an issue on GitHub.

For more open conversations we can use the "Conversations" tab on the GitHub page of this repo.

Aknowledgments

At the beginning of my Go journey I have found the online course "Ultimate Go Programming" from William Kennedy very illuminating and a significant part of the material of this class has been influenced by its vision.

License

This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike (CC BY-NC-SA) license. See "license.txt" for details.

run the tests

From the GO-CLASS project folder run the command ./launch-tests.sh

How the website has been created

The process follow to create the website and generate the html code is described in this article

About

Material for a class to teach Go

License:Other


Languages

Language:Go 83.9%Language:HTML 13.3%Language:Shell 2.7%