Start Learning

Today, Udacity is excited to launch a new version of the C++ Nanodegree Program. This program equips students with the C++ skills to launch and advance careers programming the most exciting technology in the world.

C++ is an efficient, high-performance programming language used to code everything from self-driving cars and robots to servers, media platforms, video games, and applications that require blazing-fast performance. It is one of the top five most important computer programming languages.

“Self-driving cars would not be possible without C++,” says Udacity founder Sebastian Thrun. “I programmed the self-driving car that won the DARPA Grand Challenge using C++. The Google Self-Driving Car Project, now called Waymo, was launched with C++.”

Demand for C++ engineers is growing as employers search for talent to develop complex autonomous and artificial intelligence software systems, and employers are willing to pay top dollar for that talent – according to Glassdoor’s salary database, as of October 2019, C++ Developers in the US average a yearly salary of over $95,000. As the top skill needed for autonomous vehicle jobs, C++ is the language powering the future of technology and transportation. 

Learn C++ programming online

An Overview of the C++ Nanodegree Program

The C++ Nanodegree program takes four months to complete and teaches C++ fundamentals as well as advanced skills in object-oriented programming, memory management, and concurrency. 

The program teaches real-world tools and best practices, including Bjarne Stroustrup’s C++ Core Guidelines, the Microsoft Visual Studio Code development environment, and several testing frameworks.

Designed for software engineers with previous programming experience in any language, this program teaches students practical C++ skills through five real-world projects, numerous programming exercises, videos, and quizzes. Throughout the program, students can develop programs on their personal computers, or use Udacity Workspaces, a cloud programming environment.

Build Five Real-World Projects

Throughout the course, students will build a portfolio of high-quality C++ projects that they will be able to showcase to hiring managers and recruiters. These projects include:

  • Build an OpenStreetMap Route Planner —  Throughout the first course, you’ll learn basic C++ syntax, functions, containers, and compiling and linking with multiple files. Then, you’ll use OpenStreetMap and the 2D visualization library, IO2D, to build a route planner that displays a path between two points on a map. By the end of this project, you’ll be able to select starting and ending areas on a city map and your program will find a path along the city streets to connect the start and end.
  • Build a System Monitor Using Object-Oriented ProgrammingIn the program’s second course, you’ll explore Object-Oriented Programming (OOP) in C++ with examples and exercises covering the essentials of OOP, like abstraction and inheritance, as well as advanced topics, like polymorphism and templates. You’ll synthesize your skills to build a Linux system monitor application to demonstrate C++ OOP in action!

    Not only will you gain more familiarity with the Linux operating system, you’ll also gain insights into how a collection of objects can function together in C++ to form a complete application.
  • Build a Chatbot — In the third course, you’ll discover the complexity of memory management by learning static and dynamic memory in C++, using the Resource Acquisition Is Initialization pattern, pointers, references, and move semantics. For this project, you’ll use the modern C++ memory management techniques you’ve worked with to build a chatbot.
  • Build a Concurrent Traffic Simulation — In this project, you’ll build a multithreaded traffic simulator using a real urban map, where you’ll run each vehicle on a separate thread, and manage intersections to facilitate traffic flow. Concurrency is an advanced programming technique that, when properly implemented, can dramatically accelerate your C++ programs. 
  • Capstone Project: Build Your Own C++ Application —  The C++ Nanodegree’s capstone project is the creation of a unique application designed by each student leveraging their newly-acquired C++ skills.

Supporting You in this Nanodegree Program

Learning C++ is an exciting challenge, and we’re excited to support you every step of the way. When you enroll in this program, you’ll have access to Udacity’s student support services, which include: 

Project reviews: Each time a student submits a project, a member of Udacity’s reviewer network provides personalized feedback on how to improve the project. If the project does not meet specifications, they have the chance to improve and resubmit it. Our services model monitors student progress to make sure no student gets stuck.

Access to a mentor: Udacity mentors are key to student success. They answer questions, review work, and give webinars to help students throughout the program.

Student community: Students can connect with one another during the program to discuss the courses and projects, chat about job search strategies, or just network and support progress through the program.

Career services: Through our Career Services, students receive feedback on their LinkedIn profile, Github portfolio, and resume, as well as learn useful tips for interviewing and landing a job.

Demand for C++ engineers and developers has never been higher. The C++ Nanodegree program’s combination of a world-class curriculum and student services is the perfect path to launch and advance careers in the cutting-edge domains that depend on C++.

Enroll today and become a C++ developer!

Enroll Now

David Silver
David Silver
David Silver leads the Self-Driving Car Engineer Nanodegree Program. 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.