██╗     ███████╗ █████╗ ██████╗ ███╗   ██╗
██║     ██╔════╝██╔══██╗██╔══██╗████╗  ██║
██║     █████╗  ███████║██████╔╝██╔██╗ ██║
██║     ██╔══╝  ██╔══██║██╔══██╗██║╚██╗██║
███████╗███████╗██║  ██║██║  ██║██║ ╚████║
╚══════╝╚══════╝╚═╝  ╚═╝╚═╝  ╚═╝╚═╝  ╚═══╝

██████╗ ██████╗  ██████╗  ██████╗ ██████╗  █████╗ ███╗   ███╗███╗   ███╗██╗███╗   ██╗ ██████╗
██╔══██╗██╔══██╗██╔═══██╗██╔════╝ ██╔══██╗██╔══██╗████╗ ████║████╗ ████║██║████╗  ██║██╔════╝
██████╔╝██████╔╝██║   ██║██║  ███╗██████╔╝███████║██╔████╔██║██╔████╔██║██║██╔██╗ ██║██║  ███╗
██╔═══╝ ██╔══██╗██║   ██║██║   ██║██╔══██╗██╔══██║██║╚██╔╝██║██║╚██╔╝██║██║██║╚██╗██║██║   ██║
██║     ██║  ██║╚██████╔╝╚██████╔╝██║  ██║██║  ██║██║ ╚═╝ ██║██║ ╚═╝ ██║██║██║ ╚████║╚██████╔╝
╚═╝     ╚═╝  ╚═╝ ╚═════╝  ╚═════╝ ╚═╝  ╚═╝╚═╝  ╚═╝╚═╝     ╚═╝╚═╝     ╚═╝╚═╝╚═╝  ╚═══╝ ╚═════╝

      

>

// Learn programming right in your terminal
// Practice First / AI Assistance / Fully Offline

GitHub icon GitHub

demo

[use ↑↓ to navigate, enter to run tests]

javascript fundamentals
EXERCISES
> 1 - variables_const_let
> 2 - arrow_functions
>   3 - array_methods
>   4 - destructuring
> 🔒 5 - async_await
> 🔒 6 - promises_chaining
EXERCISE: Variables - const & let Master modern JavaScript variable declarations and understand block scoping. OBJECTIVES: • Use const for immutable bindings • Apply let for block-scoped variables • Understand hoisting differences • Avoid common var pitfalls Press ENTER to run tests
Enter - run test | ↑↓ - navigate | r - readme | h - hint | q - quit

click to focus, then use keyboard

About

Learn Programming is a CLI application built in Rust that simplifies how you learn to code. Unlike traditional browser-based platforms, learnp is IDE agnostic, allowing you to use code editor of your choice, bringing you close to real programmer environments.

Feeling stuck? With Ollama installed, you can get AI-powered hints and explanations directly in terminal.

Your progress is tracked in a local SQLite database, so you can pick up exactly where you left off.

Features

[Why it's cool]

Learn By Doing

Start coding immediately, from small code snippets to full projects

Get Instant Feedback From Tests

Each exercise includes automated tests to validate your solutions right away

Track Your Progress

Local SQLite database saves your learning journey

Ollama Integration

Leverage AI assistance directly within the app to help you learn faster

Available Courses

Available training modules...

[JS]

JavaScript

179 exercises
7-9 WEEKS
[click for details]
[WEB]

Fullstack Web Development (Coming Soon)

[coming soon]
70 exercises
12-14 WEEKS
[click for details]
[RS]

Rust (Coming Soon)

[coming soon]
60 exercises
10-12 WEEKS
[click for details]

Getting Started

i am...
01
🔧

Install Git

Git helps manage code. Download from git-scm.com and follow the installation wizard

02
🤖

Install Ollama (Recommended)

Ollama is optional, but required to get AI hints.

03
📦

Download Ollama Model

Download a local model for AI hints. Mistral is recommended for quality and low resource usage.

$ ollama pull mistral
$ ollama run mistral # test it (Ctrl+C to exit)
04

Install CLI

Download and install the learnp CLI for your operating system

05

Clone The Course

Create a folder for courses and download the JavaScript course from GitHub

$ cd ~/courses
$ git clone https://github.com/artur-kot/learn-programming-javascript.git
06
📁

Navigate To Course Directory

Move into the course folder using the 'cd' (change directory) command

$ cd ~/courses/learn-programming-javascript
07

Start CLI

Launch the learning interface by typing 'learnp' and pressing Enter

$ learnp
08

Install Code Editor (Optional)

Get a code editor like VS Code to write and edit your code comfortably

faq

[frequently asked questions...]