Skip to main content

What is competitive programming?

Competitive programming (CP) is a mind sport where participants solve well-defined algorithmic problems within time and resource constraints. It’s the foundation of the ICPC (International Collegiate Programming Contest) — the oldest and most prestigious programming competition in the world.

Why competitive programming?

Sharpen your thinking

Develop strong problem-solving and analytical skills that translate to real-world software engineering.

Ace technical interviews

Most tech companies (Google, Meta, Amazon) base their interviews on CP-style problems.

Compete globally

Represent HNU at ICPC regionals and potentially the World Finals.

Build community

Learn alongside motivated peers who share your passion for problem solving.

Set up your environment

Choose a language

For competitive programming, we recommend:
LanguageProsRecommendation
C++Fast execution, STL library, most CP resources⭐ Highly recommended
PythonEasy syntax, great for math problemsGood for beginners
JavaBigInteger support, verbose but reliableAcceptable
Most ICPC competitors use C++ because of its speed and the powerful Standard Template Library (STL). We recommend starting with C++ if you’re serious about competing.

Essential tools

  1. Code editor: VS Code with the C/C++ extension, or CLion
  2. Online judge account: Create accounts on Codeforces, AtCoder, and LeetCode
  3. Compiler: Install g++ (via MinGW on Windows, or build-essential on Linux)

Your first program

#include <bits/stdc++.h>
using namespace std;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int n;
    cin >> n;
    cout << "Hello, competitive programming! n = " << n << endl;

    return 0;
}
The ios_base::sync_with_stdio(false) and cin.tie(NULL) lines speed up input/output — essential for competitive programming.

What’s next?

How to practice

Learn effective practice strategies to improve consistently.

Start solving

Begin with our curated beginner problem sheet.