Lessons
Lessons
Structured lesson paths for 29+ languages and ecosystems — from Python, JavaScript and Rust to SQL, C++, Swift, Go and more. Every course has a full lesson outline with real code examples. C++ includes a live interactive notebook that runs code directly in your browser. No account, no install, completely free.
Python
11 tracksPython fundamentals, automation, APIs, data structures, file handling and real project workflows.
Sample tracks
Notebook preview
def greet(name):
return f"Hello, {name}"
print(greet("Ada"))Lab: Build a file cleanup script with functions, loops and a dry-run mode.
JavaScript
7 tracksBrowser-focused JavaScript covering DOM events, async workflows, APIs and interactive UI projects.
Sample tracks
Notebook preview
button.addEventListener("click", () => {
count += 1;
label.textContent = count;
});Lab: Build a task filter with events, arrays and a small render function.
TypeScript
11 tracksTypeScript lessons for typing data models, UI state, API payloads and reusable application functions.
Sample tracks
Notebook preview
type User = { id: number; name: string };
function label(user: User) {
return `${user.id}: ${user.name}`;
}Lab: Type a small API response and narrow loading, success and error states.
Rust
9 tracksRust fundamentals through ownership, borrowing, enums, pattern matching and systems programming.
Sample tracks
Notebook preview
fn label(name: &str) -> String {
format!("user: {name}")
}Lab: Parse a list of records with Result, enums and borrowed string slices.
Go
11 tracksGo lessons focused on simple syntax, packages, interfaces, concurrency and HTTP service patterns.
Sample tracks
Notebook preview
func greet(name string) string {
return "Hello, " + name
}Lab: Create a tiny HTTP handler and test its response body.
Java
11 tracksJava fundamentals from classes and methods through collections, exceptions, streams and backend foundations.
Sample tracks
Notebook preview
record User(String name) {}
var names = users.stream()
.map(User::name)
.toList();Lab: Model a grade book with classes, collections and validation errors.
C++
1 tracksInteractive C++ notebook with live code execution, memory, pointers, STL and project exercises.
Sample tracks
Notebook preview
#include <iostream>
#include <vector>
int main() {
std::vector<int> scores{8, 13, 21};
std::cout << scores.size();
}Lab: Extend a vector-based score tracker with input, functions and formatted output.
C
10 tracksC fundamentals from variables and functions through pointers, memory, files, build tools and systems basics.
Sample tracks
Notebook preview
#include <stdio.h>
int main(void) {
int score = 21;
printf("%d\n", score);
}Lab: Write a small contact record using structs, pointers and a Makefile.
C#
1 tracksC# and .NET lessons for classes, collections, LINQ, async workflows, testing and web API basics.
Sample tracks
Notebook preview
var active = users
.Where(user => user.Enabled)
.Select(user => user.Name);Lab: Build a small endpoint that returns filtered records from an in-memory list.
.NET Ecosystem Courses
Included with C#C# is the primary language of the .NET ecosystem. These tracks extend your C# knowledge into real-world .NET development across web, mobile, cloud, data and AI.
.NET Fundamentals
CLR, BCL, assemblies, namespaces, NuGet
.NET Web (ASP.NET Core)
Razor Pages, MVC, Minimal APIs, middleware
.NET MAUI
Cross-platform desktop & mobile apps
.NET Cloud
Azure integration, deployment, scalability
.NET Data (EF Core)
Entity Framework, migrations, LINQ to SQL
.NET AI
ML.NET, Semantic Kernel, AI integrations
.NET Unity
Game scripting with C# in Unity engine
Kotlin
5 tracksKotlin language, Android and backend practice covering null safety, coroutines, APIs and architecture.
Sample tracks
Notebook preview
data class Course(val title: String)
val title = course?.title ?: "Untitled"Lab: Create a typed network result with loading, success and failure states.
Swift
11 tracksSwift lessons for constants, optionals, collections, protocols, errors, concurrency and app-minded projects.
Sample tracks
Notebook preview
func greet(_ name: String?) -> String {
"Hello, \(name ?? "friend")"
}Lab: Model a settings screen state with optionals, structs and validation.
SQL
7 tracksSQL lessons for querying, joins, aggregates, schema design, transactions and reporting workflows.
Sample tracks
Notebook preview
SELECT name, COUNT(*) AS orders
FROM customers
JOIN orders USING (customer_id)
GROUP BY name;Lab: Design a reporting query that joins customers, orders and totals by month.
MySQL
7 tracksMySQL lessons for relational querying, schema design, indexes, transactions and stored procedures.
Sample tracks
Notebook preview
CREATE INDEX idx_lessons_course
ON lessons(course_id);
SELECT * FROM lessons WHERE course_id = 7;Lab: Create tables for courses and lessons, then add an index-backed lookup.
PostgreSQL
6 tracksPostgreSQL lessons for joins, indexes, window functions, JSON fields and analytical reporting.
Sample tracks
Notebook preview
SELECT title,
rank() OVER (ORDER BY completed_at) AS position
FROM lessons;Lab: Rank course progress with a window function and filter JSON metadata.
OpenGL
3 tracksNotebook-style lessons that turn core programming ideas into short explanations, editable examples and focused practice.
Sample tracks
Notebook preview
read concept
edit example
run small labLab: Trace an example, change one input and explain the result.
SDL2
3 tracksNotebook-style lessons that turn core programming ideas into short explanations, editable examples and focused practice.
Sample tracks
Notebook preview
read concept
edit example
run small labLab: Trace an example, change one input and explain the result.
SFML
3 tracksNotebook-style lessons that turn core programming ideas into short explanations, editable examples and focused practice.
Sample tracks
Notebook preview
read concept
edit example
run small labLab: Trace an example, change one input and explain the result.
Gazebo
4 tracksNotebook-style lessons that turn core programming ideas into short explanations, editable examples and focused practice.
Sample tracks
Notebook preview
read concept
edit example
run small labLab: Trace an example, change one input and explain the result.
ROS 2
1 tracksNotebook-style lessons that turn core programming ideas into short explanations, editable examples and focused practice.
Sample tracks
Notebook preview
read concept
edit example
run small labLab: Trace an example, change one input and explain the result.
C++ STL
3 tracksNotebook-style lessons that turn core programming ideas into short explanations, editable examples and focused practice.
Sample tracks
Notebook preview
read concept
edit example
run small labLab: Trace an example, change one input and explain the result.
JS Animation
5 tracksNotebook-style lessons that turn core programming ideas into short explanations, editable examples and focused practice.
Sample tracks
Notebook preview
read concept
edit example
run small labLab: Trace an example, change one input and explain the result.
JS Data Viz
10 tracksNotebook-style lessons that turn core programming ideas into short explanations, editable examples and focused practice.
Sample tracks
Notebook preview
read concept
edit example
run small labLab: Trace an example, change one input and explain the result.
JS ML
3 tracksNotebook-style lessons that turn core programming ideas into short explanations, editable examples and focused practice.
Sample tracks
Notebook preview
read concept
edit example
run small labLab: Trace an example, change one input and explain the result.
JS Networking
5 tracksNotebook-style lessons that turn core programming ideas into short explanations, editable examples and focused practice.
Sample tracks
Notebook preview
read concept
edit example
run small labLab: Trace an example, change one input and explain the result.
JS Testing
5 tracksNotebook-style lessons that turn core programming ideas into short explanations, editable examples and focused practice.
Sample tracks
Notebook preview
read concept
edit example
run small labLab: Trace an example, change one input and explain the result.
UI Frameworks
10 tracksNotebook-style lessons that turn core programming ideas into short explanations, editable examples and focused practice.
Sample tracks
Notebook preview
read concept
edit example
run small labLab: Trace an example, change one input and explain the result.
JS Utilities
9 tracksNotebook-style lessons that turn core programming ideas into short explanations, editable examples and focused practice.
Sample tracks
Notebook preview
read concept
edit example
run small labLab: Trace an example, change one input and explain the result.
JS Widgets
5 tracksNotebook-style lessons that turn core programming ideas into short explanations, editable examples and focused practice.
Sample tracks
Notebook preview
read concept
edit example
run small labLab: Trace an example, change one input and explain the result.