We may earn an affiliate commission when you visit our partners.
Course image
Udemy logo

Beginning C++ Programming - From Beginner to Beyond

Tim Buchalka's Learn Programming Academy and Dr. Frank Mitropoulos

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++ 

Read more

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.

Enroll now

What's inside

Learning objectives

  • 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

Syllabus

In this section we will provide an introduction to the course, instrctor, and C++

In this video we provide an introduction to the course and instructor.

Read more

In this video we look at why it is so valuable to learn C++.

In this video we look at Modern C++ and the C++ Standard

In this video we take a conceptual look at the steps necessary to create and execute a C++ program.

Please read the provided Frequently Asked Questions document for this course.

In this section we go over the steps to install and configure the C++ compiler on various platforms.

In this video we go over the various installation option in this section

In this video we install the MinGW C++ compiler on Windows

In this video we install the CodeLite IDE on Windows

In this video we configure the CodeLite IDE on Windows

In this video we install the C++ compiler on Mac OSX

In this video we install the CodeLite IDE on Mac OSX

In this video we configure the CodeLite IDE on Mac OSX

In this video we discuss using the command-line interface to compile and run C++ programs.

In this video we install the CodeLite IDE on Ubuntu Linux

In this video we configure the CodeLite IDE on Ununtu Linux

In this video we create a default CodeLite Project Template so we can use it for new projects

In this video we describe how to use a simple text editor and the command-line to compile and run C++ programs on Windows.

In this video we describe how to use a simple text editor and the command-line to compile and run C++ programs on Mac OSX.

In this video we describe how to use a simple text editor and the command-line to compile and run C++ programs on Ubuntu Linux.

In this video we look at using a web-based C++ compiler.

In this video we go over what is provided in the course resources and how to use the source code in your own projects.

Curriculum Overview

In this video we will go over the course curriculum so that you know exactly what this course covers and at what level.

In this video we will go over the section challenge exercises and their purpose.

In this video we'll discuss the section quizzes and their role in the course.

Getting Started

In this video we provide an overview of this section.

In this video we look at the CodeLite IDE Interface.

In this video we will will write our first program using CodeLite IDE.

In this video we will compile and build our first program using CodeLite IDE.

What are Compiler Errors?

In this video will discuss what compiler warnings are and what they mean to the programmer.

In this video we discuss linker errors and what causes them.

In this video we discuss run-time errors and give examples of some

In this video we discuss logic errors and give a simple example.

Section Challenge
Section Challenge - Solution

Section 4 Quiz - Getting Started

Structure of a C++ Program

In this video we will look at the basic structure of a simple C++ program.

In this video we will look at the #include pre-processor directive.

In this video we will look at the 2 types of C++ comments and discuss how to comment code.

In this video we will discuss the main function.

In this video we will discuss the basics of namespaces and what they mean to a program.

In this video we will learn more about console input and output using cin and cout.

Using cout and the insertion operator to say Hi to Frank
Using cout and the insertion operator
Using cin and the extraction operator

Section 5 Quiz - Structure of a C++ Program

Variables and Constants

In this video we discuss what variables are and why they are used.

In this video we show how to declare and initialize variables.

Declaring and Initializing Variables

In this video we describe global variables and their advantages and disadvantages.

In this video we discuss compiler errors and introduce some errors into out first program to see how to correct them.

In this video we see how we can use the sizeof operator to determine the size of a variable.

In this video we discuss what constants are and why they are used.

In this video we will write a program using literal constants then refactor it to use declared constants.

Section 06 Quiz - Variables and Constants

Arrays and Vectors

In this video we discuss what an array is in C++.

In this video we learn how to declare and initialize C++ arrays.

In this video we learn how to access individual array elements.

Declaring, Initializing and Accessing an Array

In this video we create multi-dimensional arrays and learn how to access their elements.

In this video will learn about vectors and see how to declare and initialize them.

In this video we learn how to access individual vector elements.

Declaring, Initializing and Accessing Vectors

Section 07 Quiz - Arrays and Vectors

Statements and Operators

In this video we learn what expressions and statements are in C++.

In this video we discuss the C++ operators.

In this video we learn about the assignment operator.

In this video we see how we can use the basic math operators +,-,*,/, and %

Using the Assignment Operator
Using the Arithmetic Operators

In this video we learn how to use the C++ increment (++) and decrement (--) operators.

In this video we learn how C++ handles expression when the operands of are different types.

In this video we learn how to compare C++ elements in C++ using the == operator.

In this video we learn how to use the C++ relational operators (<, <=, >, >=, and !)

In this video we learn how to use the C++ logical operators (&&, !!, and !)

In this video we learn how to use the C++ compound assignment operators (op=).

In this video we'll learn all about operator precedence in C++ which allows us control the order how expressions are evaluated.

Logical Operators and Operator Precedence - Can you work?

Section 08 Quiz - Statements and Operators

Controlling Program Flow

In this video we learn about the C++ statements and how to make decisions.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Covers C++, which is found in a wide range of software products
Provides instruction in Modern C++
Offers a strong foundation for learning C++ for beginners
Taught by an instructor with over 20 years of experience
The instructor has taught C++ at university level for many years
This course is designed to help you learn C++ quickly

Save this course

Save Beginning C++ Programming - From Beginner to Beyond to your list so you can find it easily later:
Save

Reviews summary

Well-explained c++ course

According to students, this course is very detailed and well-explained with well-made challenges that test learners' knowledge after each chapter.
Testing comprehension
"The challenges at the end of every chapter are well made and letting you test your learned knowledge."
In-depth explanations
"This course is very detailed and well explained."

Career center

Learners who complete Beginning C++ Programming - From Beginner to Beyond will develop knowledge and skills that may be useful to these careers:
Game Programmer
As a Game Programmer, your core tasks will include creating the core logic for games. This logic encompasses player interaction, physics, AI, UI, and graphics. Understanding C++ will be vital as this language is widely used in game development because of its speed and efficiency. This course will help you build a foundation for your career as a Game Programmer by providing a deep dive into Modern C++.
Embedded Software Engineer
An Embedded Software Engineer develops software for embedded systems. This may include autonomous systems, telecommunication systems, and medical devices. C++ is widely used in embedded software because of its ability to control hardware directly, and its ability to scale and be portable makes it an excellent choice for embedded systems. This course will help you build a foundation for your career as an Embedded Software Engineer by providing a deep dive into Modern C++.
Software Engineer
A Software Engineer with experience in C++ should expect to work on the back-end and core functionality of programs and systems. Experience in C++ will be valuable because of its speed and flexibility. Moreover, its ability to scale and be portable makes it an excellent choice for large-scale applications. This course will help you build a foundation for your career as a Software Engineer by providing a deep dive into Modern C++.
Desktop Application Developer
As a Desktop Application Developer, your core tasks will include planning, designing, and developing desktop applications for various platforms. Understanding C++ will be relevant because it can be used to build desktop applications across multiple platforms. This course will help you build a foundation for your career as a Desktop Application Developer by providing a deep dive into Modern C++.
Systems Programmer
A Systems Programmer is responsible for developing and maintaining the core software components of a computer system. C++ is widely used in systems programming for its speed and control over hardware, and its ability to scale helps with large-scale systems. This course will help build a foundation for your career as a Systems Programmer by providing a deep dive into Modern C++.
Mobile Application Developer
As a Mobile Application Developer, your core tasks will include planning, designing, and developing mobile applications for various platforms. Understanding C++ will help you build high-performance native mobile applications. This course may be useful by providing you with a deep dive into Modern C++.
Web Developer
As a Web Developer, your core tasks will include planning, designing, and developing websites and web applications. Understanding C++ may be helpful as it is the language of choice for high-performance web applications, and its ability to scale helps with large-scale web applications. This course may be useful by providing you with a deep dive into Modern C++.
Cloud Engineer
A Cloud Engineer is responsible for the design, implementation, and management of cloud computing systems. Understanding C++ may be helpful as it is used to develop cloud-native applications that can scale and handle large workloads. This course may be useful by providing you with a deep dive into Modern C++.
Database Administrator
A Database Administrator is responsible for the installation, configuration, maintenance, and performance of databases. Understanding C++ may be helpful because of its ability to interact with databases directly, and its ability to scale helps with large-scale databases. This course may be useful by providing you with a deep dive into Modern C++.
Data Scientist
A Data Scientist uses scientific methods, processes, algorithms, and systems to extract knowledge and insights from data in various forms, both structured and unstructured. Understanding C++ may be helpful as it is used in data science for computationally intensive tasks and can handle large datasets. This course may be useful by providing you with a deep dive into Modern C++.
IT Support Specialist
An IT Support Specialist provides technical support to end-users in an organization. Understanding C++ may be helpful as IT support specialists are often required to troubleshoot and diagnose complex technical issues using programming knowledge and tools. This course may be useful as it teaches the fundamentals of C++.
Software Tester
A Software Tester designs and executes test cases to evaluate the quality of software products. Understanding C++ will be helpful because software testers are often required to write automated test scripts and analyze software behavior. This course may be useful by providing you with a deep dive into Modern C++.
Technical Writer
A Technical Writer creates and maintains technical documentation, such as user manuals, technical reports, and white papers. Understanding C++ will be helpful because technical writers are often required to explain complex technical concepts to non-technical audiences. This course may be useful by providing you with a deep dive into Modern C++.
Computer Science Instructor
A Computer Science Instructor teaches computer science principles and programming languages to students at various levels. Understanding C++ will be helpful as it is a widely-used programming language in computer science education. This course may be useful by providing you with a deep dive into Modern C++.
Quantitative Analyst
A Quantitative Analyst uses mathematical and statistical models to analyze financial data and make investment decisions. Understanding C++ may be helpful as it is used in quantitative finance for computationally intensive tasks such as risk modeling and portfolio optimization. This course may be useful by providing you with a deep dive into Modern C++.

Reading list

We've selected seven 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 Beginning C++ Programming - From Beginner to Beyond.
Comprehensive guide to the C++ programming language, covering all the major features of the language, including object-oriented programming, templates, and the Standard Template Library.
Provides a detailed and practical guide to best practices in C++ programming, including topics such as resource management, error handling, and performance optimization.
Provides a comprehensive guide to templates in C++, covering all aspects of template design and implementation.
Provides a detailed introduction to the C++ Standard Library, including all the major components such as the containers, algorithms, and iterators.

Share

Help others find this course page by sharing it with your friends and followers:
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