Mô tả

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!

Bạn sẽ học được gì

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

Yêu cầu

  • Access to a computer running Windows, Mac OS X or Linux

Nội dung khoá học

26 sections

Introduction

5 lectures
About the Course
03:39
Why Learn C++?
05:00
Modern C++ and the C++ Standard
02:58
How does all this work?
08:13
FAQ -- Please Read!
00:10

Installation and Setup

16 lectures
Installation and Setup Overview
02:53
Installing the C++ Compiler on Windows
07:06
Installing CodeLite on Windows
03:48
Configuring CodeLite on Windows
22:40
Installing the C++ Compiler on Mac OSX
02:59
Installing CodeLite on Mac OSX
04:33
Configuring CodeLite on Mac OSX
15:05
Using the Command-Line interface
01:32
Installing CodeLite on Ubuntu Linux
06:27
Configuring CodeLite on Ubuntu Linux
17:42
Creating a Default CodeLite Project Template (All Versions)
07:45
Using the Command-Line Interface on Windows
09:43
Using the Command-Line Interface on Mac OSX
07:49
Using the Command-Line Interface on Linux (Ubuntu)
08:55
Using a Web-based C++ Compiler
03:22
Using the Included Source Code Course Resources
05:08

Curriculum Overview

3 lectures
Curriculum Overview
06:58
Overview of the Section Challenge Exercises
01:29
Overview of the Section Quizzes
01:06

Getting Started

12 lectures
Section Overview
00:58
An Overview of the CodeLite Interface
21:35
Writing our first program
08:23
Building our first program
12:33
What are Compiler Errors?
09:07
What are Compiler Warnings?
03:51
What are Linker Errors?
04:07
What are Runtime Errors?
00:41
What are Logic Errors?
01:49
Section Challenge
01:21
Section Challenge - Solution
05:09
Section 4 Quiz
10 questions

Structure of a C++ Program

11 lectures
Section Overview
00:56
Overview of the Structure of a C++ Program
04:20
#include Preprocessor Directive
02:11
Comments
07:29
The main() function
03:05
Namespaces
03:56
Basic Input and Output (I/O) using cin and cout
20:39
Using cout and the insertion operator to say Hi to Frank
1 question
Using cout and the insertion operator
1 question
Using cin and the extraction operator
1 question
Section 5 Quiz
10 questions

Variables and Constants

12 lectures
Section Overview
01:10
What is a variable?
03:08
Declaring and Initializing Variables
14:04
Declaring and Initializing Variables
1 question
Global Variables
03:23
C++ Built-in Primitive Types
15:59
What is the Size of a Variable (sizeof)
06:52
What is a Constant?
05:03
Declaring and Using Constants
18:26
Section Challenge
01:50
Section Challenge - Solution
03:08
Section 06 Quiz
10 questions

Arrays and Vectors

12 lectures
Section Overview
01:07
What is an Array?
04:40
Declaring and Initializing Arrays
02:56
Accessing and Modifying Array Elements
14:13
Declaring, Initializing and Accessing an Array
1 question
Multidimensional Arrays
03:11
Declaring and Initializing Vectors
06:26
Accessing and Modifying Vector Elements
15:29
Declaring, Initializing and Accessing Vectors
1 question
Section Challenge
02:07
Section Challenge - Solution
06:03
Section 07 Quiz
10 questions

Statements and Operators

18 lectures
Section Overview
02:02
Expressions and Statements
03:20
Using Operators
01:58
The Assignment Operator
12:31
Arithmetic Operators
14:55
Using the Assignment Operator
1 question
Using the Arithmetic Operators
1 question
Increment and Decrement Operators
13:11
Mixed Expressions and Conversions
12:56
Testing for Equality
09:04
Relational Operators
04:17
Logical Operators
15:48
Compound Assignment Operators
02:15
Operator Precedence
03:48
Logical Operators and Operator Precedence - Can you work?
1 question
Section Challenge
02:30
Section Challenge - Solution
09:51
Section 08 Quiz
10 questions

Controlling Program Flow

27 lectures
Section Overview
03:06
if Statement
18:08
If Statement - Can you Drive?
1 question
if else Statement
05:48
If-Else Statement - Can you Drive?
1 question
Nested if Statements
22:04
Nested If Statements - Can you Drive?
1 question
switch-case Statement
20:14
Switch Statement - Day of the Week
1 question
Conditional Operator
10:37
Looping
03:12
for Loop
22:08
For loop - Sum of Odd Integers
1 question
range-based for Loop
14:59
Using the range-based for loop
1 question
while Loop
16:39
While loop exercise
1 question
do while Loop
13:46
Do-while loop exercise
1 question
continue and break
02:33
Infinite Loops
03:17
Nested Loops
19:47
Nested Loops - Sum of the Product of all Pairs of Vector Elements
1 question
Section Challenge
06:09
Section Challenge - Solution Part 1
14:47
Section Challenge - Solution Part 2
10:40
​Section 09 Quiz
10 questions

Characters and Strings

13 lectures
Section Overview
01:54
Character Functions
02:30
C-Style Strings
07:45
Working with C-style Strings
13:45
Using C-style Strings
1 question
C++ Strings
15:28
Working with C++ Strings
16:45
Using C++ Strings - Exercise 1
1 question
Using C++ Strings - Exercise 2
1 question
Section Challenge
06:48
Section Challenge - Solution
13:15
​Section 10 Quiz
10 questions
Challenge Assignment - Letter Pyramid
1 question

Functions

24 lectures
Section Overview
02:31
What is a Function?
18:22
Using Functions from the cmath Library
1 question
Function Definition
17:00
Function Prototypes
10:55
Function Parameters and the return Statement
14:52
Functions and Prototypes - Converting Temperatures
1 question
Default Argument Values
13:08
Using Default Argument Values - Grocery List
1 question
Overloading Functions
10:50
Overloading Functions - Calculating Area
1 question
Passing Arrays to Functions
13:33
Passing Arrays to Functions - Print a Guest List
1 question
Pass by Reference
13:23
Using Pass by Reference - Print a Guest List
1 question
Scope Rules
12:09
How do Function Calls Work?
11:23
inline Functions
01:31
Recursive Functions
13:18
Implementing a Recursive Function - Sum of Digits
1 question
Implementing a Recursive Function - Save a Penny
1 question
Section Challenge
02:25
Section Challenge-Solution
16:01
Section 11 Quiz
10 questions

Pointers and References

24 lectures
Section Overview
03:14
What is a Pointer?
02:20
Declaring Pointers
03:02
Accessing the Pointer Address and Storing Address in a Pointer
16:33
Dereferencing a Pointer
13:13
Dynamic Memory Allocation
14:03
The Relationship Between Arrays and Pointers
11:37
Pointer Arithmetic
15:06
Swap Values using Pointers
1 question
Const and Pointers
02:34
Passing Pointers to Functions
18:30
Returning a Pointer from a Function
12:11
Passing a Pointer to a Function
1 question
Find the Maximum Element in an Array using Pointers
1 question
Reverse an Array using Pointers (Challenging!)
1 question
Reverse a std::string using Pointers (Challenging!)
1 question
Potential Pointer Pitfalls
04:10
What is a Reference?
08:50
L-values and R-values
04:03
Using the CodeLite IDE Debugger
10:26
Section Recap
03:31
Section Challenge
04:54
Section Challenge - Solution
09:54
​Section 12 Quiz
10 questions

OOP - Classes and Objects

31 lectures
Section Overview
03:13
What is Object-Oriented Programming?
09:54
What are Classes and Objects?
03:23
Declaring a Class and Creating Objects
18:21
Accessing Class Members
17:41
Creating and Accessing Objects
1 question
public and private
07:57
Implementing Member Methods
20:25
Adding public methods that access private class attributes
1 question
Add more public methods to an existing class
1 question
Constructors and Destructors
10:28
The Default Constructor
11:40
Add a Default Constructor to an Existing Class
1 question
Overloading Constructors
02:50
Add an Overloaded Constructor to an Existing Class
1 question
Constructor Initialization lists
11:35
Delegating Constructors
09:01
Constructor Parameters and Default Values
08:28
Copy Constructor
17:49
Add a Copy Constructor to an Existing Class
1 question
Shallow Copying with the Copy Constructor
14:30
Deep Copying with the Copy Constructor
08:53
Move Constructors
17:06
The 'this' Pointer
02:32
Using const with Classes
11:00
Static Class Members
14:23
Structs vs Classes
02:18
Friends of a class
03:32
Section Challenge
12:52
Section Challenge - Solution
11:00
​Section 13 Quiz
10 questions

Operator Overloading

14 lectures
Section Overview
01: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 Functions
17:45
Operator Overloading as Member Functions
1 question
Overloading Operators as Global Functions
14:33
Operator Overloading as Non-member Functions
1 question
Overloading the Stream Insertion and Extraction Operators
10:46
Operator Overloading the Stream Insertion Operator
1 question
Section Challenge
13:22
Section Challenge - Solution 1
13:25
Section Challenge - Solution 2
07:29
Section 14 Quiz
10 questions

Inheritance

15 lectures
Section Overview
01:53
What is Inheritance?
05:54
Terminology and Notation
05:22
Inheritance vs. Composition
04:01
Deriving Classes from Existing Classes
14:14
Protected Members and Class Access
11:59
Constructors and Destructors
17:31
Passing Arguments to Base Class Constructors
09:27
Copy/Move Constructors and Operator = with Derived Classes
16:35
Redefining Base Class Methods
15:50
Multiple Inheritance
01:41
The Updated Accounts Example
19:48
Section Challenge
05:02
Section Challenge - Solution
14:31
​Section 15 Quiz
10 questions

Polymorphism

17 lectures
Section Overview
01:22
What is Polymorphism?
17:38
Using a Base Class Pointer
12:38
Virtual Functions
05:21
Virtual Destructors
05:13
Using the Override Specifier
07:06
Inheritance - Roar Lion, Roar!
1 question
Inheritance - Bark Dog, Bark!
1 question
Using the Final Specifier
01:39
Using Base Class References
07:17
Pure Virtual Functions and Abstract Classes
16:27
Abstract Classes as Interfaces
18:05
Section Challenge
04:21
Section Challenge - Solution Part 1
11:33
Section Challenge - Solution Part 2
10:46
Section Challenge - Final Solution
06:48
Section 16 Quiz
10 questions

Smart Pointers

10 lectures
Section Overview
01:54
Some Issues with Raw Pointers
01:44
What is a Smart Pointer? Ownership and RAII
03:48
Unique Pointers
16:36
Shared Pointers
19:14
Weak Pointers
06:11
Custom Deleters
08:12
Section Challenge 1
09:30
Section Challenge 1 - Solution
06:27
Section 17 Quiz
10 questions

Exception Handling

11 lectures
Section Overview
02:30
Basic Concepts and a Simple Example: Dividing by Zero
16:27
Throwing an Exception from a Function
08:21
Handling Multiple Exceptions
05:28
Stack Unwinding and How it Works
10:26
Creating User-Defined Exception Classes
06:53
Class Level Exceptions
07:01
The C++ std::exception Class Hierarchy
04:11
Section Challenge
04:16
Section Challenge - Solution
05:34
Section 18 Quiz
10 questions

I/O and Streams

24 lectures
Section Overview
02:21
Files, Streams and I/O
05:41
Stream Manipulators
03:21
Stream Manipulators - boolean
08:28
Stream Manipulators - integers
12:08
Stream Manipulators - floating point
15:21
Stream Manipulators - align and fill
14:09
Section Challenge 1
11:00
Section Challenge 1 - Solution
14:11
Reading from a Text File
11:35
Reading from a Text File - Live Demo - Part 1
14:05
Reading from a Text File - Live Demo - Part 2
05:40
Reading a text file
1 question
Section Challenge 2
03:08
Section Challenge 2 - Solution
07:17
Section Challenge 3
03:08
Section Challenge 3 - Solution
05:24
Writing to a Text File
09:33
Writing to a Text File - Live Demo
07:31
Section Challenge 4
02:29
Section Challenge 4 - Solution
04:03
Using String Streams
14:50
File locations with some Popular IDEs
06:13
Section 19 Quiz
10 questions

The Standard Template Library (STL)

29 lectures
Section Overview
01:42
What is the STL?
09:11
Generic Programming with Macros
07:19
Generic Programming with Function Templates
20:38
Generic Programming with Class Templates
14:07
Creating a Generic Array Template Class
13:56
Introduction to STL Containers
04:41
Introduction to STL Iterators
10:47
Introduction to Iterators - Demo
16:01
Introduction to STL Algorithms
10:46
Introduction to Algorithms - Demo
17:08
Sequence Container - Array
22:56
Sequence Containers - Vector
24:56
Sequence Containers - Deque
14:11
Section Challenge 1
04:46
Section Challenge 1 - Solution
03:35
Sequence Containers - List and Forward List
22:06
Section Challenge 2
11:21
Section Challenge 2 - Solution
07:29
Associative Containers - Sets
15:50
Associative Containers - Maps
16:55
Section Challenge 3
08:15
Section Challenge 3 - Solution
06:04
Container Adaptors - Stack
09:27
Container Adaptors - Queue
07:39
Section Challenge 4
04:08
Section Challenge 4 - Solution
03:57
Container Adaptors - Priority Queue
08:04
Section 20 Quiz
10 questions

Lambda Expressions

11 lectures
Section Overview
02:14
Motivation
20:34
Structure of a Lambda Expression
04:41
Stateless Lambda Expressions
13:22
Stateless Lambda Expressions Demo - Part 1
14:16
Stateless Lambda Expressions Demo - Part 2
13:05
Stateful Lambda Expressions
06:21
Stateful Lambda Expressions Demo - Part1
12:38
Stateful Lambda Expressions Demo - Part2
15:26
Lambdas and the STL
19:49
Section 21 Quiz
15 questions

Bonus Section - Using Visual Studio Code

13 lectures
Section Overview
02:03
Installing VSCode on Windows
04:40
Building and Running C++ Programs with VSCode on Windows
14:04
Debugging C++ Programs with VSCode on Windows
06:08
Using the Course Source Code with VSCode on Windows
08:00
Installing VSCode on Mac OSX
05:45
Building and Running C++ Programs with VSCode on Mac OSX
11:33
Debugging C++ Programs with VSCode on Mac
05:48
Using the Course Source Code with VSCode on Mac
08:47
Installing VSCode on Linux
04:17
Building and Running C++ Programs with VSCode on Linux
11:24
Debugging C++ Programs with VSCode on Linux
05:23
Using the Course Source Code with VSCode on Linux
08:30

Bonus Section - Enumerations

5 lectures
Section Overview
02:30
Motivation
06:10
The Structure of an Enumeration
07:37
Unscoped Enumerations
23:21
Scoped Enumerations
13:00

ARCHIVED - OLD INSTALLATION VIDEOS

11 lectures
Installation and Setup Overview
02:16
Installing the C++ Compiler on Windows
04:53
Installing CodeLite on Windows
03:06
Configuring CodeLite on Windows
12:02
Installing the C++ Compiler on Mac OSX
02:01
Installing CodeLite on Mac OSX
01:56
Configuring CodeLite on Mac OSX
10:29
Installing CodeLite on Ubuntu Linux
04:04
Configuring CodeLite on Ubuntu Linux
10:26
Creating a Default CodeLite Project Template (All Versions)
06:21
Using the Included Source Code Course Resources
03:44

Extra Information - Source code, and other stuff

1 lectures
Source Code for all Sections
00:33

Bonus Section - including Slides

1 lectures
Bonus - Course Slides and Free Programming EBook
02:52

Đánh giá của học viên

Chưa có đánh giá
Course Rating
5
0%
4
0%
3
0%
2
0%
1
0%

Bình luận khách hàng

Viết Bình Luận

Bạn đánh giá khoá học này thế nào?

image

Đăng ký get khoá học Udemy - Unica - Gitiho giá chỉ 50k!

Get khoá học giá rẻ ngay trước khi bị fix.