
C Programming
Master the fundamentals of C programming by learning to build efficient programs, manage memory, use pointers and structs, and complete a hands-on file compression project.
Start with programming basics and progress toward building efficient, high-performance systems. These C and C++ courses help you understand memory, data structures, embedded development, and large-scale application design, preparing you for careers in robotics, system software, and engineering environments.

Master the fundamentals of C programming by learning to build efficient programs, manage memory, use pointers and structs, and complete a hands-on file compression project.

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 video games.

This Embedded Systems Programming course introduces students to the fundamentals of programming microcontrollers using C/C++. Key topics include Embedded C/C++ basics, bit manipulation for hardware control, and managing interrupts for real-time responsiveness. The course also covers essential code optimization techniques to ensure efficient, reliable software performance on resource-constrained devices. Ideal for those looking to build a strong foundation in embedded systems development.

This C++ Data Structures course provides a practical introduction to the design, implementation, and application of data structures. It begins with the fundamentals and primitive structures like arrays and linked lists, then explores composite structures such as stacks, queues, circular buffers, trees, and hash tables. Learners also examine the role of data structures in embedded systems and conclude with a hands-on project to apply their skills in solving real-world problems. By the end of the course, participants will be equipped to optimize data handling and design efficient algorithms in C++.

Learn what programming is, how it’s used, and why it matters. This introductory course breaks down essential concepts in a clear, accessible way for complete beginners.
After developing skills in C and C++, these related courses can help you deepen your understanding of computer science, explore hardware-level programming, and grow into higher-level application development. They provide a well-rounded path from foundational coding through embedded systems and modern JavaScript workflows.

Take your foundational programming skills further. These complementary collections strengthen your abilities in Python, full-stack development, and web design, equipping you to create practical, scalable, and thoughtfully built software solutions across platforms and industries.

Complement your embedded systems journey with training in Agile, machine learning, and product development. Build the cross-functional skills needed to design smarter systems, scale innovations, and deliver products that succeed in the market.

Advance your JavaScript expertise by branching into related areas like Python, machine learning, and cloud computing. These complimentary courses build cross-functional skills in backend logic, cloud architecture, and AI deployment to scale projects and grow into full-stack and cloud engineering roles.

Explore all of Udacity’s Schools, consisting of hundreds of career-driven programs and courses that are designed to teach practical skills and help you learn to your full potential.