/immersive-go-course

An immersive, introductory course to backend software engineering using go.

Primary LanguageGoCreative Commons Zero v1.0 UniversalCC0-1.0

Let's go!

An immersive, introductory course to backend software engineering using go.

Requirements

Before you start this course, make sure you've followed all of the instructions in the prep section.

Remember: you can always Google or ask for help if you get stuck.

Projects

This course is structured into self-contained projects that you can work through at your own pace.

Each project has its own directory with a README.md file that has instructions. If you want to take a look at one way of completing an exercise, there's some code waiting on a branch prefixed impl/ (for "implementation") and an associated Pull Request for you to look at. Try not to copy!

  1. CLI & Files
    An introduction to building things with Go by replicating the unix tools cat and ls.
  2. Servers & HTTP requests
    Learn about long-running processes, HTTP and curl
  3. Servers & Databases
    Build a server that takes data from a database and serves it in json format
  4. Multiple Servers
    Build and run file & API servers behind nginx in a simple multi-server architecture
  5. Docker & Cloud Deployment
    Use containers to reproducibly deploy applications into the cloud
  6. Batch Processing
    Build an image processing pipeline with cloud storage
  7. Buggy App
    Run, debug, and fix a buggy application

Contributing

Having your help to improve these projects would be amazing. See CONTRIBUTING.md for a guide on how to get involved.

Feel free to ask for help in the CYF Slack!