At 10 hrs/week
Get access to classroom immediately on enrollment
Hide details
To optimize your chances of success in the C++ Nanodegree program, we recommend intermediate knowledge of any programming language.
Learn how to develop, compile, and execute C++ programs as well as syntax, functions, containers, and how to link together multiple files.
Learn to build classes, interfaces, and generic templates to create an object-oriented C++ program. Learn how modern C++ includes many tools for writing clean, reusable code.
Learn to control static and dynamic memory in C++ using the Resource Acquisition Is Initialization pattern, pointers, references, and move semantics.
C++ supports running multiple execution paths in parallel. Learn how to launch process and threads in order to execute logic in parallel. Then advance to thread synchronization and communication, to experience the full power of concurrent programming.
In your Capstone Project, you will put all of your new C++ skills to use! Utilize the core concepts from this Nanodegree program - object-oriented programming, memory management, and concurrency - to build your own application using C++.
Real-world projects from industry experts
1-on-1 technical mentor
Personal career coach and career services
Flexible learning program

Head of Curriculum
David Silver leads the Udacity Curriculum Team. Before Udacity, David was a research engineer on the autonomous vehicle team at Ford. He has an MBA from Stanford, and a BSE in Computer Science from Princeton.

Instructor
Stephen is a Content Developer at Udacity and has worked on the C++ and Self-Driving Car Engineer Nanodegree programs. He started teaching and coding while completing a Ph.D. in mathematics, and has been passionate about engineering education ever since.

Instructor
Andreas Haja is an engineer, educator, and autonomous vehicle enthusiast. Andreas now works as an engineering professor in Germany. Previously, he developed computer vision algorithms and autonomous vehicle prototypes using C++.
(46)
This program is the only one that I am satisfied!
The program is really practical and demanding in terms of skillset to be used. It would be even better if some concepts are taught before the introduction to course project.
It's great. I love the projects.
Pretty well
Doing fine, just what I need so far!
Yes, It surely is a great help for me as I am a mechanical engineer with concentration on Robotics and low-level controls.

Numbers don't lie. See what difference it makes in career searches.*
Career-seeking and job-ready graduates found a new, better job within six months of graduation.
Average salary increase for graduates who found a new, better job within six months of graduation.
C++ is a compiled, high-performance language. Robots, automobiles, and embedded software all depend on C++ for speed of execution. This program is designed to turn software engineers into C++ developers. You will use C++ to develop object-oriented programs, to manage memory and system resources, and to implement parallel programming.
C++ is the industry standard for high-performance computer programming.
As such, advanced knowledge of this programming language can open the doors for you to work in a variety of industries, including C++ engineering, robotics software, IoT, mobile communications, video game development, operating systems, networking, AI, embedded systems, and more.
Your opportunities and roles might include:
This program is right for you if you’re an intermediate-level programmer familiar with functions and classes who wants to become a C++ developer or pursue a career in robotics software, IoT, mobile communications, video game development, operating systems, networking, AI, embedded systems, and more.
There is no application. This Nanodegree program accepts everyone, regardless of experience and specific background.
To optimize your chances of success in the C++ Nanodegree program, we recommend intermediate knowledge of any programming language.
For students who have little or no coding background, our Introduction to Programming Nanodegree program is an opportunity to learn object-oriented programming in Python. If you are interested in self-driving cars and have no programming experience, the Intro to Self-Driving Cars Nanodegree program will teach you the basics of object-oriented programming in C++, as well as linear algebra and calculus.
The C++ Nanodegree program is comprised of content and curriculum to support five (5) projects. We estimate that students can complete the program in four (4) months working 10 hours per week.
Each project will be reviewed by the Udacity reviewer network. Feedback will be provided and if you do not pass the project, you will be asked to resubmit the project until it passes.
Access to this Nanodegree program runs for the length of time specified in the payment card above. If you do not graduate within that time period, you will continue learning with month to month payments. See the Terms of Use and FAQs for other policies regarding the terms of access to our Nanodegree programs.
We highly recommend the Self-Driving Car Engineer, Robotics Software Engineer, and Flying Car and Autonomous Flight Engineer Nanodegree programs. All of these programs use C++, and as a graduate of the C++ Nanodegree program, you’ll have the coding skills necessary to succeed in these programs and the opportunity to specialize in specific areas of robotics and autonomous systems.
Please see the Udacity Nanodegree program FAQs for policies on enrollment in our programs.
For this Nanodegree program, you will code with C++17.
An internet connection is required. All coding can be done in our GPU-enabled Linux Workspace that runs in your browser.