New!
promo message
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 until
    April 14, 2020

    Get access to the classroom immediately upon 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 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.

Technical mentor support

Our knowledgeable mentors guide your learning and are 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.
Program OfferingsFull list of offerings included:
Enrollment includes:
Class content
Real-world projects
icon-checkmarkCheckmark
Project reviews
icon-checkmarkCheckmark
Project feedback from experienced reviewers
icon-checkmarkCheckmark
Student Services
Technical mentor support
New
icon-checkmarkCheckmark
Student community
Improved
icon-checkmarkCheckmark
Career services
Personal career coaching
New
icon-checkmarkCheckmark
Interview preparations
icon-checkmarkCheckmark
Resume services
icon-checkmarkCheckmark
Github review
icon-checkmarkCheckmark
LinkedIn profile review
icon-checkmarkCheckmark
Resume shared with 95+ employers
New
icon-checkmarkCheckmark
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
Technical Mentor Support
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
Technical Mentor Support
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++.

Student Reviews

4.5

(213)

Victor N.

I guess I expected to do a bit more than what I did with the initial project, code-wise. However, all that was really done was to decompose the route planning problem with respect to the A* algorithm. I did learn some new and cool things, such as utilizing build tools. I challenged myself to build the project locally instead of using the workspace, because I really wanted to learn and it worked well for me with some trial and error. Overall, I was looking for more insight and practice, and I believe this course provided that for me. It exceeded my expectations in some ways and challenged me. I enjoyed it.

Miguel F.

The content is superb. The videos and small exercises are very conformatable to follow, and I found the project very acessible so far. I appreciate some more detail on setting up the environment (in my personal computer) with VS code, the required libraries and so on. There is some information scatered in the course pages, and in the GitHub repositories, but i found it challenging to get it all setup. I think a tutorial showing how to setup everything from scratch (in Windows, Mac and Linux) would be very helpful to future students! :)

Hsin-Wen C.

After reading the reviewer's review carefully fix all required errors, I finally can execute and show the beautiful Open street map Route Planner on my GPU enabled workspace and pass my 1st project!! Reading review and saw the letter reviewer wrote to me and said WoW YOU DID IT and Happy New Year😁!! I feel very warm in my heart. Thank you, Udacity reviewer. I'll also try to adapt time to catchup Kaggle, Leetcode and Hackerrank discuss! I'm extremely satisfied:D!!

Francisco V.

I love the way is designed and the richness in content of nano degrees at Udacity. But I have a lot of problem trying to have projects on time. I think the knowledge acquired so far is not enough to do the project by myself, so I will continue working hard and will do the project later. My number one goal in taking this nano-degree is to learn C++ programming. I am not a fan of due date projects, but I am a fan of learning. Thanks! Regards, Francisco J. Virgen

Alexandre S.

I like the program so far. Only two minor nitpicks: 1) There are some Notebooks where the "Explain" button doesn't work, pressing it results in a message saying that some files are missing; 2) It would have helped a lot if I could debug the execution of the Project. Debugging was mentioned, but only of a single file, while the project has several files and requires appropriate configuration to be compiled with the appropriate flags for debugging.

Luis L.

I am very happy to successfully finish my first project on the C++ Nanodegree that I personally find very interesting but also quite challenging and difficult. I consider that the skills required to complete the project are far of the theory explained during the course but on any case thanks to the close and patient support of mentoring and Hub QA forums I could complete. I am very excited to continue!

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