Start Learning

C++ is an efficient, high-performance programming language used to code everything from self-driving cars and robotics to servers, media platforms, video games, and applications that require blazing-fast performance. It is known as one of the top five most important programming languages, and today, Udacity is excited to launch the C++ Nanodegree program to equip students with advanced skills in C++ so that they can launch or advance a career programming the most exciting technology in the world.

Learn C++ programming online

“Self-driving cars would not be possible without C++,” says Udacity founder Sebastian Thrun. “I programmed the self-driving car that won the DARPA Grand Challenge using C++. The Google Self-Driving Car Project, now called Waymo, was launched with C++.”

Demand for engineers with C++ skills is growing as employers search for talent to work on complex autonomous and artificial intelligence software systems. According to Glassdoor’s salary database, as of March 2019, C++ Developers in the US average a yearly salary of $103,000, 43% more than the average Javascript Developer salary. As the top skill needed for autonomous vehicle jobs, C++ is the language powering the future of technology and transportation.

An Overview of the C++ Nanodegree Program

The C++ Nanodegree program will take about five months to complete, and teaches fundamentals and advanced skills in object-oriented programming, memory management, and concurrency. Designed for software engineers with programming knowledge in any language, this program will teach students practical C++ skills through five real-world projects, programming exercises, videos, and quizzes. Throughout the program, the Udacity Classroom will function as an online workspace in which students use Microsoft Visual Studio Code to practice the conventions outlined in Bjarne Stroustrup’s C++ Core Guidelines.

Build Five Real-World Projects

Throughout the course, students will build a portfolio of high-quality C++ projects to showcase to hiring managers and recruiters. These projects include:

  • Build an OpenStreetMap Route Planner —  Throughout the first course, you’ll learn basic C++ syntax, functions, containers, and how to compile and link with multiple files. Then, you’ll use OpenStreetMap and the 2D visualization library, IO2D, to build a route planner that displays a path between two points on a map. By the end of this project, you’ll be able to select starting and ending areas on a city map and find a path along the city streets to connect the start and end.
  • Build a System Monitor Using Object-Oriented Programming — In the program’s second course, you’ll explore Object-Oriented Programming (OOP) with examples and exercises covering the essentials of OOP, like abstraction and inheritance, as well as advanced topics, like polymorphism and templates. You’ll synthesize your skills to build a Linux system monitor application to demonstrate OOP in action! Not only will you gain more familiarity with the Linux operating system, but you’ll also gain insights into how a collection of objects can function together in C++ to form a complete application.
  • Build Smart Pointers — In the third course, you’ll discover the complexity of memory management by diving into stack vs. heap, pointers, references, new, delete, and more. For this project, you’ll synthesize all the memory management concepts you’ve worked with to build a smart pointer and compare it to the native implementation.
  • Build a Chatbot — In this project, you’ll build a multithreaded chatbot that can carry hundreds of conversations simultaneously! The project uses concurrent programming, which runs multiple threads of execution in parallel. Concurrency is an advanced programming technique that, when properly implemented, can dramatically accelerate your programs.
  • Capstone Project: Build Your Own C++ Application —  The capstone project is the creation of a unique application designed by each student leveraging their newly-acquired skills.

Supporting You in this Nanodegree Program

Learning C++ is an exciting challenge, and we’re excited to support you every step of the way. When you enroll in this program, you’ll have access to Udacity’s student support services, which include:

  • Project reviews: Each time a student submits a project, a member of Udacity’s reviewer network provides personalized feedback on how to improve the project. If the project does not meet specifications, they have the chance to improve and resubmit it.
  • Access to a mentor: Udacity mentors are key to student success. They answer questions, review work, and give webinars to help students throughout the program.
  • Student community: Students can connect with one another during the program to discuss the courses and projects, chat about job search strategies, or just network and support progress through the program.
  • Career services: Through our Career Services, students receive feedback on their LinkedIn profile, Github portfolio, and resume, as well as learn useful tips for interviewing and landing a job.


Demand for C++ engineers and developers has never been higher. The C++ Nanodegree program’s combination of world-class curriculum and excellent services is the perfect path to join and advance a career in the many cutting-edge tech fields that require C++ skills. Registration opens today and the classroom opens for the first time on April 30.

Enroll by April 23 to be part of this inaugural class!

Start Learning