🎉 Exercism Research is now launched. Help Exercism, help science and have some fun at research.exercism.io 🎉

C++

Join the C++ Track
C++ is a general-purpose programming language that supports procedural, object-oriented, generic and functional programming styles. C++ is deployed on billions of devices from the smallest embedded microprocessor to the largest supercomputer.
Join the C++ Track
Track mentors

28 Mentors

Our mentors are friendly, experienced C++ developers who will help teach you new techniques and tricks.
Track students

33,293 Students

Join thousands of students who have enjoyed learning and improving their skills by taking this track.
Track exercises

55 Exercises

Hundreds of hours have gone into making these exercises fun, useful, and challenging to help you enjoy learning.

About C++

#include "hello_world.h"

namespace hello_world {

std::string hello()
{
    return "Hello, World!";
}

}

C++ (pronounced cee plus plus) is a general purpose programming language developed by Bjarne Stroustrup starting in 1979 at Bell Labs. It is immensely popular, particularly for applications that require speed and/or access to some low-level features. It is considered to be an intermediate level language, as it encapsulates both high and low level language features.

C++ supports procedural, object-oriented, functional and generic programming. Compilers for C++ are available for essentially every platform, including Windows, Mac OS, and Linux.

Key Benefits:

  • Type safety: Encapsulate necessary unsafe operations
  • Resource safety: Not all resource management is managing memory
  • Performance: For some parts of almost all systems, it's important
  • Predictability: For hard and soft real-time systems
  • Teachability: Complexity of code should be proportional to the complexity of the task
  • Readability: People and machines ("analyzability")
  • Direct map to hardware: of instructions and fundamental data types
  • Zero-overhead abstraction: Classes with constructors and destructors, inheritance, generic programming, functional programming techniques

The standard for C++ is maintained by the International Organization for Standardization (ISO), and the current version of C++ as of June 2018 is C++17 (named not as the 17th version of C++, but rather signifying that the standard was ratified in 2017).

The best thing about C++ is that it runs on everything from embedded processors with very limited resources to the largest mainframe supercomputer and every personal computer in between.

Join the C++ track

A tremendous learning opportunity to explore the depth of your own knowledge

Exercism is fantastic in learning new languages but that is not the extent of it. If you are a "more experienced" programmer you may have encountered impostor syndrome: the idea you don't really know what you think you know. Exercism lets you solve problems and put them in the space of open feedback which is a tremendous learning opportunity to explore the depth of your own knowledge. Even if you have been programming in a language for awhile it is worth checking into Exercism to see where you stand with current implementation practices.

Relaxed. Encouraging. Supportive.

Meet the C++ Track mentors

Once you join the C++ language track, you will receive support and feedback from our team of mentors. Here are the bios of a few of the mentors of this track.

Avatar of Makan Taghizadeh

Makan Taghizadeh https://github.com/MakanTaghizadeh

Developing C++ professionally in some projects, such as Real-time Applications, IoTs and Games, I've found C/C++ the most influential invention of the century.
Avatar of Eyong Kevin Enowanyo

Eyong Kevin Enowanyo Writing is my passion

Hi, I'm Eyong Kevin Enowanyo, a holder of a bachelor degree in software engineering and currently a lead developer. I am passionate and love building software in the domain of Machine learning, AI and Natural Language Processing. My main programming languages are Python, C++, and Java but I am always open to new technologies and experiences.
Avatar of Ann TV Huynh

Ann TV Huynh https://github.com/arishuynhvan

I worked with C++ during my first job as a developer 4 years ago and continued to use it in my scientific thesis. I love the power of this language and want to further refine my mastery over its various uses.
Avatar of Ronald Legere

Ronald Legere

C++ is not elegant but it does provide awesome power and expressiveness when mastered. These days I primarily use C++ for audio development but also tinker with gaming.
Avatar of Vaibhavi Singh

Vaibhavi Singh Linkedin profile

I've written code in C++ for more than 6 yrs. Mentored in Open Source programs, love to understand and simplify abstract concepts.
Avatar of Ning Ke

Ning Ke GitHub profile

Rediscovering the new C++.
Fun. Challenging. Interesting

Community-sourced C++ exercises

These are a few of the 55 exercises on the C++ track. You can see all the exercises here.

Binary
easy
strings
math
Say
hard
logic
strings
text formatting
Beer Song
medium
strings
text formatting
Crypto Square
medium
filtering
strings
text formatting
Roman Numerals
medium
strings
Pascal's Triangle
easy
arrays
math

Get started with the C++ track. As with everything on Exercism, it's 100% free!

Join the C++ Track