BaseCodeByte

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.

Py

Python

11 tracks

Python fundamentals, automation, APIs, data structures, file handling and real project workflows.

Notebook preview

Variables and data types
Control flow
Functions and modules
Files and automation
python
def greet(name):
    return f"Hello, {name}"

print(greet("Ada"))

Lab: Build a file cleanup script with functions, loops and a dry-run mode.

JS

JavaScript

7 tracks

Browser-focused JavaScript covering DOM events, async workflows, APIs and interactive UI projects.

Notebook preview

Variables and functions
Objects and arrays
DOM manipulation
Async JavaScript
javascript
button.addEventListener("click", () => {
  count += 1;
  label.textContent = count;
});

Lab: Build a task filter with events, arrays and a small render function.

TS

TypeScript

11 tracks

TypeScript lessons for typing data models, UI state, API payloads and reusable application functions.

Notebook preview

Types and interfaces
Generics
Classes
API typing
typescript
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.

Rs

Rust

9 tracks

Rust fundamentals through ownership, borrowing, enums, pattern matching and systems programming.

Notebook preview

Ownership
Borrowing
Traits
Error handling
rust
fn label(name: &str) -> String {
    format!("user: {name}")
}

Lab: Parse a list of records with Result, enums and borrowed string slices.

Go

Go

11 tracks

Go lessons focused on simple syntax, packages, interfaces, concurrency and HTTP service patterns.

Notebook preview

Functions
Interfaces
Goroutines
HTTP services
go
func greet(name string) string {
    return "Hello, " + name
}

Lab: Create a tiny HTTP handler and test its response body.

Ja

Java

11 tracks

Java fundamentals from classes and methods through collections, exceptions, streams and backend foundations.

Notebook preview

Classes and methods
Collections
Exceptions
Streams
java
record User(String name) {}

var names = users.stream()
    .map(User::name)
    .toList();

Lab: Model a grade book with classes, collections and validation errors.

C++

C++

1 tracks

Interactive C++ notebook with live code execution, memory, pointers, STL and project exercises.

Notebook preview

Pointers
Classes
STL
Algorithms
cpp
#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

C

10 tracks

C fundamentals from variables and functions through pointers, memory, files, build tools and systems basics.

Notebook preview

Memory management
Pointers
Structs
Build tools
c
#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#

C#

1 tracks

C# and .NET lessons for classes, collections, LINQ, async workflows, testing and web API basics.

Notebook preview

Classes
Collections
LINQ
Async APIs
csharp
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.

Kt

Kotlin

5 tracks

Kotlin language, Android and backend practice covering null safety, coroutines, APIs and architecture.

Notebook preview

Null safety
Data classes
Coroutines
API clients
kotlin
data class Course(val title: String)

val title = course?.title ?: "Untitled"

Lab: Create a typed network result with loading, success and failure states.

Sw

Swift

11 tracks

Swift lessons for constants, optionals, collections, protocols, errors, concurrency and app-minded projects.

Sample tracks

Notebook preview

Optionals
Functions
Protocols
Concurrency
swift
func greet(_ name: String?) -> String {
    "Hello, \(name ?? "friend")"
}

Lab: Model a settings screen state with optionals, structs and validation.

SQL

SQL

7 tracks

SQL lessons for querying, joins, aggregates, schema design, transactions and reporting workflows.

Sample tracks

Notebook preview

SELECT queries
Joins
Aggregates
Transactions
sql
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

MySQL

7 tracks

MySQL lessons for relational querying, schema design, indexes, transactions and stored procedures.

Sample tracks

Notebook preview

Data types
Joins
Indexes
Stored procedures
sql
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.

PgSQL

PostgreSQL

6 tracks

PostgreSQL lessons for joins, indexes, window functions, JSON fields and analytical reporting.

Sample tracks

Notebook preview

Window functions
JSON data
Indexes
Full-text search
sql
SELECT title,
       rank() OVER (ORDER BY completed_at) AS position
FROM lessons;

Lab: Rank course progress with a window function and filter JSON metadata.

GL

OpenGL

3 tracks

Notebook-style lessons that turn core programming ideas into short explanations, editable examples and focused practice.

Sample tracks

Notebook preview

Core syntax
Control flow
Functions
Project practice
text
read concept
edit example
run small lab

Lab: Trace an example, change one input and explain the result.

SDL

SDL2

3 tracks

Notebook-style lessons that turn core programming ideas into short explanations, editable examples and focused practice.

Sample tracks

Notebook preview

Core syntax
Control flow
Functions
Project practice
text
read concept
edit example
run small lab

Lab: Trace an example, change one input and explain the result.

SFML

SFML

3 tracks

Notebook-style lessons that turn core programming ideas into short explanations, editable examples and focused practice.

Sample tracks

Notebook preview

Core syntax
Control flow
Functions
Project practice
text
read concept
edit example
run small lab

Lab: Trace an example, change one input and explain the result.

GZ

Gazebo

4 tracks

Notebook-style lessons that turn core programming ideas into short explanations, editable examples and focused practice.

Sample tracks

Notebook preview

Core syntax
Control flow
Functions
Project practice
text
read concept
edit example
run small lab

Lab: Trace an example, change one input and explain the result.

ROS

ROS 2

1 tracks

Notebook-style lessons that turn core programming ideas into short explanations, editable examples and focused practice.

Sample tracks

Notebook preview

Core syntax
Control flow
Functions
Project practice
text
read concept
edit example
run small lab

Lab: Trace an example, change one input and explain the result.

STL

C++ STL

3 tracks

Notebook-style lessons that turn core programming ideas into short explanations, editable examples and focused practice.

Sample tracks

Notebook preview

Core syntax
Control flow
Functions
Project practice
text
read concept
edit example
run small lab

Lab: Trace an example, change one input and explain the result.

Anim

JS Animation

5 tracks

Notebook-style lessons that turn core programming ideas into short explanations, editable examples and focused practice.

Sample tracks

Notebook preview

Core syntax
Control flow
Functions
Project practice
text
read concept
edit example
run small lab

Lab: Trace an example, change one input and explain the result.

Viz

JS Data Viz

10 tracks

Notebook-style lessons that turn core programming ideas into short explanations, editable examples and focused practice.

Sample tracks

Notebook preview

Core syntax
Control flow
Functions
Project practice
text
read concept
edit example
run small lab

Lab: Trace an example, change one input and explain the result.

ML.js

JS ML

3 tracks

Notebook-style lessons that turn core programming ideas into short explanations, editable examples and focused practice.

Sample tracks

Notebook preview

Core syntax
Control flow
Functions
Project practice
text
read concept
edit example
run small lab

Lab: Trace an example, change one input and explain the result.

Net

JS Networking

5 tracks

Notebook-style lessons that turn core programming ideas into short explanations, editable examples and focused practice.

Sample tracks

Notebook preview

Core syntax
Control flow
Functions
Project practice
text
read concept
edit example
run small lab

Lab: Trace an example, change one input and explain the result.

Test

JS Testing

5 tracks

Notebook-style lessons that turn core programming ideas into short explanations, editable examples and focused practice.

Sample tracks

Notebook preview

Core syntax
Control flow
Functions
Project practice
text
read concept
edit example
run small lab

Lab: Trace an example, change one input and explain the result.

UI

UI Frameworks

10 tracks

Notebook-style lessons that turn core programming ideas into short explanations, editable examples and focused practice.

Sample tracks

Notebook preview

Core syntax
Control flow
Functions
Project practice
text
read concept
edit example
run small lab

Lab: Trace an example, change one input and explain the result.

Util

JS Utilities

9 tracks

Notebook-style lessons that turn core programming ideas into short explanations, editable examples and focused practice.

Sample tracks

Notebook preview

Core syntax
Control flow
Functions
Project practice
text
read concept
edit example
run small lab

Lab: Trace an example, change one input and explain the result.

Wdgt

JS Widgets

5 tracks

Notebook-style lessons that turn core programming ideas into short explanations, editable examples and focused practice.

Sample tracks

Notebook preview

Core syntax
Control flow
Functions
Project practice
text
read concept
edit example
run small lab

Lab: Trace an example, change one input and explain the result.