Learn code in interactive notebooks.
Choose a language, read short lessons, edit real examples and run code directly in your browser. Free to use, no account required.
Free to use · Runs in your browser · Beginner friendly · No account required
Chapter 01 — 6 total
Hello, World
Every C++ program starts with a main() function.
●Hello, C++!
Notebooks
Pick a notebook, start learning
12 languages. All free, all in your browser, no account required.
Python
Python fundamentals, automation, APIs, data structures, file handling and real project workflows.
def greet(name):
return f"Hello, {name}"
print(greet("Ada"))JavaScript
Browser-focused JavaScript covering DOM events, async workflows, APIs and interactive UI projects.
button.addEventListener("click", () => {
count += 1;
label.textContent = count;
});TypeScript
TypeScript lessons for typing data models, UI state, API payloads and reusable application functions.
type User = { id: number; name: string };
function label(user: User) {
return `${user.id}: ${user.name}`;
}Rust
Rust fundamentals through ownership, borrowing, enums, pattern matching and systems programming.
fn label(name: &str) -> String {
format!("user: {name}")
}Go
Go lessons focused on simple syntax, packages, interfaces, concurrency and HTTP service patterns.
func greet(name string) string {
return "Hello, " + name
}Java
Java fundamentals from classes and methods through collections, exceptions, streams and backend foundations.
record User(String name) {}
var names = users.stream()
.map(User::name)
.toList();C++
Interactive C++ notebook with live code execution, memory, pointers, STL and project exercises.
#include <iostream>
#include <vector>
int main() {
std::vector<int> scores{8, 13, 21};
std::cout << scores.size();
}C
C fundamentals from variables and functions through pointers, memory, files, build tools and systems basics.
#include <stdio.h>
int main(void) {
int score = 21;
printf("%d\n", score);
}C#
C# and .NET lessons for classes, collections, LINQ, async workflows, testing and web API basics.
var active = users
.Where(user => user.Enabled)
.Select(user => user.Name);Kotlin
Kotlin language, Android and backend practice covering null safety, coroutines, APIs and architecture.
data class Course(val title: String)
val title = course?.title ?: "Untitled"Swift
Swift lessons for constants, optionals, collections, protocols, errors, concurrency and app-minded projects.
func greet(_ name: String?) -> String {
"Hello, \(name ?? "friend")"
}SQL
SQL lessons for querying, joins, aggregates, schema design, transactions and reporting workflows.
SELECT name, COUNT(*) AS orders
FROM customers
JOIN orders USING (customer_id)
GROUP BY name;How it works
Four steps from zero to running
Read the lesson
Each chapter explains a concept clearly with notes and examples. No fluff.
Edit the code
Every example is editable. Change the code, add your own ideas, break things.
Run it in the browser
Press Run (or Cmd+Enter). The code executes instantly — no backend, no install.
Try the challenge
Each lesson ends with a small challenge to cement what you just learned.
Why learn here
Why learn with notebooks
Traditional tutorials separate reading from doing. Notebooks combine them — and that changes how fast you learn.
Runs entirely in the browser
No compiler install, no server, no Docker. Open the page and start coding.
Notebook-style learning
Explanations, code, and output live side by side — like a textbook that runs.
Completely free, forever
No paywall, no trial, no gated course path. Everything is open for everyone.
Real, runnable code
Not pseudocode or screenshots. Every cell is live and editable.
Instant feedback
Run code in milliseconds. See output, fix bugs, iterate — all in one tab.
Good for beginners
Plain language, short lessons, and progressive difficulty. No prior experience needed.
Beginner paths
Start from zero in any language
Every notebook takes you from your first print statement to working with data structures — six focused beginner chapters, all in your browser.
C++ beginner path
Start from zero with C++
Hello, World
Print your first line
Variables & Types
Store and use values
Reading Input
Get input from the user
If / Else & Loops
Control program flow
Functions
Organize your code
Arrays & Collections
Work with collections
Python beginner path
Start from zero with Python
Hello, World
Print your first line
Variables & Types
Store and use values
Reading Input
Get input from the user
If / Else & Loops
Control program flow
Functions
Organize your code
Arrays & Collections
Work with collections
JavaScript beginner path
Start from zero with JavaScript
Hello, World
Print your first line
Variables & Types
Store and use values
Reading Input
Get input from the user
If / Else & Loops
Control program flow
Functions
Organize your code
Arrays & Collections
Work with collections
TypeScript beginner path
Start from zero with TypeScript
Hello, World
Print your first line
Variables & Types
Store and use values
Reading Input
Get input from the user
If / Else & Loops
Control program flow
Functions
Organize your code
Arrays & Collections
Work with collections
Rust beginner path
Start from zero with Rust
Hello, World
Print your first line
Variables & Types
Store and use values
Reading Input
Get input from the user
If / Else & Loops
Control program flow
Functions
Organize your code
Arrays & Collections
Work with collections
Go beginner path
Start from zero with Go
Hello, World
Print your first line
Variables & Types
Store and use values
Reading Input
Get input from the user
If / Else & Loops
Control program flow
Functions
Organize your code
Arrays & Collections
Work with collections
Java beginner path
Start from zero with Java
Hello, World
Print your first line
Variables & Types
Store and use values
Reading Input
Get input from the user
If / Else & Loops
Control program flow
Functions
Organize your code
Arrays & Collections
Work with collections
C beginner path
Start from zero with C
Hello, World
Print your first line
Variables & Types
Store and use values
Reading Input
Get input from the user
If / Else & Loops
Control program flow
Functions
Organize your code
Arrays & Collections
Work with collections
C# beginner path
Start from zero with C#
Hello, World
Print your first line
Variables & Types
Store and use values
Reading Input
Get input from the user
If / Else & Loops
Control program flow
Functions
Organize your code
Arrays & Collections
Work with collections
Kotlin beginner path
Start from zero with Kotlin
Hello, World
Print your first line
Variables & Types
Store and use values
Reading Input
Get input from the user
If / Else & Loops
Control program flow
Functions
Organize your code
Arrays & Collections
Work with collections
FAQ
Common questions
Is BaseCodeByte really free?
Yes. Completely free. No trial, no credit card, no limits. All content is free for everyone.
Do I need to create an account?
No. There are no accounts on BaseCodeByte. Open a notebook and start coding immediately.
How does the C++ interpreter work?
We use JSCPP, an open-source C++ interpreter written in JavaScript that runs entirely in your browser. No code is sent to a server.
What C++ features are supported?
JSCPP supports a useful subset of C++: standard I/O, variables, arithmetic, conditionals, loops, functions, arrays, vectors, and strings. Complex STL, templates, and pointers may have limitations.
Will there be more notebooks?
Yes. Python and JavaScript notebooks are planned. Sign up to the newsletter (via the contact page) to be notified.
Can I use this for a class or workshop?
Absolutely. All content is free to use for educational purposes. Share the link with your students.