Learn C++ not by watching slides but by practicing right alongside the instructor. The best way to learn is “to do”, and this video series is almost entirely hands-on. In addition to becoming proficient in C++, you will understand related topics such as Object-Oriented Programming (OOP) and memory management. There are 11 clips in this video series:
C++ Overview. This first video in the C++ Fundamental series provides a short introduction to the world of programming, and then highlights the properties of C++ that make it stand apart from other languages such as high performance, low level access to memory, and portability. We cover C++ use cases including developing games, building embedded systems, working in quantitative finance, building device drivers, enabling high-performance computing, and more. We will show you how to set up the C++ environment on any operating system. We will be using Xcode and the Microsoft Visual Studio Integrated Development Environment (IDE). By the end of this first clip, you will have created your “Hello World” program.
- Variables, Types, Operators, and Pointers Part I. This second video in the C++ Fundamental series explores variables, types, operators, and pointers. This is all hands-on, so follow along and by the end of this clip you will have developed a powerful program.
- Control Flow. This third video in the C++ Fundamental series covers control flow including branching and loops. Branching is creating multiple paths in our program depending upon decision conditions. This is all hands-on, so follow along and create a series of IF-THEN and SWITCH statements. For loops, we will practice creating FOR and WHILE loops.
- Functions. This fourth video in the C++ Fundamental series covers two categories of functions: functions as chunks of code and mathematical functions. You will practice creating both types of functions, as well as experience firsthand a function’s side effect. A side effect is when a function does its intended purpose, but also something extra such as printing something on the screen in addition to performing a mathematical calculation.
- Applications. This fifth video in the C++ Fundamental series allows you to create a number of applications in C++. You will practice the techniques from the previous clips and also learn new techniques such as various ways of requesting input from the user. You will develop several games, including Fizzball, Number Guessing, and Magic 8 Ball.
- Variables, Types, Operators, and Pointers Part II. This sixth video in the C++ Fundamental series explores more advanced functionality available in C++ for variables, types, operators, and pointers. This is all hands-on, so you will be practicing the use of overflow, different types of int, double, structures, unions, references, and matrices (two-dimensional arrays). We also introduce C++ libraries and namespaces.
- Object-Oriented Programming. This seventh video in the C++ Fundamental series introduces Object-Oriented Programming (OOP). This is a very important topic, as OOP is what initially set apart C++ from C. We cover the benefits of OOP and share how C++ differs from other OOP. You will practice a number of OOP techniques including access restriction, static members, inheritance, and polymorphism.
- Template Programming. This eight video in the C++ Fundamental series covers template programming, a key feature of C++. The Standard Template Library (STL), a huge collection of available libraries, is explained, along with some of the most important tools it provides to developers. Understand the concepts of generic programming and practice creating pairs, tuples, and vectors. Create your own template classes and write code which illustrates the benefits of STL.
- Memory Management. This ninth video in the C++ Fundamental series covers memory management and smart pointers. Memory management is one of the most important concepts a C++ programmer needs to have in mind while programming. Learn Memory Management best practices and also reduce the chances of memory leaks.
- Compilation and Linking. This tenth video in the C++ Fundamental series covers compilation and linking. Learn about each of the compilation steps including preprocessing.
- C++ Advanced Topics. This eleventh video in the C++ Fundamental series covers more advanced topics in C++, such as Lambda functions, multiple inheritance, operator overloading, and exception handling. We conclude this video series with a discussion on resources available to continue your C++ education, including Hackerrank, gosu, and books by Bjarne Stroustrup.