Skip to content

Learn C++

Nanodegree Program

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.

Enroll Now
  • Estimated time
    4 Months

    At 10 hrs/week

  • Enroll by
    May 31, 2023

    Get access to the classroom immediately upon enrollment

  • Skills acquired
    Threading, Heap Memory, Dynamic Memory Allocation, Control Flow

What you will learn

  1. Learn C++ by Coding Five Projects

    4 months to complete

    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.

    Prerequisite knowledge

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

    1. C++ Foundations

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

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

    3. Memory Management

      Learn to control static and dynamic memory in C++ using the Resource Acquisition Is Initialization pattern, pointers, references, and move semantics.

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

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

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.

  • Real-time support

    On demand help. Receive instant help with your learning directly in the classroom. Stay on track and get unstuck.

  • Career services

    You’ll have access to Github portfolio review and LinkedIn profile optimization to help you advance your career and land a high-paying role.

  • Flexible learning program

    Tailor a learning plan that fits your busy life. Learn at your own pace and reach your personal goals on the schedule that works best for you.

Program offerings

  • Class content

    • Real-world projects
    • Project reviews
    • Project feedback from experienced reviewers
  • Student services

    • Student community
    • Real-time support
  • Career services

    • Github review
    • Linkedin profile optimization

Succeed with personalized services.

We provide services customized for your needs at every step of your learning journey to ensure your success.

Get timely feedback on your projects.

  • Personalized feedback
  • Unlimited submissions and feedback loops
  • Practical tips and industry best practices
  • Additional suggested resources to improve
  • 1,400+

    project reviewers

  • 2.7M

    projects reviewed

  • 88/100

    reviewer rating

  • 1.1 hours

    avg project review turnaround time

Learn with the best.

Learn with the best.

  • 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

    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

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

Top student reviews

 
0.0 stars
(0)
 
NaN stars

        

 
NaN stars

        

 
NaN stars

        

 
NaN stars

        

 
NaN stars

        

 
NaN stars

        

Become a C++ Developer

Get started today

    • Learn

      Learn C++ to code a wide variety of tech, from self-driving cars and robotics to web browsers, media platforms, and operating systems.

    • Average Time

      On average, successful students take 4 months to complete this program.

    • Benefits include

      • Real-world projects from industry experts
      • Real-time classroom support
      • Career services

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

    Enroll Now