We may earn an affiliate commission when you visit our partners.
Course image
Rahmat M

This is an innovative Udemy course designed to take your programming skills to new heights. In this course, we move beyond the mere memorization of code, focusing instead on empowering you with a deep understanding of the core concepts that drive programming.

Read more

This is an innovative Udemy course designed to take your programming skills to new heights. In this course, we move beyond the mere memorization of code, focusing instead on empowering you with a deep understanding of the core concepts that drive programming.

Being a proficient programmer isn't just about syntax; it's about comprehending underlying principles, fostering creativity, and devising inventive solutions. Many aspiring programmers struggle because they rush into coding without grasping these fundamental ideas. We've identified this challenge and have a unique approach to address it: we prioritize a profound comprehension of programming fundamentals before delving into syntax.

One of the biggest hurdles in learning complex programming topics is relying solely on coding. We've found a solution – visual representations. Seeing concepts in action bridges the gap between theory and practical application. Our course employs visual aids to simplify intricate topics such as pointers and memory management. We ensure you not only understand these concepts but also apply them confidently.

C++ is a powerful yet intricate language; misconceptions can lead to frustration, and that's why we focus on demystifying its complexities. We delve into challenging concepts such as memory leaks and dangling pointers using visual aids, ensuring you comprehend these crucial aspects accurately. Additionally, we introduce you to C++'s latest features, including smart pointers, which prevent common pitfalls.

Our course provides you with accessible PDFs and Visual Studio code files, enabling collaborative exploration of the course content. Whether you're revisiting topics or diving into new ones, these resources simplify learning, making it both engaging and straightforward.

C++ has evolved, and in this course, we concentrate on C++20, showcasing its latest features like modules, the spaceship operator, and formatting capabilities. We understand that understanding concepts is vital, but so is practical application. That's why we guide you through hands-on projects where you create a desktop application similar to MS Excel and build a video game from scratch. These projects go beyond mere syntax; they introduce C++ library usage, incorporating standard library algorithms, data structures, Dear ImGui, and Unreal Engine integration. This practical experience offers real-world applications for your C++ knowledge.

While C++23 is on the horizon, our focus remains on C++20. As the language evolves, so will our course. We are dedicated to keeping you updated with the latest advancements in the programming world.

Join us on this exciting journey through C++20, where intricate concepts become clear, and programming transforms into a creative adventure. Let's explore the vast realm of C++ together.

Topics Covered:

  • C++ Basics

  • Data Types and Variables

  • Operators

  • Flow Control

  • Arrays and Vectors

  • Functions

  • Pointers

  • Enumerated Data Types

  • Object-Oriented Programming (OOP)

  • Modules

  • Namespace

  • String and Formatting

  • Generic Programming

  • Exception Handling

  • Lambda Expressions

  • Containers and Iterators

  • Algorithms

  • Move Semantics

  • Dear ImGui Real Application Project

  • Car Game in Unreal Engine 5

Enroll now and embark on your journey to mastering C++20 programming.

Enroll now

What's inside

Learning objectives

  • Master c++ fundamentals, from basics to advanced concepts.
  • Understand diverse data types, variables, and operators.
  • Navigate through flow control and arrays with ease.
  • Grasp the intricacies of functions and pointers.
  • Explore object-oriented programming (oop) principles.
  • Dive into modules, namespaces, and generic programming.
  • Master exception handling and lambda expressions.
  • Work with containers, iterators, and algorithms effectively.
  • Harness the power of move semantics in c++.
  • Develop real applications with dear imgui integration.
  • Create a dynamic car game using unreal engine 5.
  • Learn modern c++20 features like modules and operators.
  • Apply string formatting techniques for polished output.
  • Gain hands-on experience through collaborative visual studio projects.
  • Utilize c++20's latest features effectively.
  • Learn error handling and exception concepts.
  • Gain hands-on experience with diverse projects.
  • Show more
  • Show less

Syllabus

Introduction
INTRO
Installing visual studio community
Setup Visual studio project
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Starts with C++ basics and gradually introduces more advanced topics, making it suitable for individuals new to programming
Employs visual aids to explain complex concepts like pointers and memory management, which can be especially helpful for beginners
Focuses on C++20, which includes modern features like modules and the spaceship operator, ensuring learners are up-to-date with current standards
Includes hands-on projects like creating a desktop application and a video game, providing practical experience with C++ library usage and Unreal Engine integration
Provides accessible PDFs and Visual Studio code files, facilitating collaborative exploration of the course content and simplifying the learning process
Focuses on C++20, but does not cover C++23, which may be a drawback for learners seeking the absolute latest features and functionalities

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Visual & practical c++20 mastery

According to learners, this course offers a highly effective visual and practical approach to learning C++20. Students particularly appreciate the clear explanations, especially for complex topics like pointers and memory management, often citing the visual aids as a major strength. The practical projects, including building a desktop application and a game with Unreal Engine, are seen as invaluable for applying concepts and gaining real-world experience. The course is described as taking you from zero to mastery, making it suitable for beginners, though some reviews suggest the initial pace might feel slow for those with prior programming knowledge. Overall, it's considered a comprehensive and well-taught introduction to modern C++.
Starts slow, suitable for absolute beginners.
"As someone completely new to C++, the zero-to-mastery approach and gradual pace were perfect for me."
"The initial sections were quite slow, which might be tedious if you're not an absolute beginner."
"It builds fundamentals carefully, which is great if you have no prior coding background."
"The course ensures you have a solid foundation before moving to advanced topics, which means the start is basic."
Instructor explains concepts clearly.
"The instructor is very clear and easy to follow, making complex ideas understandable."
"Excellent instructor who breaks down topics effectively."
"I found the explanations well-structured and easy to digest."
"The teaching style is engaging and keeps you motivated."
Covers wide range of C++20 topics.
"The course covers a lot of ground, from basic syntax to C++20 features and advanced topics like move semantics."
"I appreciate that it focuses on modern C++20, including new features I wanted to learn."
"It provides a solid foundation across many core areas of C++ programming."
"Learned about modules and other C++20 specifics which are very relevant today."
Hands-on projects apply concepts effectively.
"The hands-on coding and projects are the strongest part of the course for me, especially the game development section."
"Building the Dear ImGui application was a fantastic way to see C++ used in a real context."
"The projects really solidify the concepts taught and give practical experience."
"I enjoyed the challenge and learning involved in the Unreal Engine project."
Visuals simplify complex C++ concepts.
"The way the course explains the concepts visually is amazing, especially for pointers and memory management."
"This course makes C++ concepts easy to grasp with excellent visual aids."
"Understanding pointers through the visual approach was incredibly helpful; it just clicked."
"I struggled with memory concepts before, but the visual demos in this course clarified everything."
Initial environment setup can be tricky.
"Setting up Visual Studio initially was a bit confusing for me as a complete beginner."
"Although the course guides you, I ran into some issues getting the development environment ready."
"The setup process could be smoother, especially for absolute novices."
"Had a few hiccups during installation following the provided steps."
May require further external study.
"While it covers many topics, some advanced areas feel like they could use more depth."
"Good overview, but for true mastery of certain complex areas, I might need supplementary resources."
"I gained a good introduction, but felt the need to research specific advanced concepts further on my own."
"It provides a solid base, but don't expect to be an expert in every single advanced topic solely from this course."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Complete C++20 Visual and Practical Course: Zero to Mastery with these activities:
Review C++ Basics
Reinforce your understanding of fundamental C++ concepts before diving into more advanced topics covered in the course. This will help you build a solid foundation.
Show steps
  • Review basic syntax and data types.
  • Practice writing simple C++ programs.
  • Complete online quizzes on C++ basics.
Review 'Effective Modern C++'
Deepen your understanding of modern C++ practices and idioms to write more effective and robust code. This book will help you grasp the subtleties of C++20.
Show steps
  • Read selected chapters relevant to the course topics.
  • Implement examples from the book in your own projects.
  • Discuss key concepts with peers in online forums.
Implement a Simple Calculator
Apply your knowledge of C++ basics, data types, operators, and flow control to build a functional calculator. This project will reinforce your understanding of these core concepts.
Show steps
  • Design the calculator's user interface.
  • Implement the arithmetic operations.
  • Handle user input and output.
  • Test and debug the calculator.
Four other activities
Expand to see all activities and additional details
Show all seven activities
LeetCode Easy Problems in C++
Sharpen your problem-solving skills and coding proficiency by tackling LeetCode problems using C++. This will improve your ability to apply C++ concepts in practical scenarios.
Show steps
  • Select a set of easy LeetCode problems.
  • Solve each problem using C++.
  • Analyze your solutions and optimize for efficiency.
  • Compare your solutions with others.
Create a C++ Cheat Sheet
Consolidate your knowledge by creating a cheat sheet summarizing key C++ concepts, syntax, and best practices. This will serve as a valuable reference for future projects.
Show steps
  • Identify the most important C++ concepts.
  • Summarize each concept in a concise format.
  • Organize the cheat sheet for easy reference.
  • Share your cheat sheet with other students.
Review 'C++ Concurrency in Action'
Explore advanced topics in C++ concurrency to enhance your understanding of parallel programming and optimize application performance. This book will provide a deeper dive into multithreading.
Show steps
  • Read chapters on threads and synchronization.
  • Experiment with different concurrency techniques.
  • Analyze the performance of concurrent code.
Contribute to a C++ Open Source Project
Gain real-world experience by contributing to an open-source C++ project. This will expose you to industry coding standards, collaborative development practices, and complex codebases.
Show steps
  • Find a C++ open-source project on GitHub.
  • Identify a bug or feature to work on.
  • Submit a pull request with your changes.
  • Respond to feedback from project maintainers.

Career center

Learners who complete Complete C++20 Visual and Practical Course: Zero to Mastery will develop knowledge and skills that may be useful to these careers:
Software Developer
A software developer creates applications and systems, and this course directly contributes to this role. Proficiency in C++ is valuable for a software developer, especially with new features of C++20 such as modules and the spaceship operator emphasized in this course. This course's focus on visual learning and hands-on projects, like the development of a desktop application and a video game, help build the foundation for practical software development experience. The course content also covers data structures, algorithms, and object oriented programming. These are crucial to the work of a software developer. The course's focus on memory management, exception handling, and debugging are pertinent to writing robust software.
Game Developer
Game developers create video games, and this course provides skills directly useful in this role. The course includes hands-on experience building a car game in Unreal Engine 5. This is valuable for a game developer. The course is focused on C++, an important language in game development. Understanding memory management and performance is especially critical in game development, and this course makes these topics a priority by visually explaining important C++ concepts. Also this course explores data structures, algorithms, and exception handling. These are key to a game developer's skillset.
Embedded Systems Engineer
An embedded systems engineer designs and develops the software for embedded systems, and a course on C++ can be very helpful to someone in this role. Embedded systems, such as those in cars and other devices, frequently use C++ as a programming language. The emphasis of this course on memory management, pointers, and performance is very relevant to an embedded systems engineer. The course's teachings on exception handling and debugging are also relevant to building robust embedded systems. This course will help an embedded systems engineer learn the features of C++20, which are useful for modern embedded systems.
Application Developer
An application developer creates various software applications, and this course may be helpful to one in this role. The course provides a strong base in C++ and covers a wide range of programming concepts, including object oriented programming, data structures, and algorithms. The hands-on projects in the course, specifically building a desktop application similar to MS Excel, can help application developers learn practical skills. This course covers C++20 features, which can make application development more efficient. Also, this course emphasizes visual explanations and hands-on projects, a useful approach for an application developer who is looking to build practical experience.
Systems Programmer
A systems programmer works on the core components of an operating system, and this course may be useful. This course's focus on C++, including lower-level aspects like pointers, memory management, and optimization can help a systems programmer. The course also covers modern C++20 features and exception handling. These are valuable for systems programming. Also, this course uses visual aids, and practical projects, to help a budding systems programmer understand and apply these complex topics.
Robotics Engineer
Robotics engineers design, build, and program robots. This course may be useful to someone who wants to be a robotics engineer. C++ is used to develop the software for robots, and this course focuses specifically on C++. The course’s emphasis on memory management, pointers, and efficiency is very relevant to robotics. The course includes hands-on experience integrating C++ with game engines which has crossover applications to robotics. Also learning exception handling, which is covered in this course, can help create robust robotics software.
Quantitative Analyst
A quantitative analyst uses mathematical models and computation to analyze financial markets, and this course may be useful for them. While financial modeling does not often use C++ directly, C++ is used to build very performant calculation and simulation engines that a quantitative analyst may use. The course focuses on performance and memory management which are important when working with large datasets and complex calculations. The course also covers standard algorithms and data structures which can be relevant for someone who must process or analyze data. This course does not cover the core of financial modeling but may help with the computational aspects.
Data Engineer
A data engineer builds and maintains data pipelines and infrastructure, and this course may be useful to an aspiring data engineer. While data engineering primarily uses languages like Python, C++ is relevant if one builds highly efficient data processing systems. This course focuses on C++ performance, memory management, and data structures, which are valuable for a data engineer. Also, this course uses visual aids to demonstrate complex concepts, and this can be a useful learning style for a data engineer. The course also covers exception handling, which is important for any data system.
High Frequency Trading Developer
A high frequency trading developer creates systems for automated trading, and this course may be useful for a high frequency trading developer. The course focuses on C++, and high frequency trading systems tend to use C++ to ensure that they are performant and fast. This course focuses on memory management, performance, and efficiency, which are all important when working with mission-critical real time systems. Also, this course teaches exception handling, a useful skill for anyone developing software for high-stakes applications. This course does not cover financial markets themselves, but it does cover programming concepts.
Compiler Engineer
A compiler engineer develops the software that translates programming code into machine code, and this course may be useful. This course is focused on C++, which is often the language used to build compilers, and it focuses on low level concepts like memory management, pointers, and performance, which are all important concepts for someone who builds compilers. While this course does not cover the specific topic of compiler development, the visual learning approach and hands-on projects with C++ may help a compiler engineer start their journey.
Operating Systems Developer
An operating systems developer works on the core software of a computer, and this course may be helpful although specific knowledge of an operating system will be required. This course’s focus on C++, along with concepts like memory management, and exception handling, are all foundational aspects of operating systems. This course uses visual aids and hands-on projects which helps the student to master complex software concepts. The course’s focus on C++20 features can also help an operating systems developer use the latest techniques.
Algorithm Designer
An algorithm designer creates efficient and optimized algorithms for various applications. This course may be useful for an algorithm designer. The course covers fundamental algorithms, data structures, and generic programming concepts. While this course does not focus on research topics in algorithm design, the course's grounding in C++ gives the algorithm designer a practical foundation. The course's teaching on memory management, performance, and efficiency will be valuable to algorithm designers who need to implement complex algorithms in performant ways. The course is especially helpful to algorithm designers coming from other disciplines.
Computer Graphics Programmer
A computer graphics programmer develops rendering engines and graphics effects, and this course may be useful for a budding graphics programmer. C++ is commonly used in graphics programming. The course's focus on C++, its emphasis on performance, memory management, and data structures are all relevant topics for graphics programming. The course also includes a hands-on project in Unreal Engine 5 which is a popular game engine which has crossover applications to computer graphics. This course is not a deep dive into the mathematics of computer graphics, but the course’s emphasis on C++ is important.
Database Developer
A database developer builds and maintains databases. This course may be useful, but one should consider other courses. This course focuses on C++, which is sometimes used to build very performant database systems. The emphasis on memory management, data structures, and algorithms in the course are useful concepts for a database developer. While this course does not focus on database design or theory, its emphasis on practical skills like building applications can be useful. The visual learning style and hands-on projects can help some database developers.
Technical Writer
A technical writer creates documentation for software or engineering projects. This course may be useful, though other courses may be more directly relevant. While technical writing doesn't require deep software development skills, understanding C++ and programming concepts can enable a technical writer to document software at a higher level of accuracy. The course’s focus on C++ and core programming principles can help a technical writer to better communicate with a development team. This course, while not specifically for technical writing, can give the technical writer an understanding of the software that they will later write about.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Complete C++20 Visual and Practical Course: Zero to Mastery.
Provides in-depth explanations of modern C++ features, including those introduced in C++11, C++14, and beyond. It valuable resource for understanding the nuances of the language and writing efficient, maintainable code. While not strictly required, it serves as an excellent companion to the course, offering deeper insights into the 'why' behind many C++20 features. It is commonly used by industry professionals.
Provides a comprehensive guide to concurrent programming in C++. It covers topics such as threads, mutexes, condition variables, and atomic operations. While concurrency may not be a primary focus of the course, understanding these concepts can be beneficial for developing high-performance applications. This book is more valuable as additional reading.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser