We may earn an affiliate commission when you visit our partners.
Course image
Ermin Kreponic and Aldin Omerdic

* Subtitles available in both English & Spanish *

Read more

* Subtitles available in both English & Spanish *

If you want to learn C++ to advance your skills, gain the ability to program games, and create your own software, you might love this course. You can go from beginner to advanced with C++ using this course because it has 9+ hours of video that might motivate you to keep learning and programming in C++.

If you have no previous knowledge or experience in C++, you will like that the course begins with C++ basics. If you have learned about C++ already in another course and want to improve what you already know, the course has hours of different topics in C++ with one topic per section. Each section is linked to the previous one in terms of utilizing what was already learned. Each topic is supplied with lots of examples which help students in their process of learning. Also, some new features introduced in C++11 standard are explained. This is what makes it interesting for both beginner and advanced students. Even if you already have a lot of experience in programming in C++, this course can help you learn some new information you had missed before. Upon the completion of this course, you should be able to write programs that have real-life applications.

What I think is the best about this course is that you can search questions others have had, post your own questions, and get answers to challenges you are currently facing in learning and using C++. You get paid C++ expert technical support in this course here to answer every single question you ask.

If you still are not sure about taking the course, maybe these stories of what the students before you experienced will be more useful than whatever I can say about this course. Maybe you can see if you identify with where they were when they took the course and what they got out of it. These are all copied from the course reviews below.

So far I'm enjoying it, explanation of subjects are easy to understand.

Very clear instruction, easy to understand.

Straight forward. No fluff like some other courses where they take you on tangents about stuff you will probably never encounter.

If you any suggestions you have on topics that have not been covered, you can send them via private message. I will do my best to cover them as soon as possible.

Thank you for reading this. I hope to see you in the course soon and I hope you will enjoy your time learning as much as I have.

Enroll now

What's inside

Learning objectives

  • Understand c++ code
  • Write c++ code
  • Create basic applications in c++

Syllabus

Introduction
Set Up
This section will introduce students to C++ programming language. Students will learn what the minimum requirements are for a program to be valid.
Read more

Here we will write the smallest possible C++ program which does not have any practical application. This is just to show students what every C++ program must contain, that is, the main function.

Here, for the first time in this course, we will write a program that has some sort of practical application. In essence, we will instruct the machine to create a printout on the screen.
In this video, we will attempt to create a more complex output, which we will format and we will see the portion of logic which machine uses to interpret the code.
Here we will learn about different types of variables that are used in C++, their declaration, initialization, and meaning.

Here we will learn about different types of variables that are used in C++, their declaration, initialization, and meaning.

The objective of this section is to teach students what the user input is and how to read the input from the keyboard.
Here we will learn about user input and how a user can interact with the program through keyboard input.
First "useful" program - calculate sum
In this video we will learn about constants in C++, how they are declared, and what they are used for.

Here we will learn about the auto keyword, which is new in C++11 and is, in essence, a generic type for variables.

In this video, we will learn how to write comments in C++, what type of comments we have, and what they are used for.
In this section, students will learn about C++ libraries - what they are and how to include them. Then, they will be introduced to the conditional execution of the code.
In this video, we will learn how to include C++ libraries for the benefit of using resources which are embedded in them.
Here, we will learn about conditional execution. We will learn about if-else constructs, how they are created and what they are used for.
In this video, we will learn about logical operators in C++ and the evaluation of conditions.

Here, we will learn about relational operators such as ==, !=, <, <=, >, and >=.

In this video, we will learn about the comma operator and the inherent dangers of the comma operator.
This section teaches students about the different types of loops in C++. This includes for loop, while loop, do while loop, for each loop, and so-called goto loop + break and continue statements.

In this video, we will demonstrate the purpose and the usage of the for loop.

Here, we will learn about the while loop.

In this video, we will learn about the do while loop, which is a variation of the while loop, except the condition is evaluated at the end and the loop is guaranteed to run at least once.

Here, we will learn about the for each loop, which is introduced in C++11 standard.

In this video, we will learn about the break statement, which is used to terminate the loop prematurely.

Here, we will learn about the continue statement which is used to skip an iteration of the loop.
In this video, we will learn about the so-called goto loop, which is not really a loop, but is used to simulate a loop-like behavior.
Infinite loops are capable of running indefinitely or until they are terminated by some condition.

Nested loops are loops within loops. You can stack pretty much as many as you like.

This section introduces arrays. Students will learn what is an array, how to declare it, and how to access its elements. In addition to this, students will learn in what way arrays occupy memory (RAM)
In this video, we will learn how to declare and use arrays in a general fashion. Arrays are containers which contain elements, elements are indexed. It is very important to note that indexing in arrays starts from 0. For example, if an array had 70 elements, they would go from 0 to 69.

Pretty much, everything that is declared in C++ will occupy inevitably memory (RAM). Arrays are not an exception to this rule, and so, here,  I will show you how the elements of the array occupy memory space.

Like variables, arrays can be initialized. Their initialization differs to the extent that the elements of the array are initialized which the array contains.

Overview of basic array algorithms.
C strings are remnants of C programming language, which are still used in C++, especially in conjunction with the Windows API functions, as they do tend to accept C strings as their parameters.
In this section, students learn about functions in C++ - what they are and how to use them in the code.

In general about functions, their concept and usage.

These are functions that return specific values when invoked.

It is possible for a function to accept no parameters and return no values.

Lambda functions, or anonymous functions give the ability to the user to declare a function within a function. This is a brand new concept in C++11 that is fairly useful, perhaps not so much for the learning in the beginning stages as much as it is for the advanced level of programming.

This section teaches students about exceptions in C++. Students will learn what exceptions are and how to use them.
In general about exceptions in C++.
Explanation and usage part 2

These are sets of predefined and standardized exceptions.

If an exception is thrown, we need to create a catch block, and since we want to be sure that the exception is caught, we need a generic exception block.

Same as with nested loops, you can nest try-catch blocks one within another.

Once an exception is thrown, we can perform a set of operations after which, if we wish, we can propagate the exception onward.

This section introduces structures in C++. Students will learn what structures are in general and how to create and initialize structure attributes.
In general about structures in C++.

Creating a set of attributes for a structure and the initialization of the same.

Attributes that are shared between the variables of the same structure type.

Arrays of struct
Generic programming - basics
Generic Programming part 1
Generic Programming part 2
STL (standard types in C++)
vector
deque
string

Map type contains key-value pairs. Each value has a key. 

The  function type is a wrapper for functions and allows for functions to be placed in it and then be called later. This type is introduced in C++11.

Deque is very much similar to vectors except that it differs in the internal representation in the memory. It is organized as a list of lists.
Introduction to classes and object oriented programming.

Classes, just like structures, are logical units. So, when we add a method (function) to a structure, we get a class. class instance (variable of that class' type) is called an object.

Some of the object oriented programming principles are hiding information, encapsulation, inheritance, and polymorphism.

Principles of object-oriented programming (OOP) - Part 2
Basics of object oriented programming.
Rule of zero/three/five and Constructors - Part 1
Rule of zero/three/five and Constructors - Part 2
Destructors
Friend functions
Generic Classes
Decomposition
Decomposition - Part 1
Decomposition - Part 2
Interaction with WinAPI
Using OS libraries and functions
WinAPI Types
Checking for Errors
Files in C++ - Basics
Lets play with files
Basic Encryption
Some fun with basic encryption
Pointers and References
Introduction to Pointers
Comparison Operators and Pointers
Operators and Pointers Part 1
Operators and Pointers Part 2
Pointing to Different Objects Part 1
Pointing to Different Objects Part 2
Referencing

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Taught by a professional C++ expert who provides paid technical support throughout the course
Builds a strong foundation in C++ programming, including basic and advanced topics
Covers a wide range of topics, including data types, variables, functions, objects, and more
Provides hands-on practice through assignments and exercises
Includes quizzes and challenges to reinforce learning and provide feedback
Suitable for both absolute beginners and experienced programmers looking to advance their skills in C++

Save this course

Save Learn and Understand C++ to your list so you can find it easily later:
Save

Reviews summary

Not worth learning

According to students, this course has unstructured lectures and unclear instructions, as well as an unfamiliar instructor. Many students say that the course materials are poorly executed. Overall, students largely have a negative view of 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 Learn and Understand C++ with these activities:
Follow tutorials on the official C++ documentation
Solidify your understanding of C++ syntax and concepts by following tutorials on the official C++ documentation.
Show steps
  • Visit the C++ documentation website
  • Browse the tutorials in order
  • Practice the code examples provided in the tutorials
Solve coding problems on Leetcode
Reinforce your understanding of C++ fundamentals by solving coding problems on Leetcode.
Show steps
  • Create a Leetcode account
  • Practice solving easy problems
  • Work your way up to solving medium and hard problems
Join a C++ study group
Enhance your understanding of C++ by joining a study group and discussing concepts with peers.
Show steps
  • Find a C++ study group or create your own
  • Decide on a regular meeting time
  • Discuss C++ topics, ask questions, and work on problems together
Two other activities
Expand to see all activities and additional details
Show all five activities
Build a simple C++ program
Apply your C++ knowledge by creating a simple program that solves a real-world problem.
Show steps
  • Identify a problem to solve
  • Design the program's structure
  • Write the C++ code
  • Test and debug the program
Contribute to an open-source C++ project
Gain practical experience and improve your C++ skills by contributing to an open-source project.
Browse courses on Open Source
Show steps
  • Find an open-source C++ project on GitHub
  • Identify an issue or feature to work on
  • Create a pull request with your changes

Career center

Learners who complete Learn and Understand C++ will develop knowledge and skills that may be useful to these careers:
C++ Software Developer
Software Developers often need a strong foundational understanding of a programming language's core principles, and this course can help you build that for C++. If you're looking to get into software development or advance your career in it, this course may be useful.
C++ Game Developer
This course, Learn and Understand C++, may be helpful if you want to be a C++ game developer. The course covers a variety of C++ features, including the creation of basic applications, and may be a good resource for learning about C++'s programming fundamentals.
C++ Programmer
The Learn and Understand C++ course includes information on C++ fundamentals, such as the syntax and structure of the language. This course may be useful to you if you are interested in becoming a C++ programmer.
Data Analyst
Data Analysts may sometimes leverage C++ to manipulate data or build pipelines for analysis. This course can help you learn about the foundational principles of C++, which could be useful if you're interested in becoming a data analyst.
Data Scientist
Data Scientists may sometimes use C++ for development tasks, and so may find this course to be helpful. The course covers a range of topics in C++, including data input and output.
C++ Web Developer
This course on C++ may be useful if you want to be a web developer because it covers developing applications.
Hardware Engineer
Hardware Engineers may work with C++ in order to write firmware or drivers, and this course may be helpful for getting started with C++ if you're a hardware engineer.
Embedded Software Engineer
This course may be useful for Embedded Software Engineers looking to learn about C++ fundamentals, which include the basics of the language and how to write simple programs.
DevOps Engineer
DevOps engineers may use C++ for building, deploying, and managing applications, and so this course may be useful if you're interested in DevOps.
Network Engineer
Network Engineers may use C++ for network programming or developing network management tools. This course can help you learn the basics of C++, which may be useful if you're a network engineer.
Systems Administrator
Systems administrators may sometimes use C++ for automating tasks or writing scripts. This course may be useful for learning the basics of C++, which may be helpful if you're a systems administrator.
Technical Writer
Technical writers may use C++ for projects involving documentation or code examples. This course may be useful for learning the basics of C++, which may be helpful for technical writers interested in writing about C++.
Educator
Educators in the field of CS may find use for this course as it covers a range of topics in C++ that could aid in the development of instructional materials.
Quantitative Analyst
Quantitative analysts may find this C++ course helpful as a way to learn about the language for use in mathematical modeling, data analysis, or trading.
Financial Analyst
This C++ course may be helpful for financial analysts who need to build financial models or analyze data using C++.

Reading list

We've selected 15 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 Learn and Understand C++.
Is the definitive reference on the C++ programming language, written by its creator. It must-have for any serious C++ programmer.
Collection of 55 specific guidelines for writing efficient, reusable, and maintainable C++ code. It valuable resource for any C++ programmer, regardless of experience level.
Comprehensive guide to the C++ programming language, covering all the basics as well as more advanced concepts. It valuable resource for both beginners and experienced programmers.
Comprehensive guide to the C++ Standard Library, covering all the major components as well as more advanced topics. It valuable resource for any C++ programmer who wants to learn more about the Standard Library.
Introduces modern C++ design techniques, including generic programming and design patterns. It valuable resource for any C++ programmer who wants to write code that is more efficient, flexible, and maintainable.
Comprehensive guide to network programming in C++, covering all the basics as well as more advanced concepts. It valuable resource for any C++ programmer who wants to learn more about network programming.
Comprehensive guide to C++ templates, covering all the basics as well as more advanced concepts. It valuable resource for any C++ programmer who wants to learn more about templates.
Comprehensive guide to concurrency in C++, covering all the basics as well as more advanced concepts. It valuable resource for any C++ programmer who wants to learn more about concurrency.
Comprehensive guide to GUI programming in C++ using Qt 5, covering all the basics as well as more advanced concepts. It valuable resource for any C++ programmer who wants to learn more about GUI programming.
Comprehensive guide to the Rust programming language, covering all the basics as well as more advanced concepts. It valuable resource for any programmer who wants to learn more about Rust.
Comprehensive guide to the Go programming language, covering all the basics as well as more advanced concepts. It valuable resource for any programmer who wants to learn more about Go.
Comprehensive guide to the Python programming language, covering all the basics as well as more advanced concepts. It valuable resource for any programmer who wants to learn more about Python.
Comprehensive guide to the Java programming language, covering all the basics as well as more advanced concepts. It valuable resource for any programmer who wants to learn more about Java.
Comprehensive guide to the C# programming language, covering all the basics as well as more advanced concepts. It valuable resource for any programmer who wants to learn more about C#.

Share

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

Similar courses

Here are nine courses similar to Learn and Understand C++.
The Ultimate Excel Programmer Course
C# Advanced Topics: Prepare for Technical Interviews
C++: From Beginner to Expert
Xamarin Forms: Build Native Cross-platform Apps with C#
Real World UX | Learn User Experience & Start Your Career
Mastering Airbnb | Learn from SF's top host, 100+ lectures
The Complete Ethical Hacking Course: Beginner to Advanced!
Learn GLSL Shaders from Scratch
The Unreal Arsenal: Learn C++ and Unreal Engine
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 - 2024 OpenCourser