Learn and Understand C++
4.5 (746 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.
31,377 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Learn and Understand C++ to your Wishlist.

Add to Wishlist

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 (746 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.
31,377 students enrolled
Created by Ermin Kreponic
Last updated 12/2016
Curiosity Sale
Current price: $10 Original price: $195 Discount: 95% off
30-Day Money-Back Guarantee
  • 14 hours on-demand video
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Understand C++ Code
  • Write C++ Code
  • Create Basic applications in C++
View Curriculum
  • Basic Computer skills will be sufficient

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

Who is the target audience?
  • Complete beginners who wish to learn C++
  • No previous programming knowledge is needed
Students Who Viewed This Course Also Viewed
Curriculum For This Course
76 Lectures
1 Lecture 10:52
Set Up
1 Lecture 15:34
First C++ Program
5 Lectures 58:39

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.

Preview 05:42

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.
Hello world, printing to monitor

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.
More advanced print formats

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

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

Variables in C++ part 2
Interaction with user
5 Lectures 53:57
Here we will learn about user input and how a user can interact with the program through keyboard input.
Getting data from standard input (keyboard)

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.
Constant variables in C++, macro constants

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

The auto keyword, new in C++11

In this video, we will learn how to write comments in C++, what type of comments we have, and what they are used for.
More advanced examples
6 Lectures 01:16:10
In this video, we will learn how to include C++ libraries for the benefit of using resources which are embedded in them.
Inclusion of other libraries

Here, we will learn about conditional execution. We will learn about if-else constructs, how they are created and what they are used for.
Preview 19:22

In this video, we will learn about logical operators in C++ and the evaluation of conditions.
Logical operators part 1

In this video, we will learn about logical operators in C++ and the evaluation of conditions.
Logical operators part 2

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

Relational operators

In this video, we will learn about the comma operator and the inherent dangers of the comma operator.
Comma operator
Repeating code executions - loops
9 Lectures 01:31:16

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

for loop

Here, we will learn about the while loop.

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.

do while loop

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

Preview 13:55

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

break statement

Here, we will learn about the continue statement which is used to skip an iteration of the loop.
continue statement

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.
Infinite loops

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

Nested loops
Arrays - basics
5 Lectures 46:04
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.
Declaration and usage

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.

Memory representation

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

Array initialization

Overview of basic array algorithms.
Simple 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.
C string
Functions - basics
4 Lectures 58:01

In general about functions, their concept and usage.

Concept and usage

These are functions that return specific values when invoked.

Functions with return values

It is possible for a function to accept no parameters and return no values.
Functions that do not accept anything and do not return anything

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.

Basics lambda anonymous functions new in C++11
Exception handling
6 Lectures 55:56
In general about exceptions in C++.
Explanation and usage part 1

Explanation and usage part 2

These are sets of predefined and standardized exceptions.

Standard 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.
Generic catch block

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

Nested try-catch blocks

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

Exception propagation
Structures in C++
4 Lectures 38:49
In general about structures in C++.
Concept and usage

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

Attributes and structure initialization

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

static attributes

Arrays of struct
9 More Sections
About the Instructor
Ermin Kreponic
4.3 Average rating
24,359 Reviews
317,638 Students
13 Courses
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