Skip to content

Prerequisites

Before diving into this guide, ensure you have the necessary background knowledge and tools.


Knowledge Prerequisites

Required

TopicLevelWhy It Matters
C++ BasicsIntermediateClasses, templates, STL containers
Pointers & MemoryIntermediateUnderstanding memory layout is crucial
Command LineBasicBuilding and running examples
Computer ArchitectureBasicCPU, memory hierarchy, caches

Helpful But Not Required

TopicBenefit
CMakeUnderstanding the build system
Assembly basicsReading compiler output
Parallel programmingConcurrency section

System Requirements

Minimum Requirements

  • OS: Linux (Ubuntu 20.04+, Fedora 35+), macOS 12+, or Windows 10/11
  • CPU: x86-64 with AVX support (Intel Haswell/AMD Zen or newer)
  • RAM: 4 GB minimum, 8 GB recommended
  • Disk: 2 GB free space
  • OS: Linux (for full profiling tool support)
  • CPU: Intel with AVX-512 or AMD with AVX2
  • RAM: 16 GB or more
  • Compiler: GCC 12+ or Clang 15+

Checking Your CPU Features

bash
# Linux - check CPU features
grep flags /proc/cpuinfo | head -1

# Look for: sse4_2, avx, avx2, avx512f

Tool Requirements

Essential Tools

ToolMinimum VersionPurpose
CMake3.20Build system
C++ CompilerGCC 11+ / Clang 14+ / MSVC 2022+Compile code
Git2.30Version control

Optional Tools (for profiling)

ToolPurpose
perfLinux system profiler
FlameGraphPerformance visualization
ValgrindMemory and cache analysis
Intel VTuneAdvanced profiling (Intel CPUs)

IDEs and Editors

  • CLion - Full CMake integration, excellent C++ support
  • VS Code with C++ extension - Lightweight, extensible
  • Visual Studio 2022 - Best for Windows development

Configuration Files Included

The project includes configuration for:

  • .vscode/ - VS Code settings and tasks
  • .clang-format - Code formatting rules
  • .editorconfig - Editor consistency

Pre-Study Checklist

Before starting the learning path:

  • [ ] You can write and compile a basic C++ program
  • [ ] You understand std::vector, std::map, and basic STL
  • [ ] You know what pointers and references are
  • [ ] You can use the command line (cd, ls/dir, basic commands)
  • [ ] You have a C++20-capable compiler installed
  • [ ] You can clone a Git repository

Next Step

Ready? Head to the Quick Start or dive into the Learning Path.

Not ready? Brush up on:

Released under the MIT License.