We may earn an affiliate commission when you visit our partners.
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
Downloading and Using course files
C++ basics
Introduction to C++
Modern C++
Standard Library
Start Coding in C++
Introduction to Functions
Statements in C++
Input and output data
Return Statement
Namespaces
Names and Keywords
Building C++ Program
Errors and Warnings
Numbers
Quiz
Data Types and Variables
Data Types
Variables
Integers
Const Keyword
Operations on Integers
Increment and Decrement Operators
sizeof Operator
Mission_1
Mission_1_Solution
Floating Point
Type Conversion
Characters
Strings
auto Keyword
Variable Lifetime
MIN, MAX and sizeof
Mission_2
Mission_2_Solution
Operators
Arrays and vectors
Arithmetic Operators
Assignment Operators
Relational Operators
Spaceship Operator
Logical Operators
Bitwise Operators
Conditional Operator
Comma Operator
Operators Precedence
Mission_3
Mission_3_Solution
Decision making and loops
Boolean
if - else
if else Example
else - if
Nested if
switch
Loops
while Loop
do...while Loop
for Loop
Range based for Loop
continue and break
Infinite Loop
Mission_4
Mission_4_Solution
Arrays
Array Elements
Multidimensional Arrays
std array
Vectors
Multidimensional Vectors
C-Style String
C++ Strings
Mission_5
Mission_5_Solution
Functions
Mission_6
Calling Functions
Function Prototype
Parameters and return
Default Arguments
Arrays to Functions
Arguments to main()
Static Variables
Function Overloading
Recursion
How do function calls work?
Inline Functions
Mission_6_Solution
Pointers
Dereferencing Pointers

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Includes hands-on projects like building a car game in Unreal Engine 5 and a desktop application, offering practical experience with industry-relevant tools
Starts with C++ basics, data types, and operators, building a strong foundation for those new to programming and setting them up for success
Focuses on C++20, showcasing its latest features like modules and the spaceship operator, which allows experienced programmers to stay current with modern C++ practices
Employs visual aids to simplify intricate topics such as pointers and memory management, bridging the gap between theory and practical application for visual learners
Involves creating a desktop application similar to MS Excel, which introduces C++ library usage, standard library algorithms, data structures, and Dear ImGui integration
Concentrates on C++20, but C++23 is on the horizon, so learners may need to independently seek resources to learn about the newest features after completing the course

Save this course

Save Complete C++20 Visual and Practical Course: Zero to Mastery to your list so you can find it easily later:
Save

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