New!
Nanodegree Program

Become a C++ Developer

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.

  • Estimated Time
    4 Months

    At 10 hrs/week

  • Enroll by
    December 10, 2019

    Get access to classroom immediately on enrollment

  • Prerequisites
    Intermediate Programming

    See prerequisites in detail

Syllabus

Download Syllabus
Syllabus

Learn C++ by Coding Five 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 multithreaded traffic simulator and coding your own C++ application.

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

Hide details

4 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 to control static and dynamic memory in C++ using the Resource Acquisition Is Initialization pattern, pointers, references, and move semantics.

    Memory Management Chatbot
  • Concurrency

    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.

    Concurrent Traffic Simulation
  • Capstone Project

    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++.

    Capstone Project: Build Your Own C++ Application
Icon - Dark upwards trend arrow

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

All Our Nanodegree Programs Include

Real-world projects from industry experts

With real world projects and immersive content built in partnership with top tier companies, you’ll master the tech skills companies want.

1-on-1 technical mentor

Get a knowledgeable mentor who guides your learning and is focused on answering your questions, motivating you and keeping you on track.

Personal career coach and career services

You’ll have access to career coaching sessions, interview prep advice, and resume and online professional profile reviews to help you grow in your career.

Flexible learning program

Get a custom learning plan tailored to fit your busy life. Learn at your own pace and reach your personal goals on the schedule that works best for you.
Succeed with Personalized Services
We provide services customized for your needs at every step of your learning journey to ensure your success!
Experienced Project Reviewers
Individual 1-on-1 Mentorship
Personal Career Coach
Get personalized feedback on your projects
Reviews By the numbers
2000+ project reviewers
1.8M projects reviewed
4.85/5 reviewer ratings
3 hour avg project review turnaround time
Reviewer Services
  • Personalized feedback
  • Unlimited submissions and feedback loops
  • Practical tips and industry best practices
  • Additional suggested resources to improve
Succeed with Personalized Services
We provide services customized for your needs at every step of your learning journey to ensure your success!
Project Reviewers
1-on-1 Mentors
Career Coaching
Get personalized feedback on your projects
Reviews By the numbers
2000+ project reviewers
1.8M projects reviewed
4.85/5 reviewer ratings
3 hour avg project review turnaround time
Reviewer Services
  • Personalized feedback
  • Unlimited submissions and feedback loops
  • Practical tips and industry best practices
  • Additional suggested resources to improve

Learn with the best

David Silver
David Silver

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.

Stephen Welch
Stephen Welch

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.

Andreas Haja
Andreas Haja

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++.

The Udacity Impact

Numbers don't lie. See what difference it makes in career searches.*

84%
Better Jobs

Career-seeking and job-ready graduates found a new, better job within six months of graduation.

$24,000
Salary Increase

Average salary increase for graduates who found a new, better job within six months of graduation.

Program Details

    PROGRAM OVERVIEW - WHY SHOULD I TAKE THIS PROGRAM?
  • 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++ developers. 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++ developer 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 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.

  • How long is this Nanodegree program?

    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.

  • I have graduated from the C++ Nanodegree program, where should I go from here?

    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.

  • 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.

    SOFTWARE AND HARDWARE - WHAT DO I NEED FOR THIS PROGRAM?
  • 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.

Become a C++ Developer