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

https://github.com/jamesgober/academy

A structured learning library: programming foundations, language courses, references, and developer setup guides. Authored and maintained by James Gober.
https://github.com/jamesgober/academy

computer-science courses documentation education learning programming reference rust tutorials

Last synced: about 6 hours ago
JSON representation

A structured learning library: programming foundations, language courses, references, and developer setup guides. Authored and maintained by James Gober.

Awesome Lists containing this project

README

          

# Academy

**A structured learning library — from first principles to production.**

Programming foundations, language courses, quick references, and developer
setup guides. Written to teach the absolute beginner without insulting the
experienced reader.

---

## What this is

Academy is a self-contained curriculum. It starts at the very bottom — what a
program even *is* — and builds upward through real, working languages. Every
page is structured the same way, so once you learn how to read one lesson you
know how to read them all.

It is organized into five parts:

| Part | What it covers |
|------|----------------|
| [Foundations](./foundations/) | Language-agnostic concepts: what is a variable, a function, a class, a loop. The vocabulary of programming. |
| [Getting Started](./getting-started/) | Setting up your machine to write code — per platform (Windows, macOS, Linux) — plus how to organize a dev folder. |
| [Platforms](./platforms/) | Tool and ecosystem courses that apply across languages. Start with [GitHub](./platforms/github/). |
| [Languages](./languages/) | Full courses and quick references for individual languages. Start with [Rust](./languages/rust/). |
| [Templates](./_templates/) | The authoring templates used to build every page in this repository. |

## How to use Academy

**Brand new to programming?** Start with [Foundations](./foundations/). Read it
top to bottom. Don't skip ahead to a language until the words *variable*,
*function*, and *type* feel ordinary.

**Ready to write code?** Go to [Getting Started](./getting-started/) and follow
the guide for your operating system. You'll install an editor, a language
toolchain, and set up a place to keep your projects.

**Need professional workflow skills?** Take a platform track under
[Platforms](./platforms/). Start with the [GitHub Masterclass](./platforms/github/).

**Know the basics, want a language?** Jump straight into a course under
[Languages](./languages/). Each language has two halves: a **course** (learn it
in order) and a **reference** (look things up fast).

---

## A note on quality

Every page here is written by a human and reviewed for accuracy. Where AI
assists in drafting, it follows the rules in
[`_templates/AI_AUTHORING_GUIDE.md`](./_templates/AI_AUTHORING_GUIDE.md) — which
exist specifically to prevent hollow filler, deferred hard topics, and the
generic tone that makes most auto-generated documentation worthless.

---


Authored and maintained by James Gober.