Contribute new tutorials or exercises for any of the 13 supported programming languages by writing Markdown files and submitting a pull request.
Run a local copy of one of the tutorial sites using Docker to preview and test your changes before submitting.
Fork the project to create your own interactive coding tutorial site for a programming language or topic not yet covered.
Requires IDEOne API credentials to enable in-browser code execution, Docker simplifies local setup.
This repository is the source code behind a family of free websites where beginners can learn programming languages by writing and running code directly in the browser. Each site covers one language. The collection includes learnpython.org, learnjavaonline.org, learn-js.org, learn-c.org, learn-cpp.org, learn-php.org, learnshell.org, learn-perl.org, learnrubyonline.org, learn-golang.org, learnrust.org, learncs.org, and learn-html.org. The core design is that visitors read a short lesson and then type or modify code in an embedded editor on the same page, running it without installing anything on their own computer. Code execution is handled through an external API called IDEOne, which means the code runs on a remote server and sends the result back to the page. Credentials for that service are needed to make execution work in a local development copy. The tutorials and exercises are stored as Markdown files, a plain-text format that is easy to read and edit. When someone visits one of the sites, the server loads all the Markdown files into memory and serves them as pages. The domain name determines which language site is displayed, and a single shared codebase runs all of them. Changing which site runs locally is done by setting an environment variable before starting the server. The project invites contributions. Anyone can write new tutorials or exercises and submit them via pull request. The setup supports running a local copy with Docker or without it, and the README covers both paths briefly. The project is supported by DigitalOcean. A number of individual contributors are credited in the repository.
← ronreiter on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.