DEV Community

Yilong Wu
Yilong Wu

Posted on

What Can You Actually Build With Just C++? — A Student's Perspective

Hi everyone! I'm AlanWu, a junior high school student from China. When I tell classmates I'm learning C++, the most common reaction is: "Oh, that black terminal thing?" They think C++ is just for boring console programs and algorithm contests.

But C++ is everywhere. Here's a tour of what you can actually build — from the obvious to the surprising — and how you can start, all with just C++.

My GitHub: https://github.com/Cn-Alanwu


1. Command-Line Tools (The Obvious Starting Point)

Yes, terminal programs. But not boring ones. Here's what I've built and what you can build:

Ping tool — I actually built one. It constructs raw ICMP packets, sends them to a target, and measures round-trip time. It taught me networking fundamentals, socket programming, and binary protocol parsing. https://github.com/Cn-Alanwu/Ping

Mini file compression — Using Huffman coding or LZW. You read bytes from a file, build a frequency table, encode, and write out a smaller file. 200 lines of C++ and you've built something that makes files smaller.

A simple database — Not MySQL-level, but a program that stores key-value pairs in a file, with binary search for fast lookup. You learn about file I/O, binary formats, and indexing.

A text-based game — A dungeon crawler, a roguelike, or even a trading sim. The control panel is text, but the game logic can be deep. No graphics library needed.

These are the "boring" ones, but they're not boring when you build them yourself. They teach you how computers actually work.


2. Desktop GUI Applications

Contrary to what many beginners think, C++ has GUI frameworks. You don't need Python or JavaScript for a window with buttons.

Qt — This is the big one. Qt is a cross-platform framework used by professional software like Autodesk Maya, VirtualBox, and Telegram Desktop. It has a visual designer where you drag and drop buttons, and you connect them to C++ code.

#include <QApplication>
#include <QLabel>

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);
    QLabel label("Hello from C++ GUI!");
    label.show();
    return app.exec();
}
Enter fullscreen mode Exit fullscreen mode

wxWidgets — Another cross-platform option, lighter than Qt. Good if you want something simpler.

FLTK — Extremely lightweight. For small utilities where you just need a few buttons and input fields.

imgui — Unlike the others, imgui is "immediate mode." You describe the UI in your game loop, and it renders directly. It's used heavily in game development tools and debug overlays.

Real example: the Unreal Engine editor interface? Built with C++ and a GUI framework derived from wxWidgets. The software you use to make games is itself made with C++.


3. Game Development (The Fun Part)

This is what got me interested in C++ in the first place. The vast majority of AAA games — Elden Ring, Cyberpunk 2077, Call of Duty — are built with C++. Why? Speed and control.

Where to start:

SFML — Simple and Fast Multimedia Library. Perfect for beginners. It handles windows, graphics, sound, and input. Here's a window with a circle:

#include <SFML/Graphics.hpp>

int main() {
    sf::RenderWindow window(sf::VideoMode(800, 600), "My Game");
    sf::CircleShape circle(50);
    circle.setFillColor(sf::Color::Green);

    while (window.isOpen()) {
        sf::Event event;
        while (window.pollEvent(event)) {
            if (event.type == sf::Event::Closed)
                window.close();
        }
        window.clear();
        window.draw(circle);
        window.display();
    }
    return 0;
}
Enter fullscreen mode Exit fullscreen mode

SDL2 — Older than SFML but still widely used. It's the foundation of Valve's Source 2 engine (CS2, Dota 2).

Raylib — A newer, simpler library that's become very popular with hobbyists. Great for learning game programming concepts without boilerplate.

Unreal Engine — Uses C++ as its primary language. If you want to make 3D games professionally, Unreal + C++ is the path.

Godot with GDExtension — Godot is often associated with its own scripting language (GDScript), but you can write performance-critical modules in C++ via GDExtension.


4. Operating Systems and System Software

This sounds intimidating, but it's where C++ truly shines. The Linux kernel is C (not C++), but a huge amount of system software around it is C++:

  • Windows itself — Large parts of the Windows operating system, including the Windows shell, are written in C++
  • macOS/iOS kernel (XNU) — Partly C++
  • File systems — NTFS-3G (open-source NTFS driver) is C++
  • Device drivers — Many hardware drivers on Windows are C++

For a student, writing a tiny kernel or an OS module is a common university project. It teaches you about memory management, interrupts, and process scheduling at the lowest level.


5. Embedded Systems and IoT

C++ is the dominant language for embedded devices. Not the tiny 8-bit microcontrollers (those are usually C), but anything with a real operating system:

  • Arduino (official libraries) — Arduino's core libraries are a mix of C and C++. When you write Serial.println("hello"), you're calling C++ methods.
  • ESP32 / ESP8266 — These Wi-Fi microcontrollers support C++ with the Arduino framework or ESP-IDF. You can build a smart home sensor in 100 lines of C++.
  • Raspberry Pi — Running Linux, so you can use full C++17 on a $35 computer. Robotics, home automation, DIY gadgets.
  • Automotive — The software in your car's ECU (Engine Control Unit) and infotainment system? Heavily C++.
  • Drones and flight controllers — ArduPilot (open-source autopilot) is C++.

If it has a battery, a processor, and needs to be fast and reliable, it's probably running C++ somewhere.


6. Web Browsers

This one surprised me. The browsers you use every day have their core engines written in C++:

  • Chrome (Blink rendering engine + V8 JavaScript engine) — Both C++
  • Firefox (Gecko rendering engine + SpiderMonkey JS engine) — Both C++
  • Safari (WebKit) — C++

When JavaScript runs in your browser, it's being compiled on-the-fly by a C++ engine. Every DOM manipulation you do in JS eventually calls C++ code that paints pixels on your screen.

As a student, you can compile Chromium from source — yes, it takes hours — and explore how a real-world, massive C++ project is structured.


7. Databases

Most of the databases that power the internet are C++:

  • MySQL — The most popular open-source relational database. Core in C/C++.
  • MongoDB — A NoSQL document database. Written in C++.
  • Redis — The in-memory data structure store. Mostly C, but with C++ components.
  • RocksDB — Facebook's embedded key-value store. Pure C++. Used inside MySQL, MongoDB, and many others.

For learning, you can build a tiny database in 300 lines of C++ — an append-only log with a B-tree index. You'll understand how SQLite or RocksDB works at a fundamental level.


8. Programming Languages and Compilers

This is meta: use C++ to build tools that process other programming languages.

  • LLVM/Clang — The compiler infrastructure that powers the C, C++, and Objective-C compilers in Xcode, Android NDK, and many others. Written entirely in C++.
  • V8 — Google's JavaScript engine (used in Chrome and Node.js). C++.
  • SWIFT compiler — Apple's Swift language compiler. C++.

As a learning project, writing a tiny interpreter in C++ — a calculator that parses 3 + 4 * 5 and outputs 23 — teaches lexing, parsing, and abstract syntax trees. Scale that up and you have the foundation of a compiler.


9. Audio and Video Processing

Real-time audio and video processing needs speed. That means C++.

  • FFmpeg — The universal media processing tool used by VLC, YouTube, and countless others. Over 1 million lines of C.
  • Audacity — The open-source audio editor. C++.
  • OBS Studio — The streaming software used by millions of creators. C++ with Qt for the UI.
  • DAWs (Digital Audio Workstations) — Ableton Live, Logic Pro, FL Studio — their audio engines are C++.

You can start small: write a program that reads a WAV file, applies a reverb effect, and writes it back. Audio programming has a steep learning curve, but it's incredibly satisfying.


10. High-Frequency Trading and Finance

Not something I've done, but it's worth mentioning because it shows where C++ is irreplaceable. Trading firms use C++ because every microsecond matters:

  • Stock exchanges write their matching engines in C++.
  • Trading algorithms that process market data and make decisions in nanoseconds.
  • Bloomberg Terminal — the backend is heavily C++.

A college friend of mine interned at a trading firm. His interview question? Implement a lock-free queue in C++. That's the level of performance they're optimizing for.


What Should You Build First? (My Opinion)

As a student, here's my recommended path from "I know C++ syntax" to "I can build real things":

  1. A command-line tool (like my Ping) — Teaches you that code can interact with the outside world.
  2. A simple 2D game with Raylib or SFML — Teaches event loops, rendering, and game design.
  3. A desktop utility with Qt — Say, a Markdown editor or a password generator GUI.
  4. A small database engine — Teaches persistence, indexing, and data structures in practice.
  5. Something embedded — An Arduino project that reads a sensor and lights an LED. C++ controlling physical things is an amazing feeling.

Each step builds on the last. And you'll never again hear "C++ is just terminal programs."


C++ isn't just a language. It's a passport to every corner of computing — from the pixels on your screen to the engines in your car. The only limit is how much you're willing to learn.

GitHub: https://github.com/Cn-Alanwu

Tags: #cpp #beginners #programming #gamedev #embeddedsystems #career #tutorial

Top comments (0)