Learn and Understand C++

Take this course to learn C++ which you can use for ethical hacking, game development, and most software you use daily!
4.5 (325 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
13,695 students enrolled
Take This Course
  • Lectures 76
  • Length 14 hours
  • Skill Level Beginner Level
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 4/2016 English

Course Description

* 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!

What are the requirements?

  • Basic Computer skills will be sufficient

What am I going to get from this course?

  • Understand C++ Code
  • Write C++ Code
  • Create Basic applications in C++

Who is the target audience?

  • Complete beginners who wish to learn C++
  • No previous programming knowledge is needed

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


Section 1: Introduction
Section 2: Set Up
Set Up
Section 3: First C++ Program

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.

Section 4: Interaction with user
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.
Section 5: More advanced examples
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.
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.
Section 6: Repeating code executions - loops

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.

Section 7: Arrays - basics
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.
Section 8: Functions - basics

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.

Section 9: Exception handling
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.

Section 10: Structures in C++
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
Section 11: Generic programming - basics
Generic Programming part 1
Generic Programming part 2
Section 12: STL (standard types in C++)

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.
Section 13: Classes in C++ - Beginning

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
Section 14: Classes in C++ - Basics
Rule of zero/three/five and Constructors - Part 1
Rule of zero/three/five and Constructors - Part 2
Friend functions
Generic Classes
Section 15: Decomposition
Decomposition - Part 1
Decomposition - Part 2
Section 16: Interaction with WinAPI
Using OS libraries and functions
WinAPI Types
Checking for Errors
Section 17: Files in C++ - Basics
Lets play with files
Section 18: Basic Encryption
Some fun with basic encryption
Section 19: 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

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Ermin Kreponic, IT Expert

Strongly motivated young IT expert, Linux enthusiast with a passion for troubleshooting network related problems. With an exceptional eye for details and a sense of urgency when it comes down to problem solving.

- Advanced knowledge of Linux command line
- Installation, configuration and maintenance of servers that run under Unix/Linux type
operating systems
To name a few: DNS, TFTP, FTP, SSH, APACHE, SMTP, VSFTP and some others
- Troubleshooting a wide range of network related problems. Meaning, digging deep for
packets on any given network.
Using one of my favourite tools for capturing and filtering packets on the network, Wireshark,
and resolving end-user issues
- Good understanding of Cisco routers and IOS operating system
- Configuration and implementation of Linux firewall namely Iptables
- Supervision and filtration of network traffic
- Tightening down security and pen testing networks for possible vulnerabilities
- Good knowledge of network gear brands and their strengths or weaknesses
- Preforming system back up
- Fair knowledge of Bash scripting
- equipment installation, upgrades, patches, and configuration.

Personal note:

I do not sleep much, but that is not only because I work hard, rather instead it is
because I enjoy this line of work,
it is extremely rewarding in every way that matters

Ready to start learning?
Take This Course