Skip to main content
CodeSpeedTest
Languages
Start TypingJump into a test — pick any languageAdaptive TrainingUnlock chars as you master themPractice DrillsFocused sessions targeting weak spotsDaily ChallengesNew coding challenges every dayRace ModeCompete against others in real timeAI OpponentRace against an AI at your WPM levelTournamentsLive coding speed tournamentsArcade GamesZType, Overkill Survival, Glyphica & moreGamificationXP, coins, badges & quests
LeaderboardGlobal rankings for every languageCertificatesEarn verifiable Bronze / Silver / Gold certsActivityDaily streaks & historical analyticsProfileYour stats, badges & achievements
Browse Languages500+ languages with real code examplesBlogTips, guides & deep divesFree ToolsWPM calculator, typing speed report & moreFAQCommon questions answeredGetting StartedNew to CodeSpeedTest?AboutOur story & missionSupportGet help — Pro users get priorityContactGet in touch with the team
Pricing
  1. Home
  2. /
  3. Learn
  4. /
  5. C++

Learn C++ - 45 Code Examples & CST Typing Practice Test

General-purpose, multi-paradigm programming language extending C with object-oriented features, strong type safety, and zero-cost abstractions for building high-performance applications.

View all 45 C++ code examples →
C++ Class ExampleC++ Inheritance ExampleC++ Lambda ExampleC++ Smart Pointer ExampleC++ Template Function ExampleC++ Exception HandlingC++ STL Map ExampleC++ Constexpr ExampleC++ Move Semantics ExampleC++ Enum Class ExampleC++ STL Vector ExampleC++ STL Set ExampleC++ Lambda for STL ExampleC++ Smart Pointer Shared ExampleC++ Move Constructor ExampleC++ Vector Sorting ExampleC++ Range-Based For LoopC++ Struct InitializationC++ Optional ExampleC++ File Reading ExampleC++ Set ExampleC++ Pair ExampleC++ Mutex Lock ExampleC++ Thread ExampleC++ Vector Push ExampleC++ Map Find ExampleC++ Queue ExampleC++ Stack ExampleC++ Variant ExampleC++ Tuple Example+15 more examples

Learn CPP with Real Code Examples

Updated Nov 27, 2025

Explain

C++ is a compiled, high-performance language supporting procedural, object-oriented, and generic programming.

It offers fine control over memory with RAII and manual management.

Widely used for performance-critical systems, games, engines, and large-scale applications.

Core Features

Classes, objects, inheritance, polymorphism

Templates and metaprogramming

Smart pointers for memory safety

Namespaces and modules

Operator overloading

Basic Concepts Overview

Variables, types, and references

Classes and objects

Inheritance and polymorphism

Templates

STL containers and iterators

Smart pointers

Project Structure

src/ for implementation

include/ for headers

cmake/ for build config

build/ for compiled outputs

tests/ for unit tests

Building Workflow

Write .cpp and .hpp/.h files

Compile using g++/clang++

Use CMake for multi-file projects

Link and debug using gdb/lldb

Run unit tests

Difficulty Use Cases

Beginner: Classes, functions, loops

Intermediate: OOP, templates, STL

Advanced: Smart pointers, concurrency

Expert: Game engines, metaprogramming

Comparisons

Higher-level than C

Faster and lower-level than Java

More flexible but complex vs Rust

More performant than Python

Versioning Timeline

C++98 - First ISO standard

C++03 - Bug fixes

C++11 - Major modernization

C++14 - Improvements

C++17 - More features

C++20 - Concepts, ranges

C++23 - Latest update

Glossary

RAII: Resource Acquisition Is Initialization

Template: Generic programming construct

Namespace: Logical code grouping

Virtual Function: Enables runtime polymorphism

Installation Setup

Install GCC, Clang, or MSVC

Set up build systems (CMake/Ninja)

Install an IDE like VSCode or CLion

Configure debugging tools

Environment Setup

Install compiler toolchain

Install CMake

Use VSCode/CLion

Add C++ extensions

Config Files

CMakeLists.txt

.hpp headers

module interface units

Cli Commands

g++ main.cpp -o app

clang++ -std=c++20 file.cpp

cmake --build build/

gdb ./app

Internationalization

Supported via ICU, Qt, Boost.Locale

Accessibility

Library-dependent

Qt provides accessibility features

Ui Styling

Not native (requires libraries)

Use Qt, ImGui, wxWidgets

State Management

Managed through classes

RAII for memory

Automated cleanup via destructors

State encapsulated inside objects

Data Management

STL containers

Manual new/delete (rare)

Smart pointers

File handling via fstream

Architecture

Compiled using Clang, GCC, MSVC

Works with static or dynamic linking

Uses object files combined via linker

Supports templates resolved at compile time

Rendering Model

Compiled to machine code

Templates resolved at compile time

Uses stack, heap, static storage

RAII handles lifecycle

Architectural Patterns

OOP with classes

Template metaprogramming

Component-based architecture

Modular programming via headers

Real World Architectures

Unreal Engine architecture

High-frequency trading engines

Automotive ECU systems

Design Principles

Performance without sacrificing abstraction

Zero-cost abstractions

Compatibility with C

Deterministic memory cleanup

Scalability Guide

Use modular architecture

Avoid unnecessary polymorphism

Prefer templates for generic code

Use profiling tools

Migration Guide

Upgrade raw pointers to smart pointers

Use modern C++ STL instead of manual arrays

Refactor legacy macros

Adopt move semantics

Performance Notes

Prefer move semantics

Avoid unnecessary copying

Use reserve() for containers

Inline small functions

Security Notes

Prefer smart pointers over raw pointers

Avoid unsafe C-style casts

Check out-of-bounds access in containers

Validate input thoroughly

Monitoring Analytics

Profile with Valgrind

Trace performance with perf

Use address sanitizers

Code Quality

Use clang-tidy

Apply SOLID principles

Use descriptive naming

Follow C++ Core Guidelines

Practical Examples

Implement a vector using dynamic memory

Build a multithreaded server using std::thread

Create a class hierarchy for shapes

Develop a mini game engine component

Troubleshooting

Fix segmentation faults using gdb

Resolve linker errors and multiple definitions

Debug template error messages

Detect memory issues with Valgrind

Testing Guide

Use frameworks like Catch2, GoogleTest

Mock dependencies with FakeIt

Test template code separately

Test memory-safety using Valgrind

Deployment Options

Static or shared libraries

Cross-compiling for embedded systems

Packaging using CPack

Deploying executables on Windows/Mac/Linux

Tools Ecosystem

Compilers: GCC, Clang, MSVC

Build tools: CMake, Make, Ninja

Debuggers: gdb, lldb

Profilers: perf, Valgrind, VTune

Integrations

Interfacing with C libraries

Using OpenGL/Vulkan for graphics

Bindings for Python/Rust

Integration with Unreal Engine

Productivity Tips

Use auto keyword wisely

Use CMake presets

Master STL algorithms

Rely on smart pointers

Challenges

Build your own vector container

Implement a simple ECS system

Write a small physics simulation

Build a template-based library

Learning Path

Syntax and classes

STL containers and algorithms

OOP and inheritance

Templates and generics

Smart pointers and RAII

Concurrency and systems

Skill Improvement Plan

Week 1: OOP, classes

Week 2: STL + templates

Week 3: Smart pointers, memory

Week 4: Build a full application

Interview Questions

Difference between pointer and reference?

What is RAII?

Explain deep copy vs shallow copy.

How do templates work?

What is virtual inheritance?

Cheat Sheet

STL containers overview

Rule of 3/5/0

Smart pointer types

Move semantics cheat codes

Books

Effective Modern C++

C++ Primer

The C++ Programming Language (Stroustrup)

Tutorials

cplusplus.com basics

freeCodeCamp C++ tutorials

TheCherno C++ playlist

Official Docs

cppreference (unofficial but standard)

ISO C++ Committee docs

LLVM and GCC manuals

Community Links

StackOverflow C++ tag

CppLang Reddit

ISO C++ Discord

Community Support

Huge global community since 1980s

Active ISO committee

Strong open-source ecosystem

Monetization

Develop game engine tools

Create simulations

Build performance-critical APIs

Future Roadmap

More safety via contracts

Improved modules support

Better concurrency tools

When Not To Use

When rapid development is needed

For small scripts

For simple web apps

When memory safety must be guaranteed automatically

Final Summary

C++ is powerful, fast, and widely used.

Enables building complex high-performance systems.

Supports multiple paradigms with zero-cost abstractions.

Mastering C++ opens doors to game dev, engines, trading, and systems.

Faq

Why is C++ still relevant?

C++ remains essential for systems requiring high performance, real-time control, and zero-cost abstractions. It powers AAA games, operating systems, browsers, and high-frequency trading systems.

Is C++ good for beginners?

It can be challenging but teaches strong fundamentals in OOP, memory, and systems programming. Good for serious learners.

How do I avoid memory leaks in C++?

Use smart pointers (unique_ptr/shared_ptr), follow RAII, minimize raw pointers, and use tools like Valgrind.

How is C++ different from C?

C++ adds OOP, templates, exceptions, RAII, and STL while maintaining compatibility with C but offering higher abstractions.

Code Sample Descriptions

1

C++ Class Example

#include <iostream>
#include <vector>
#include <string>

class Person {
private:
    std::string name;
    int age;

public:
    Person(const std::string& name, int age)
        : name(name), age(age) {}

    void introduce() const {
        std::cout << "Hi, I'm " << name << " and I'm " << age << " years old." << std::endl;
    }

    int getAge() const { return age; }
};

int main() {
    std::vector<Person> people = { Person("Alice", 25), Person("Bob", 30) };
    for (const auto& person : people) {
        person.introduce();
    }
    return 0;
}

Demonstrates key C++ features including classes, vectors, and modern C++ syntax.

Let’s Try →
2

C++ Inheritance Example

#include <iostream>
class Animal {
public:
    void speak() { std::cout << "Animal sound" << std::endl; }
};
class Dog : public Animal {
public:
    void speak() { std::cout << "Woof!" << std::endl; }
};
int main() {
    Dog dog;
    dog.speak();
    return 0;
}

Shows basic inheritance with a base class and a derived class.

Let’s Try →
3

C++ Lambda Example

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<int> numbers = {1, 2, 3, 4, 5};
    std::for_each(numbers.begin(), numbers.end(), [](int n){ std::cout << n*n << ' '; });
    return 0;
}

Demonstrates using a lambda function to transform a vector.

Let’s Try →
4

C++ Smart Pointer Example

#include <iostream>
#include <memory>

class Resource {
public:
    Resource() { std::cout << "Resource acquired\n"; }
    ~Resource() { std::cout << "Resource destroyed\n"; }
};

int main() {
    auto res = std::make_unique<Resource>();
    return 0;
}

Uses std::unique_ptr to manage dynamic memory safely.

Let’s Try →
5

C++ Template Function Example

#include <iostream>

template<typename T>
T maxValue(T a, T b) {
    return (a > b) ? a : b;
}

int main() {
    std::cout << maxValue(10, 20) << std::endl;
    std::cout << maxValue(3.5, 2.1) << std::endl;
    return 0;
}

Demonstrates a template function to find the maximum of two values.

Let’s Try →
6

C++ Exception Handling

#include <iostream>
#include <stdexcept>
int main() {
    try {
        throw std::runtime_error("Something went wrong");
    } catch (const std::exception& e) {
        std::cout << "Caught exception: " << e.what() << std::endl;
    }
    return 0;
}

Shows basic try-catch exception handling in C++.

Let’s Try →
7

C++ STL Map Example

#include <iostream>
#include <map>
#include <string>

int main() {
    std::map<std::string, int> ages = { {"Alice", 25}, {"Bob", 30} };
    for (const auto& [name, age] : ages) {
        std::cout << name << " is " << age << " years old\n";
    }
    return 0;
}

Demonstrates using std::map to store key-value pairs.

Let’s Try →
8

C++ Constexpr Example

#include <iostream>
constexpr int square(int x) { return x*x; }
int main() {
    std::cout << square(5) << std::endl;
    return 0;
}

Uses constexpr for compile-time computation.

Let’s Try →
9

C++ Move Semantics Example

#include <iostream>
#include <vector>
class Buffer {
public:
    std::vector<int> data;
    Buffer(std::vector<int> d) : data(std::move(d)) {}
};
int main() {
    std::vector<int> v = {1,2,3};
    Buffer buf(std::move(v));
    std::cout << "Buffer size: " << buf.data.size() << std::endl;
    return 0;
}

Demonstrates move constructor to optimize resource management.

Let’s Try →
10

C++ Enum Class Example

#include <iostream>
enum class Color { Red, Green, Blue };
int main() {
    Color c = Color::Green;
    if (c == Color::Green) {
        std::cout << "Color is green" << std::endl;
    }
    return 0;
}

Uses enum class for type-safe enumerations.

Let’s Try →
11

C++ STL Vector Example

#include <iostream>
#include <vector>

int main() {
    std::vector<int> numbers = {1, 2, 3, 4, 5};
    for (const auto& n : numbers) {
        std::cout << n << ' ';
    }
    return 0;
}

Demonstrates vector initialization and iteration.

Let’s Try →
12

C++ STL Set Example

#include <iostream>
#include <set>

int main() {
    std::set<int> s = {1, 2, 3};
    s.insert(4);
    for (const auto& n : s) {
        std::cout << n << ' ';
    }
    return 0;
}

Demonstrates set insertion and iteration.

Let’s Try →
13

C++ Lambda for STL Example

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<int> v = {1, 2, 3, 4, 5};
    std::for_each(v.begin(), v.end(), [](int& n){ n *= 2; });
    for (const auto& n : v) {
        std::cout << n << ' ';
    }
    return 0;
}

Uses lambda to modify elements in a vector.

Let’s Try →
14

C++ Smart Pointer Shared Example

#include <iostream>
#include <memory>

int main() {
    auto sp1 = std::make_shared<int>(10);
    auto sp2 = sp1;
    std::cout << *sp1 << ',' << *sp2 << std::endl;
    return 0;
}

Demonstrates shared_ptr usage.

Let’s Try →
15

C++ Move Constructor Example

#include <iostream>
#include <vector>

class Buffer {
public:
    std::vector<int> data;
    Buffer(std::vector<int> d) : data(std::move(d)) {}
};

int main() {
    std::vector<int> v = {1, 2, 3};
    Buffer buf(std::move(v));
    std::cout << "Buffer size: " << buf.data.size() << std::endl;
    return 0;
}

Shows move constructor usage for efficient object transfer.

Let’s Try →
16

C++ Vector Sorting Example

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<int> nums = {5, 2, 9, 1, 3};
    std::sort(nums.begin(), nums.end(), [](int a, int b) { return a < b; });
    for (int n : nums) std::cout << n << ' ';
    return 0;
}

Demonstrates sorting a vector using std::sort with a custom comparator.

Let’s Try →
17

C++ Range-Based For Loop

#include <iostream>
#include <vector>

int main() {
    std::vector<std::string> words = {"Hello", "World"};
    for (const auto& w : words) {
        std::cout << w << std::endl;
    }
    return 0;
}

Shows how range-based for loops provide cleaner iteration.

Let’s Try →
18

C++ Struct Initialization

#include <iostream>
#include <string>

struct User {
    std::string name;
    int age;
};

int main() {
    User u{"Alice", 22};
    std::cout << u.name << " - " << u.age << std::endl;
    return 0;
}

Shows modern uniform initialization for structs.

Let’s Try →
19

C++ Optional Example

#include <iostream>
#include <optional>

std::optional<int> divide(int a, int b) {
    if (b == 0) return std::nullopt;
    return a / b;
}

int main() {
    auto result = divide(10, 2);
    if (result) std::cout << *result;
    return 0;
}

Demonstrates using std::optional to return optional values.

Let’s Try →
20

C++ File Reading Example

#include <iostream>
#include <fstream>
#include <string>

int main() {
    std::ifstream file("test.txt");
    std::string line;
    while (std::getline(file, line)) {
        std::cout << line << std::endl;
    }
    return 0;
}

Reads lines from a file using std::ifstream.

Let’s Try →
21

C++ Set Example

#include <iostream>
#include <set>

int main() {
    std::set<int> s = {3, 1, 4, 1, 5};
    for (int n : s) std::cout << n << ' ';
    return 0;
}

Uses std::set to hold unique sorted values.

Let’s Try →
22

C++ Pair Example

#include <iostream>
#include <utility>

int main() {
    std::pair<std::string, int> p{"Age", 30};
    std::cout << p.first << ": " << p.second;
    return 0;
}

Shows how to use std::pair.

Let’s Try →
23

C++ Mutex Lock Example

#include <iostream>
#include <thread>
#include <mutex>

std::mutex mtx;
int counter = 0;

void increment() {
    std::lock_guard<std::mutex> lock(mtx);
    counter++;
}

int main() {
    std::thread t1(increment);
    std::thread t2(increment);
    t1.join();
    t2.join();
    std::cout << counter;
    return 0;
}

Uses std::mutex and std::lock_guard for thread safety.

Let’s Try →
24

C++ Thread Example

#include <iostream>
#include <thread>

void run() {
    std::cout << "Thread running";
}

int main() {
    std::thread t(run);
    t.join();
    return 0;
}

Creates threads using std::thread.

Let’s Try →
25

C++ Vector Push Example

#include <iostream>
#include <vector>

int main() {
    std::vector<int> v;
    v.push_back(1);
    v.push_back(2);
    for (int n : v) std::cout << n;
    return 0;
}

Shows how to push elements into a vector.

Let’s Try →
26

C++ Map Find Example

#include <iostream>
#include <map>

int main() {
    std::map<int, std::string> m = {{1, "One"}, {2, "Two"}};
    auto it = m.find(2);
    if (it != m.end()) std::cout << it->second;
    return 0;
}

Demonstrates finding a key in std::map.

Let’s Try →
27

C++ Queue Example

#include <iostream>
#include <queue>

int main() {
    std::queue<int> q;
    q.push(10);
    q.push(20);
    std::cout << q.front();
    return 0;
}

Uses std::queue for FIFO operations.

Let’s Try →
28

C++ Stack Example

#include <iostream>
#include <stack>

int main() {
    std::stack<int> s;
    s.push(5);
    s.push(10);
    std::cout << s.top();
    return 0;
}

Uses std::stack for LIFO operations.

Let’s Try →
29

C++ Variant Example

#include <iostream>
#include <variant>

int main() {
    std::variant<int, std::string> v = "Hello";
    std::cout << std::get<std::string>(v);
    return 0;
}

Uses std::variant to hold multiple types.

Let’s Try →
30

C++ Tuple Example

#include <iostream>
#include <tuple>

int main() {
    auto t = std::make_tuple("Alice", 25, 3.8);
    std::cout << std::get<0>(t);
    return 0;
}

Uses std::tuple to bundle multiple values.

Let’s Try →
31

C++ Unique Lock Example

#include <iostream>
#include <mutex>
#include <thread>

std::mutex mtx;
int value = 0;

void add() {
    std::unique_lock<std::mutex> lock(mtx);
    value++;
}

int main() {
    std::thread t1(add);
    std::thread t2(add);
    t1.join();
    t2.join();
    std::cout << value;
    return 0;
}

Demonstrates std::unique_lock for flexible mutex handling.

Let’s Try →
32

C++ Condition Variable Example

#include <iostream>
#include <thread>
#include <mutex>
#include <condition_variable>

std::mutex mtx;
bool ready = false;
std::condition_variable cv;

void worker() {
    std::unique_lock<std::mutex> lock(mtx);
    cv.wait(lock, []{ return ready; });
    std::cout << "Worker running";
}

int main() {
    std::thread t(worker);
    {
        std::lock_guard<std::mutex> lock(mtx);
        ready = true;
    }
    cv.notify_one();
    t.join();
    return 0;
}

Uses std::condition_variable for thread synchronization.

Let’s Try →
33

C++ StringStream Example

#include <iostream>
#include <sstream>

int main() {
    std::stringstream ss;
    ss << 42;
    int num;
    ss >> num;
    std::cout << num;
    return 0;
}

Uses std::stringstream for converting values.

Let’s Try →
34

C++ Binary Search Example

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<int> v = {1, 2, 3, 4, 5};
    bool found = std::binary_search(v.begin(), v.end(), 3);
    std::cout << (found ? "Found" : "Not found");
    return 0;
}

Uses std::binary_search on a sorted vector.

Let’s Try →
35

C++ Accumulate Example

#include <iostream>
#include <vector>
#include <numeric>

int main() {
    std::vector<int> v = {1, 2, 3, 4};
    int sum = std::accumulate(v.begin(), v.end(), 0);
    std::cout << sum;
    return 0;
}

Uses std::accumulate to sum vector elements.

Let’s Try →
36

C++ Find_if Example

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<int> v = {10, 15, 20, 25};
    auto it = std::find_if(v.begin(), v.end(), [](int x) { return x > 18; });
    if (it != v.end()) std::cout << *it;
    return 0;
}

Demonstrates std::find_if to find matching elements.

Let’s Try →
37

C++ Reduce Example

#include <iostream>
#include <vector>
#include <numeric>

int main() {
    std::vector<int> v = {1, 2, 3, 4};
    int result = std::reduce(v.begin(), v.end());
    std::cout << result;
    return 0;
}

Uses std::reduce from C++17 for parallel-friendly accumulation.

Let’s Try →
38

C++ Algorithm Transform Example

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<int> v = {1, 2, 3};
    std::transform(v.begin(), v.end(), v.begin(), [](int x){ return x * 2; });
    for (int n : v) std::cout << n << ' ';
    return 0;
}

Uses std::transform to modify elements of a container.

Let’s Try →
39

C++ Array Example

#include <iostream>
#include <array>

int main() {
    std::array<int, 3> arr = {1, 2, 3};
    for (int x : arr) std::cout << x;
    return 0;
}

Shows simple usage of std::array.

Let’s Try →
40

C++ Deque Example

#include <iostream>
#include <deque>

int main() {
    std::deque<int> d;
    d.push_front(1);
    d.push_back(2);
    std::cout << d.front() << d.back();
    return 0;
}

Uses std::deque for double-ended operations.

Let’s Try →
41

C++ Priority Queue Example

#include <iostream>
#include <queue>

int main() {
    std::priority_queue<int> pq;
    pq.push(3);
    pq.push(1);
    pq.push(2);
    std::cout << pq.top();
    return 0;
}

Uses std::priority_queue as a max-heap.

Let’s Try →
42

C++ Bitset Example

#include <iostream>
#include <bitset>

int main() {
    std::bitset<8> b("10101010");
    std::cout << b;
    return 0;
}

Uses std::bitset for efficient bit manipulation.

Let’s Try →
43

C++ Chrono Timer Example

#include <iostream>
#include <chrono>

int main() {
    auto start = std::chrono::high_resolution_clock::now();
    for (int i = 0; i < 1000000; i++);
    auto end = std::chrono::high_resolution_clock::now();
    std::cout << std::chrono::duration_cast<std::chrono::microseconds>(end - start).count();
    return 0;
}

Uses std::chrono to measure execution time.

Let’s Try →
44

C++ Function Pointer Example

#include <iostream>

int add(int a, int b) { return a + b; }

int main() {
    int (*func)(int, int) = add;
    std::cout << func(2, 3);
    return 0;
}

Shows declaring and using function pointers.

Let’s Try →
45

C++ Recursion Example

#include <iostream>

int fact(int n) {
    if (n <= 1) return 1;
    return n * fact(n - 1);
}

int main() {
    std::cout << fact(5);
    return 0;
}

Shows a simple recursive factorial function.

Let’s Try →

Frequently Asked Questions about C++

What is C++?

General-purpose, multi-paradigm programming language extending C with object-oriented features, strong type safety, and zero-cost abstractions for building high-performance applications.

What are the primary use cases for C++?

Game development (Unreal Engine, custom engines). High-frequency trading systems. Desktop applications. Operating system components. 3D simulations and physics engines. Embedded and automotive software. Large-scale enterprise backends

What are the strengths of C++?

High performance close to C. Massive ecosystem and libraries. Supports multiple paradigms. Deterministic memory cleanup with RAII. Industry-standard for games and engines

What are the limitations of C++?

Complex syntax and learning curve. Long compile times. Undefined behavior pitfalls. Requires careful memory management

How can I practice C++ typing speed?

CodeSpeedTest offers 45+ real C++ code examples for typing practice. You can measure your WPM, track accuracy, and improve your coding speed with guided exercises.

Learn Other Programming Languages

CReactPythonRustTypeScriptKotlinPHPJavaC#RubyMqlCqlN1qlCypherGremlinPartiqlHaskellElixirFsharpJuliaView all languages →
CodeSpeedTest

Improve your coding speed, code accuracy, and programming syntax WPM with practice sessions across 500+ programming languages.

Quick Links

HomeAboutFeaturesGetting StartedLanguages

Legal & Support

Pro ⚡ PricingContactPrivacy PolicyTerms of Service

Connect

CodeSpeedTest on GitHubCodeSpeedTest on TwitterEmail CodeSpeedTest

© 2026 CodeSpeedTest. All rights reserved.