Nanodegree Program

Become a C++ Engineer

Learn C++, a high-performance programming language used in the world's most exciting engineering jobs -- from self-driving cars and robotics, to web browsers, media platforms, servers, and even video games.

Enrollment Closing In

  • Time
    5 Months

    Study 10 hrs/week and complete in 5 mo.

  • Classroom Opens
    30 April 2019

    Classroom opens 7 days after enrollment closes

  • Prerequisites
    Object-Oriented Programming

    See prerequisites in detail

Why Take This Nanodegree Program?

C++ is a compiled, high-performance language. Robotics, automobiles, embedded software, and many other industries depend on C++ for speed of execution. This program is designed to turn software engineers into C++ engineers and teach you advanced skills so you can code everything from self-driving cars to Mars Rovers, servers, and desktop applications.

Icon - Dark upwards trend arrow

According to Glassdoor, the U.S. national average base pay for a C++ Software Engineer is over $103,000!

Selling Points - group of four gathered at a table looking at a laptop
Icon - Nanodegree logo (purple on white)

Build Five Real-World Projects

Learn C++ by coding five real-world projects, including a route planner, system monitor, smart pointer, chatbot, and your own C++ application.

Icon -  command line prompt (blue on white)

Learn a Top Programming Language

C++ is the industry standard for high-performance programming. Learn C++ to code a wide variety of tech, from self-driving cars and robots to web browsers like Chrome, media platforms like YouTube, and operating systems like Windows.

Selling Points - happy woman using laptop
Icon - Chat bubble (green on white)

Get Beneficial and Supportive Project Reviews

Advance through the curriculum with the support of qualified reviewers whose detailed feedback will help ensure you learn skills the right way.

Icon - Certificate (pink on white)

Get Career Support

You will have access to a resume and LinkedIn review, as well as feedback on your GitHub profile to help prepare you for job interviews.


Download Syllabus

Learn by Coding Five C++ Projects

Get hands-on experience by coding five real-world projects. Learn to build a route planner using OpenStreetMap data, write a process monitor for your computer, and implement your own smart pointers. Finally, showcase all your newfound skills by building a chatbot and coding your own C++ application.

Get hands-on experience by building five real-world projects.

Hide details

5 months to complete

Prerequisite Knowledge

To optimize your chances of success in the C++ Nanodegree program, we recommend intermediate knowledge of any programming language.

  • C++ Foundations

    Learn how to develop, compile, and execute C++ programs as well as syntax, functions, containers, and how to link together multiple files.

    Route Planner
  • Object-Oriented Programming (OOP)

    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.

    Process Monitor
  • Memory Management

    Learn how C++ allows for flexible and tight management of memory and system resources and how it offers abstractions that make resource allocation more reliable and straightforward.

    Smart Pointers
  • Concurrency

    C++ supports running multiple execution paths in parallel. Learn how to execute parallel implementations of algorithms in the standard library, how to launch new threads, and how to synchronize and communicate between threads.

    ChatbotCapstone Project: Build Your Own C++ Application

Learn with the best

David Silver
David Silver

Product Lead

David Silver leads the School of Autonomous Systems at Udacity. 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.

Stephen Welch
Stephen Welch


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.

Ermin Kreponic
Ermin Kreponic


Ermin Kreponic is a skilled Java & C++ developer who has taught dozens of online courses in multiple coding languages. Ermin currently works as a cyber-security training architect and is a strong proponent of open-source technologies.

Advance Your Career

We’ll support your career journey; our goal is to help you secure a rewarding role.

The C++ Nanodegree program is designed to prepare you for a role as a C++ engineer and equip you with the C++ skills you need to code a wide-range of projects. Whether you want to become a C++ Developer or obtain a similar engineering role, you’ll learn both fundamental and advanced skills for programming in C++. Udacity supports your career journey throughout the preparation and search process. Our goal is to move you forward in your career.

Stay Connected
Connect with Opportunities

Practice for interviews and open up a world of opportunities.

Be in demand. Publish your project portfolio to the world. Practice hundreds of interview questions. The Udacity Talent Program employers are eager to meet you.

Target Your Job Search

Work with career professionals to impress recruiters.

Work with a career coach to get personalized advice, improve your job search and impress recruiters. Build your professional brand with feedback from industry professionals on your resume, LinkedIn, and GitHub profile.

Build a Great Network

Connect with our global community to grow your career.

Connect with 70,000+ highly-skilled alumni to collaborate, share referrals, or hire your own team. The Udacity Alumni Network offers opportunities to continue building your professional skills while you advance your career.

Get Started Now

Nanodegree Program

Learn C++

12 days left to enroll!
Enroll Now
Learn C++ to code a wide variety of tech, from self-driving cars and robotics to web browsers, media platforms, and operating systems.

Program Details

  • Why should I enroll?

    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++ engineers. You will use C++ to develop object-oriented programs, to manage memory and system resources, and to implement parallel programming.

  • What jobs will this program prepare me for?

    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:

    • C++ Software Developer
    • Self-Driving Car Engineer
    • Robotics Software Engineer
    • Embedded Systems Engineer
    • Entry-Level Game Programmer
  • How do I know if this program is right for me?

    This program is right for you if you’re an intermediate-level programmer familiar with functions and classes who wants to become a C++ engineer or pursue a career in robotics software, IoT, mobile communications, video game development, operating systems, networking, AI, embedded systems, and more.

    Enrollment and Admission
  • Do I need to apply? What are the admission criteria?

    There is no application. This Nanodegree program accepts everyone, regardless of experience and specific background.

  • What are the prerequisites for enrollment?

    To optimize your chances of success in the C++ Nanodegree program, we recommend intermediate knowledge of any programming language.

  • If I do not meet the requirements to enroll, what should I do?

    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.

    Tuition and Term of Program
  • How is this Nanodegree program structured?

    The program is comprised of one (1) term of five (5) months with fixed start and end dates. Students must successfully complete all assigned projects by the end date to graduate from the Nanodegree program. There are five projects in the Term, which give you an opportunity to apply the skills you've learned.

    To graduate, students must successfully complete the required projects, which give you the opportunity to apply and demonstrate new skills that you learn in the lessons. Each project will be reviewed by the Udacity reviewer network and platform. Detailed and actionable feedback will be provided. If you do not pass the project, you will be asked to resubmit the project until it passes.

  • How long is this Nanodegree program?

    Access to this Nanodegree program runs for the period noted in the Term Length section above.

    See the Terms of Use for other policies around the terms of access to our Nanodegree programs.

  • Can I switch my start date? Can I get a refund?

    Please see the Udacity Nanodegree program FAQs for policies on enrollment in our programs.

  • How much does the program cost?

    The full program consists of one 5-month long Term at a cost of USD $999. Payment is due before the term begins.

  • What software and versions will I need in this program?

    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.

Learn C++

A highly efficient and flexible low-level language.