Beginning C++ Programming - From Beginner to Beyond
All LevelsDevelopmentC++

Beginning C++ Programming - From Beginner to Beyond

Obtain Modern C++ Object-Oriented Programming (OOP) and STL skills. C++14 and C++17 covered. C++20 info see below.

Created by Tim Buchalka's Learn Programming Academy, Dr. Frank Mitropoulos
46 hours
Video Content
305
Lectures
341,657
Students
4.6
Rating
4.6
(341,657 students enrolled)

What you'll learn

Learn to program with one of the most powerful programming languages that exists today, C++.
Obtain the key concepts of programming that will also apply to other programming languages
Learn Modern C++ rather than an obsolete version of C++ that most other courses teach
Learn C++ features from basic to more advanced such as inheritance and polymorphic functions
Learn C++ using a proven curriculum that covers more material than most C++ university courses
Learn C++ from an experienced university full professor who has been using and teaching C++ for more than 25 years
Includes Quizzes, Live Coding Exercises, Challenge Coding Exercises and Assignments
New Section: Learn to use Visual Studio Code with C++
New Section: Learn all about using C++ Lambda Expressions

Course Content

25 sections • 305 lectures • 45:51:07 total length

Introduction

5 lectures • 20:00

About the Course03:39
Why Learn C++?05:00
Modern C++ and the C++ Standard02:58
How does all this work?08:13
FAQ -- Please Read!00:10

Installation and Setup

16 lectures • 02:07:27

Installation and Setup Overview02:53
Installing the C++ Compiler on Windows07:06
Installing CodeLite on Windows03:48
Configuring CodeLite on Windows22:40
Installing the C++ Compiler on Mac OSX02:59
+11 more lectures

Curriculum Overview

3 lectures • 09:33

Curriculum Overview06:58
Overview of the Section Challenge Exercises01:29
Overview of the Section Quizzes01:06

Getting Started

11 lectures • 01:09:34

Section Overview00:58
An Overview of the CodeLite Interface21:35
Writing our first program08:23
Building our first program12:33
What are Compiler Errors?09:07
+7 more lectures

Structure of a C++ Program

7 lectures • 42:36

Section Overview00:56
Overview of the Structure of a C++ Program04:20
#include Preprocessor Directive02:11
Comments07:29
The main() function03:05
+6 more lectures

Variables and Constants

10 lectures • 01:13:03

Section Overview01:10
What is a variable?03:08
Declaring and Initializing Variables14:04
Declaring and Initializing Variables1 question
Global Variables03:23
+7 more lectures

Arrays and Vectors

9 lectures • 56:12

Section Overview01:07
What is an Array?04:40
Declaring and Initializing Arrays02:56
Accessing and Modifying Array Elements14:13
Declaring, Initializing and Accessing an Array1 question
+7 more lectures

Statements and Operators

14 lectures • 01:48:26

Section Overview02:02
Expressions and Statements03:20
Using Operators01:58
The Assignment Operator12:31
Arithmetic Operators14:55
+13 more lectures

Controlling Program Flow

17 lectures • 03:27:54

Section Overview03:06
if Statement18:08
If Statement - Can you Drive?1 question
if else Statement05:48
If-Else Statement - Can you Drive?1 question
+22 more lectures

Characters and Strings

8 lectures • 01:18:10

Section Overview01:54
Character Functions02:30
C-Style Strings07:45
Working with C-style Strings13:45
Using C-style Strings1 question
+8 more lectures

Functions

15 lectures • 02:51:21

Section Overview02:31
What is a Function?18:22
Using Functions from the cmath Library1 question
Function Definition17:00
Function Prototypes10:55
+19 more lectures

Pointers and References

18 lectures • 02:38:11

Section Overview03:14
What is a Pointer?02:20
Declaring Pointers03:02
Accessing the Pointer Address and Storing Address in a Pointer16:33
Dereferencing a Pointer13:13
+19 more lectures

OOP - Classes and Objects

24 lectures • 04:10:51

Section Overview03:13
What is Object-Oriented Programming?09:54
What are Classes and Objects?03:23
Declaring a Class and Creating Objects18:21
Accessing Class Members17:41
+26 more lectures

Operator Overloading

10 lectures • 02:10:10

Section Overview01:34
What is Operator Overloading?17:06
Overloading the Assignment Operator (copy)19:03
Overloading the Assignment Operator (move)15:07
Overloading Operators as Member Functions17:45
+9 more lectures

Inheritance

14 lectures • 02:23:48

Section Overview01:53
What is Inheritance?05:54
Terminology and Notation05:22
Inheritance vs. Composition04:01
Deriving Classes from Existing Classes14:14
+10 more lectures

Polymorphism

14 lectures • 02:06:14

Section Overview01:22
What is Polymorphism?17:38
Using a Base Class Pointer12:38
Virtual Functions05:21
Virtual Destructors05:13
+12 more lectures

Smart Pointers

9 lectures • 01:13:36

Section Overview01:54
Some Issues with Raw Pointers01:44
What is a Smart Pointer? Ownership and RAII03:48
Unique Pointers16:36
Shared Pointers19:14
+5 more lectures

Exception Handling

10 lectures • 01:11:07

Section Overview02:30
Basic Concepts and a Simple Example: Dividing by Zero16:27
Throwing an Exception from a Function08:21
Handling Multiple Exceptions05:28
Stack Unwinding and How it Works10:26
+6 more lectures

I/O and Streams

22 lectures • 03:01:36

Section Overview02:21
Files, Streams and I/O05:41
Stream Manipulators03:21
Stream Manipulators - boolean08:28
Stream Manipulators - integers12:08
+19 more lectures

The Standard Template Library (STL)

28 lectures • 05:17:55

Section Overview01:42
What is the STL?09:11
Generic Programming with Macros07:19
Generic Programming with Function Templates20:38
Generic Programming with Class Templates14:07
+24 more lectures

Lambda Expressions

10 lectures • 02:02:26

Section Overview02:14
Motivation20:34
Structure of a Lambda Expression04:41
Stateless Lambda Expressions13:22
Stateless Lambda Expressions Demo - Part 114:16
+6 more lectures

Bonus Section - Using Visual Studio Code

13 lectures • 01:36:22

Section Overview02:03
Installing VSCode on Windows04:40
Building and Running C++ Programs with VSCode on Windows14:04
Debugging C++ Programs with VSCode on Windows06:08
Using the Course Source Code with VSCode on Windows08:00
+8 more lectures

Bonus Section - Enumerations

5 lectures • 52:38

Section Overview02:30
Motivation06:10
The Structure of an Enumeration07:37
Unscoped Enumerations23:21
Scoped Enumerations13:00

ARCHIVED - OLD INSTALLATION VIDEOS

11 lectures • 01:01:18

Installation and Setup Overview02:16
Installing the C++ Compiler on Windows04:53
Installing CodeLite on Windows03:06
Configuring CodeLite on Windows12:02
Installing the C++ Compiler on Mac OSX02:01
+6 more lectures

Extra Information - Source code, and other stuff

2 lectures • 00:38

Source Code for all Sections00:33
Course Slides00:05

Description

Which programming language is often seen as a badge of honor among software developers?  C++

Which programming language can you learn that when added to your resume,  will often get you a job interview?  C++ 

Which programming language is routinely ranked in the top 5 programming languages by popularity, and been consistently in the top 10 for close to 20 years?  C++

Why you should learn C++

Much, if not most of the software written today is still written in C++ and this has been the case for many, many years. 

Not only is C++ popular, but it is also a very relevant language. If you go to GitHub you will see that there are a huge number of active C++ repositories and C++ is also extremely active on stack overflow.

There are many, many leading software titles written entirely or partly in C++. These include the Windows, Linux, and Mac OSX operating systems!

Many of the Adobe products such as Photoshop and Illustrator,  the MySQL and MongoDB database engines, and many many more are written in C++.

Leading tech companies use C++ for many of their products and internal research and development. These include Amazon, Apple, Microsoft, PayPal, Google, Facebook, Oracle, and many more.

Can you see how learning C++ will open up more career opportunities for you?

If more professional companies are using C++, it stands to reason that there is going to be more of a demand for C++ programmers.

But the main reason programmers should probably learn C++  is because it is so powerful!

What do I mean by powerful?

C++ is super fast and is a general-purpose programming language that supports both procedure and object-oriented programming making it very flexible.

It can scale easily. And it can be portable as well.

C++ can do many things that other languages just can't.

That's why nearly every major language has a way to interface with code written in C++.

Since C++ has influenced so many languages, if you know C++ you'll likely see elements from C++ in new languages you learn.

How can a beginner learn C++?

Find a good course, taught by an instructor with many years of experience in C++ is critical, as is the need for the instructor to have the necessary skills to be able to teach you the language.

Frank Mitropolous, the instructor in this course has been using C++ for over 2 decades and has taught students in both university courses and industry training courses.  He even worked on a C++ compiler development project while he was in the industry.

So not only will you be learning C++ from an expert C++ programmer, but you'll also be taught by an instructor who has successfully taught at university level for many years.

As a result, you can take this course with confidence, knowing that you will learn C++ the right way, and in the shortest possible timeframe.

Which version of C++ should I learn?

C++ has had many version releases and updates over the years.  It's a sad fact that most C++ courses do not teach Modern C++, but focus on old, obsolete versions of C++.

Frank teaches you Modern C++ (specifically C++ 14 and C++17).  

Learn C++ the right way, with Modern C++, as taught by Frank in this course.

What about C++20? Don't I need to learn about that as well?

This course currently covers C++14 and C++17 but is still valid if you ultimately want to learn C++20. 

C++20 is new and the reality is that C++20 compilers and tools are not yet ready for prime time and the industry is using mainly C++14.    So it's not really of any benefit for you to learn C++20 right now when the industry is not using it. 

It's going to take many, many years for the industry to migrate to C++20 and that means jobs for C++20 are not going to be around for quite some time.

What is available right now, are tons of jobs for Modern C++ developers, and you will obtain those skills in this course.

It's our sincere advice to focus on learning Modern C++ and not get too hung up on the latest and greatest versions of C++.

And even if you really do want to learn C++20,  the new features in C++20 are mostly advanced features that require understanding the foundations of Modern C++.

If you don't learn the basics, you won't master any version of C++.

Learning the foundations of Modern C++ should be your priority, which you will learn in this course!

Is C++ difficult to learn?

With all the power and flexibility of C++ comes complexity.

There is no question that C++ is one of the most complex programming languages out there.

But with the right instructor and the right training, you really can get up to speed with C++ quickly, and that's what this course is all about.

What will I learn in this course?

The course assumes no previous experience with C++ (or even programming in general), and you will end up with the skills to create your own programs in C++.

Key topics covered include.

* Looping with while, do/while for, range-based for statements and recursion
* Performing calculations and displaying results
* Functions
* Pointers
* Using existing classes and creating objects
* Creating your own classes
* Using Basic Standard Template Library classes such as Vector
* Constructors and Destructors
* Copy and Move semantics including Copy constructors, Move constructors, and copy and move assignment 
* How to overload operators
* Using inheritance and class hierarchies
* Using Polymorphic functions and dynamic binding 
* Using smart pointers
* Using stream I/O
* An introduction to the C++ STL
* An introduction to Exception Handling
* And much more.


How is this C++ course different from other courses?

You will learn Modern C++, for one.  Many, perhaps most other courses on Udemy teach you old, obsolete versions of C++.  If you are going to learn C++, it's imperative that you learn the Modern version to maximize your career opportunities and to ensure your skills are up to date.

The course format includes theory and concepts which are then reinforced with live code examples. Often the C++ debugger is used to step through code and analyze variables to better understand the behavior of C++. The instructor also uses a pen tablet to write on the screen and provide even more visual explanations.

You won't find better C++ training anywhere, and you will struggle to find someone with as much industry and training experience as your instructor Frank has.

What do I get out of learning C++?

More career options for one!  C++ is one of the most popular programming languages used in games development.    It's also heavily used in embedded applications.  Your investment in time in learning C++ will reward you time and time again with more pay, and more opportunities, and frankly, more fun!

Are you ready to get started?

If you are ready to get that first paid programming job or to move up to a more senior programming position, then this course is for you!

Your new job or consulting opportunity awaits!  

Why not get started today?

Click the Signup button to sign up for the course!

Who this course is for:

  • This course is perfect for absolute beginners with no previous coding experience, or anyone wanting to add C++ to their existing skillset.
  • Anyone looking to increase career options by learning one the most in-demand programming languages.

This course includes:

  • 46 hours on-demand video
  • 3 articles
  • 75 downloadable resources
  • Access on mobile and TV
  • Full lifetime access
  • Certificate of completion

Instructors

Tim Buchalka's Learn Programming Academy

Dr. Frank Mitropoulos

Students also download

Explore related courses to expand your learning journey.