{"id":46812831,"url":"https://github.com/course-go/lectures","last_synced_at":"2026-03-10T08:34:51.517Z","repository":{"id":216001363,"uuid":"712471468","full_name":"course-go/lectures","owner":"course-go","description":"Course lectures","archived":false,"fork":false,"pushed_at":"2025-12-11T00:20:43.000Z","size":17064,"stargazers_count":13,"open_issues_count":20,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-12-11T07:47:14.881Z","etag":null,"topics":["course","go","golang","lectures","presentations","slides"],"latest_commit_sha":null,"homepage":"https://lectures.course-go.dev","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc-by-sa-4.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/course-go.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-10-31T14:34:24.000Z","updated_at":"2025-12-11T00:20:47.000Z","dependencies_parsed_at":"2024-03-05T22:29:05.590Z","dependency_job_id":"e15b6446-7dc1-4550-b4ba-f8b3e8a567f0","html_url":"https://github.com/course-go/lectures","commit_stats":null,"previous_names":["course-go/lectures"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/course-go/lectures","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/course-go%2Flectures","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/course-go%2Flectures/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/course-go%2Flectures/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/course-go%2Flectures/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/course-go","download_url":"https://codeload.github.com/course-go/lectures/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/course-go%2Flectures/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30328251,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T05:25:20.737Z","status":"ssl_error","status_checked_at":"2026-03-10T05:25:17.430Z","response_time":106,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["course","go","golang","lectures","presentations","slides"],"created_at":"2026-03-10T08:34:50.746Z","updated_at":"2026-03-10T08:34:51.489Z","avatar_url":"https://github.com/course-go.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Lectures\n\nThis repository contains lecture slides for Course Go.\n\n## Content\n\n0. Course [\n[slides](https://lectures.course-go.dev/00-course.slide)\n]\n    - Introduction\n    - Requirements\n    - Overview\n1. Introduction [\n[slides](https://lectures.course-go.dev/01-introduction.slide) |\n[exercise](https://github.com/course-go/exercises/blob/master/01-workspace-and-project-basics/README.md)\n]\n    - Introduction to Go\n    - IDEs \u0026 Editors\n    - Installing Go\n    - Running Go\n    - Project basics\n    - Resources\n2. Fundamentals #1 [\n[slides](https://lectures.course-go.dev/02-fundamentals.slide) |\n[exercise](https://github.com/course-go/exercises/blob/master/02-katas/README.md)\n]\n    - Built-in types\n    - Variables\n    - Control flow\n    - Functions\n    - Custom types\n    - Pointers\n3. Fundamentals #2 [\n[slides](https://lectures.course-go.dev/03-fundamentals.slide) |\n[exercise](https://github.com/course-go/exercises/blob/master/03-katas/README.md)\n]\n    - Interfaces\n    - Errors\n    - Arrays\n    - Slices\n    - Maps\n    - Range\n4. Concurrency \u0026 parallelism [\n[slides](https://lectures.course-go.dev/04-concurrency-and-parallelism.slide) |\n[exercise](https://github.com/course-go/exercises/blob/master/04-concurrency/README.md)\n]\n    - Goroutines\n    - Runtime\n    - Channels\n    - Select\n    - Related packages\n5. Advanced #1 [\n[slides](https://lectures.course-go.dev/05-advanced.slide) |\n[exercise](https://github.com/course-go/exercises/blob/master/05-generics-and-testing/README.md)\n]\n    - Generics\n    - Packages\n    - Testing\n6. Advanced #2 [\n[slides](https://lectures.course-go.dev/06-advanced.slide) |\n[exercise](https://github.com/course-go/exercises/blob/master/06-pprof/README.md)\n]\n    - Benchmarks\n    - Profiling\n    - Optimizations\n    - Tracing\n    - CGo\n    - Unsafe \u0026 Reflect\n7. REST APIs [\n[slides](https://lectures.course-go.dev/07-rest-api.slide) |\n[exercise](https://github.com/course-go/exercises/blob/master/07-rest-api/README.md)\n]\n    - JSON\n    - HTTP\n    - REST API\n    - HTTP package\n    - Routers \u0026 Web frameworks\n    - OpenAPI\n    - Templating\n8. Containers [\n[slides](https://lectures.course-go.dev/08-containers.slide) |\n[exercise](https://github.com/course-go/exercises/blob/master/08-docker/README.md)\n]\n    - Containerization\n    - Docker\n    - Kubernetes\n9. Databases [\n[slides](https://lectures.course-go.dev/09-databases.slide) |\n[exercise](https://github.com/course-go/exercises/blob/master/09-databases/README.md)\n]\n    - SQL\n    - RDBMSs\n    - Migrations\n    - sql\n    - sqlx\n    - sqlc\n    - GORM\n10. Infrastructure [\n[slides](https://lectures.course-go.dev/10-infrastructure.slide) |\n[exercise](https://github.com/course-go/exercises/blob/master/10-infrastructure/README.md)\n]\n    - CI/CD\n    - Infrastructure\n    - GCP\n11. Observability [\n[slides](https://lectures.course-go.dev/11-observability.slide) |\n[exercise](https://github.com/course-go/exercises/blob/master/11-observability/README.md)\n]\n    - Health\n    - Metrics\n    - Logs\n    - Traces\n    - OpenTelemetry\n\n## Running the slides\n\nThe slides are made using the\n[go present syntax](https://pkg.go.dev/golang.org/x/tools/present)\nwhich has its own tooling.\n\nThe project maintains an up-to-date deployed version\nof the slides on [lectures.course-go.dev](https://lectures.course-go.dev).\n\nThe only disadvantage is that this version does not allow you to run the\nGo code presented on the slides for security reasons.\nTo run the Go code, you must run the slides locally.\n\n### Running locally\n\n#### Using Docker\n\nYou can use an already pre-built container image with lecture slides.\n\n```sh\ndocker run -p \"3999:3999\" \\\n    ghcr.io/course-go/lectures:latest \\\n    present -http=:3999\n```\n\n#### Using present directly\n\nOr you can run the slides locally using the Go present CLI.\n\n##### Clone the repository\n\n```sh\ngit clone git@github.com:course-go/lectures.git\n```\n\n##### Installation\n\n[Install Go](https://go.dev/doc/install) if you do not have it yet.\n\nInstall the CLI present tool using Go install:\n\n```sh\ngo install golang.org/x/tools/cmd/present@latest\n```\n\nThis installs the **present** executable into your\n**$GOPATH/bin** directory if **GOPATH** is set or the\n**$HOME/go/bin** directory otherwise.\n\n##### Usage\n\nMake sure that the directory with the **present** executable is in your $PATH.\n\nAfter that, running the present tool is simple:\n\n```sh\npresent\n```\n\nAlternatively, you can specify on which address the server should listen:\n\n```sh\npresent http=:8080\n```\n\nA webserver is run on the specified address.\nYou can now preview the slides using your favourite web browser.\n\n## Attribution\n\nSome of the lecture slides are based on the [GoCourse](https://github.com/RedHatOfficial/GoCourse)\nproject developed under [Red Hat](https://github.com/RedHatOfficial).\nThe GoCourse is licensed under\n[CC BY-SA 4.0 DEED license](https://creativecommons.org/licenses/by-sa/4.0/deed.en),\nwhich this repository respects and therefore shares.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcourse-go%2Flectures","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcourse-go%2Flectures","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcourse-go%2Flectures/lists"}