We may earn an affiliate commission when you visit our partners.
Arkadiusz Włodarczyk

Save your precious time by buying this course. You will learn how to program in C++ in a fast and easy way.  

The total length of the course is over 17 hours. You will learn theory and you will also gain lots of practice. During the course we will write many programs that will make you a great programmer.

All of this is presented by a young man who shares his knowledge, so the language used can be easily understood by everyone. 

Read more

Save your precious time by buying this course. You will learn how to program in C++ in a fast and easy way.  

The total length of the course is over 17 hours. You will learn theory and you will also gain lots of practice. During the course we will write many programs that will make you a great programmer.

All of this is presented by a young man who shares his knowledge, so the language used can be easily understood by everyone. 

The course is designed for those who don't have any prior knowledge about programming. It doesn't matter if you have never written any programs or you have no idea about programming... After my course all of this will change. You will bust the myth that programming is a difficult thing only for the few.    

After this course you will be able to use the advanced components of the C++ language. 

I believe that everyone has the ability to develop software if they are taught properly. Including you. I'm going to give you the context of each new concept I teach you. After my course you will finally understand everything that you code.

Over 320,000 students bought my courses and all of them are happy. You will also be satisfied with this course. If you do not like the course, remember that within 30 days you can request a full refund. I guarantee you satisfaction. 

If you have any questions regarding the topics covered in this C++ course, please feel free to ask. I'm always happy to help those who want to learn.

Please check out the free lessons first. See for yourself the great quality of my course and enjoy it.  

JOIN NOW and become Expert in C++

Enroll now

What's inside

Learning objectives

  • How to use c++ language in action
  • What is compiler / ide / variables / types of variables etc.
  • How to work with files - fstream library (i/o operation on files)
  • Operators - arithmetic, assigment, logical, bitwise
  • Conditions like if / else / switch
  • Arrays / multi-dimensional arrays
  • Loops - for / while / do-while
  • Functions, overloading functions, passing variables to functions etc.
  • Structures
  • Referencers
  • Pointers
  • Dynamic allocation of memory
  • Creating project in ide
  • Classes
  • Object oriented programming
  • Class and function templates
  • Namespaces
  • Exceptions
  • Input / output streams and validation of data
  • Stl: vector
  • Show more
  • Show less

Syllabus

Introduction

Motivational introduction to my course about C++ and info about how to download 100+ exercises regarding C++.

Basics

You will learn what a programming language like C++/IDE and a compiler is. What is C++? 

Read more

If you have a problem compiling your C++ project than look here to find a solution. Some IDE's might be a bit different. You might have also made a few mistakes. Let's try to solve the problem.


- comments
- libraries like iostream
- std namespace
- how to send something to the output (cout)

- int, float, double, string, char, bool 
We learn about address of variable, how to combine string, what are unsigned variables, what are constant variables and when to use them.

What you will know after operators section?

Let's see how you remember conditional statements

We practice the loop, we write a program that calculates the number of digits in the number total, and a program that prints a nicely formatted multiplication table. We learn what nested loops are.


We are getting to know:
- The concept of function call / return values ​​of the function
- Inline function.
We create two simple functions, one that ask user for a name and a function that checks if the data coming from the input is digit.

What "return" keyword does?

How do you solve exercise within Udemy interface?

We learn how to make the program that does not crash if the user enters invalid data. We also make sure that after entering invalid data into our program, user would get informed and asked for the correct data until the data is correct.

Shortcut text version of why we used cin.ignore and cin.clear in last lecture :)

Why do we use cin.ignore and cin.clear.

You will finally understand:

1) why do we use these instruction

2) how to use them

3) when to use them

4) what makes them different

as a bonus I explain getline function, you will understand use cin vs getline.


We learn what the pointer is and how to use it. We learn what the constant pointer is, and the indicator of permanent value. What is pointer that points to another pointer etc.

How to make sure to correctly free memory of dynamically allocated array?

I will show you a common error while freeing memory and how to solve it.

Document describing why pointers are needed, why do we even learn about them?

In this lecture I will explain the things that are the most confusing about pointers

Write a function that takes a list of numbers as an argument and returns the sum of all the positive numbers in the list. The function should ignore any negative numbers or zeros in the list.


- What is the project and how to create it
- Why the main function should return 0 or 1 
- Why the main function takes an int argc, char * argv or []
- what does char * argv [] mean
- How to bring our program from cmd
- How to write all the values ​​of arguments
- How to check the various arguments and respond to one of them
- How should we compare the strings, that are not string type.

- What the structures are
- How to refer to individual elements of the structure
- How to create an array of structural types and refer to the various structural elements in the array using operator "." and "->"

We learn:
- What the class and the object is
- What an instance of class is
- How do the private and public access modifiers are working
- What is a method, and how to create it inside the class
- What the declaration and the definition of class is
- How to separate the definitions from the class declaration in one file and multiple files
- What the range operator "::" is and for what it is used to
- What a constructor is and what it does
- How variables are working with the static modifier
- What the destructor is and when it is called
- How to refer to the content of our instance of classes by using pointers


We learn:
- How to give a default value for the constructor method.
- How are subclasses inheriting from the base class depending on the method of inheritance: public, protected, and private
- In what order constructors and destructors are called while creating objects that are inheriting something
- How to call a constructor using constructor
- Etc. etc.)
We learn about this creating Point and Point2D classes.

Why polymorphism is needed?


- What are templates of classes
- How to define / declare class templates
- How to inherit template class
- How to create a specialized class templates
- How to create a specialization of individual class methods
- How to create a partial specialization of template classes
- How the typedef

What is stream, input and output. We are making ourselves familiar with word stream, input and output.

This lesson covers streams in programming, specifically input and output. It discusses how to transfer information between an input source, such as a keyboard, and a destination, such as a file or monitor.

Your learn how to close and open files and how to check if the filed was opened properly. You also learn how to simply put text into file.

You learn file opening modes (states) and differences between them. We learn how to open file and:

  1. make it readable
  2. make it writeable
  3. being able to add content to it
  4. treat it as binary file (we also learn difference between binary and text file)
  5. keep the content / truncate content after opening

We discuss all stream's error flags and we show how to use them. You will know how to react on unexpected situations that happens during reading from the file like for example assigning string to integer or opening file for writing which had the flag set to only reading (ios::in)

You will know functions like:

  1. fail
  2. good
  3. bad
  4. eof
  5. clear
  6. rdstate

and you will know how to operate on states (failbit, goodbit, badbit, eofbit) using bitwise operators and rdstate function.

You will know how to read whole file using one loop and eof function.

What are and how to use reading position pointer. How to programitically check how many bytes the file has. You will learn and understand functions that reads and sets position of reading pointer.

You will know what is and how to use writing position pointer. You will learn functions seekp and tellp which allows you to retrieve and show where is the writing pointer.

You will learn:

  1. how function getline and ignore works
  2. how to retrieve all lines of text from file at once
  3. how to ignore characters that are not needed
  4. how to extract from file with names and surnames only initials

You will know how read function works. We are creating function that is counting size of file and function that is checking if two binary files are the same. We are training pointers on practical example. We also learn abot memcmp function which is used to compare memory.

You will learn hot to load characters from standard input (cin) and put them into the file. In addition to this you will learn how to add after each letter of string a space or any other character.

You will learn function that allows to peek characters before exracting and you will know how to retrieve information from steam in order to assign variables to the right type of variables.

You learn how to return extracted character back on the stream so it can be read again

You will learn how to save bytes to files and when you should use write function over saving operator (<<)

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Course explains the basics of programming with a focus on C++ syntax
Suitable for beginners who have no or minimal programming experience
Includes hands-on practice through exercises and programming assignments
Introduces advanced C++ topics such as object-oriented programming and exception handling
Instructor provides clear explanations and uses a friendly approach
Offers a 30-day money-back guarantee, providing peace of mind

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Foundational c++ for aspiring programmers

According to students, this course offers an exceptionally clear and structured learning path for individuals with no prior programming experience, guiding them effectively through C++ fundamentals. Learners highlight the instructor's ability to simplify complex concepts like pointers and object-oriented programming. While providing a comprehensive range of topics, from basic syntax to more advanced concepts like templates and exceptions, some reviewers note that the "Expert" claim in the title might be an overstatement regarding depth. The course is praised for its hands-on exercises and quizzes, which help solidify understanding. Furthermore, the instructor's responsiveness and regular course updates are frequently appreciated, demonstrating ongoing commitment to quality.
Earlier sections had minor audio issues, now largely improved.
"The instructor's accent was a bit difficult to understand at times. Also, the older sections had some static in the audio."
"Audio quality improved in newer sections, which is great."
"I found the newer quizzes and revised explanations very helpful... suggesting past issues have been addressed."
Instructor actively supports learners and updates content.
"The instructor is very responsive in the Q&A, which was incredibly helpful. The course is regularly updated..."
"The course has clearly been updated. I found the newer quizzes and revised explanations very helpful."
"The course's syllabus clearly lists numerous sections and quizzes that have been recently updated."
Practical exercises and quizzes reinforce learning effectively.
"I particularly enjoyed the hands-on projects that helped solidify my understanding. The quizzes are also helpful."
"Learned a lot about C++ fundamentals. The explanations for pointers were particularly clear... The quizzes are useful."
"The exercises bundled with the course are a huge plus. Definitely recommend for anyone starting out."
Ideal starting point for those new to programming and C++.
"Fantastic course for anyone new to C++! ...I had no prior programming experience and now feel confident in my C++ skills."
"This course delivered on its promise. I went from knowing nothing to writing my own C++ programs."
"It's a comprehensive overview for a beginner and covers a wide array of topics."
Instructor excels at clarifying complex C++ concepts for beginners.
"The instructor explains concepts clearly and with great examples. I particularly enjoyed the hands-on projects..."
"The instructor makes complex topics simple. The exercises bundled with the course are a huge plus. Definitely recommend..."
"I started with zero knowledge and now understand OOP concepts. The flow is logical and builds up nicely."
Pacing varies, with some parts feeling rushed or too slow.
"Some lectures felt a bit rushed towards the end, especially on topics like templates and exceptions."
"Some parts felt a bit slow, but overall good. Could use more real-world project examples."
"The project section was a bit brief for the scope of the language... felt some parts like dynamic memory allocation needed more practical scenarios."
Course provides breadth, but 'expert' depth is often not met.
"The 'expert' claim might be a stretch; I'd say it gets you to an intermediate level."
"I was hoping for more advanced deep-dives, but it mostly scratches the surface on topics like STL. It's truly a beginner course, not 'expert'."
"While the instructor explains things, the course feels a bit basic and doesn't prepare you for actual professional development. The 'expert' title is misleading."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in C++: From Beginner to Expert with these activities:
Practice C++ coding problems
Regularly practicing coding problems is the best way to master C++.
Show steps
  • Find a problem set or online judge that has C++ problems.
  • Start solving problems regularly.
  • Review your solutions and learn from your mistakes.
Join a C++ study group
Joining a study group can help you learn from others and stay motivated.
Show steps
  • Find a C++ study group in your area or online.
  • Attend the study group meetings regularly.
  • Participate in discussions and ask questions.
Write a blog post or tutorial about C++
Writing a blog post or tutorial can help you solidify your understanding of C++ and share your knowledge with others.
Show steps
  • Come up with a topic for your blog post or tutorial.
  • Write your blog post or tutorial.
  • Publish your blog post or tutorial.
Three other activities
Expand to see all activities and additional details
Show all six activities
Read 'The C++ Programming Language' by Bjarne Stroustrup
This book is the definitive guide to C++ and is highly recommended for anyone who wants to learn the language in depth.
View Programming on Amazon
Show steps
  • Buy or borrow a copy of the book.
  • Read the book carefully and take notes.
  • Try out the code examples in the book.
Build a C++ project
Building a project is a great way to apply your C++ skills and learn how to use the language in a practical setting.
Show steps
  • Come up with an idea for a project.
  • Design and implement your project.
  • Test and debug your project.
Contribute to an open source C++ project
Contributing to open source projects is a great way to learn how to work with others and contribute to the C++ community.
Show steps
  • Find an open source C++ project that you are interested in.
  • Read the project's documentation and contribute code.
  • Review and provide feedback on other people's code.

Career center

Learners who complete C++: From Beginner to Expert will develop knowledge and skills that may be useful to these careers:
Software Engineer
The C++: From Beginner to Expert course provides you with a comprehensive overview of the C++ programming language. This course covers a range of topics that are essential for success as a Software Engineer, including variables, data types, operators, control structures, and functions.
Computer Programmer
The C++: From Beginner to Expert course is an excellent resource for those interested in becoming Computer Programmers. This course covers a range of topics that are essential for success in this role, including variables, data types, operators, control structures, and functions. The course also provides hands-on exercises that allow you to practice your skills.
Software Architect
The C++: From Beginner to Expert course provides a solid foundation in C++ programming, which is essential for success as a Software Architect. This course covers a range of topics that are relevant to software architecture, including design patterns, object-oriented programming, and software engineering.
Software Developer
The C++: From Beginner to Expert course is a comprehensive guide to programming in C++ that can help you to establish a foundation that can lead to success as a Software Developer. This course will build on your theoretical knowledge of C++ and help you to develop the skills needed to use this knowledge to create practical programs and applications.
IT Manager
The C++: From Beginner to Expert course is a comprehensive guide to programming in C++ that can help you to develop the skills needed to manage and lead IT teams. This course covers a range of topics that are essential for success in this role, including project management, software development, and database management.
Game Developer
The C++: From Beginner to Expert course can be useful for those interested in becoming Game Developers. With its coverage of computer graphics, game physics, and game design, this course can help you to develop the skills needed to create engaging and immersive games.
Web Developer
The C++: From Beginner to Expert course will provide you with the skills to work with files, functions, classes, and templates in C++. These skills are relevant to web development and can help you move into the field as a Web Developer. This course covers a range of topics that are relevant to web development, including working with multiple files, functions, classes, and templates.
Computer Scientist
The C++: From Beginner to Expert course is a comprehensive guide to programming in C++ that can help you to build a foundation for a career as a Computer Scientist. This course will help you to develop the skills needed to write efficient and effective code in C++.
Network Engineer
The C++: From Beginner to Expert course provides a solid foundation in C++ programming, which is essential for success as a Network Engineer. This course covers a range of topics that are relevant to network engineering, including working with files, functions, classes, and templates.
Information Security Analyst
The C++: From Beginner to Expert course provides a strong foundation in C++ programming, which is a valuable asset for Information Security Analysts. This course covers a range of topics that are relevant to information security, including working with files, functions, classes, and templates.
Data Scientist
The C++: From Beginner to Expert course can be useful for those interested in becoming Data Scientists. With its coverage of arrays, loops, and functions, this course can help you to develop skills that are useful for data processing and analysis. The course also provides practical examples of how to use C++ to solve data-related problems.
Software Quality Assurance Analyst
The C++: From Beginner to Expert course can be useful for those interested in becoming Software Quality Assurance Analysts. With its coverage of testing and debugging techniques, this course can help you to develop the skills needed to ensure that software is of high quality.
Systems Engineer
The C++: From Beginner to Expert course can be useful for those interested in becoming Systems Engineers. With its coverage of computer hardware and software, this course can help you to develop the skills needed to design, build, and maintain complex systems.
Technical Writer
The C++: From Beginner to Expert course can be useful for those interested in becoming Technical Writers. With its coverage of technical writing principles and practices, this course can help you to develop the skills needed to create clear and concise technical documentation.
Database Administrator
The C++: From Beginner to Expert course can be useful for those interested in becoming Database Administrators. With its coverage of data structures and algorithms, this course can help you to develop the skills needed to manage and maintain databases.

Featured in The Course Notes

This course is mentioned in our blog, The Course Notes. Read one article that features C++: From Beginner to Expert:

Reading list

We've selected ten 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 C++: From Beginner to Expert.
Is the definitive reference on the C++ programming language. It was written by the creator of C++, and it provides a comprehensive overview of the language. It must-read for anyone who wants to learn C++.
Comprehensive and detailed introduction to the C++ programming language. It covers all the basics of the language, as well as more advanced topics such as object-oriented programming and templates. It valuable resource for anyone who wants to learn C++ in depth.
Collection of 50 essays on C++ programming. Each essay covers a specific topic, and provides practical advice on how to write better C++ code. It valuable resource for anyone who wants to improve their C++ programming skills.
Collection of recipes for solving common C++ programming problems. Each recipe provides a step-by-step solution to a specific problem. It valuable resource for anyone who wants to learn how to solve C++ programming problems.
Collection of recipes for solving common C++ programming problems. Each recipe provides a step-by-step solution to a specific problem. It valuable resource for anyone who wants to learn how to solve C++ programming problems.
Comprehensive introduction to object-oriented programming in C++. It covers all the basics of object-oriented programming, as well as more advanced topics such as design patterns and inheritance. It valuable resource for anyone who wants to learn how to write object-oriented C++ code.
Collection of design patterns and best practices for C++ programming. It covers topics such as object-oriented design, data structures, and algorithms. It valuable resource for anyone who wants to learn how to write high-quality C++ code.
Comprehensive guide to concurrency in C++. It covers all the basics of concurrency, as well as more advanced topics such as thread pools and synchronization. It valuable resource for anyone who wants to learn how to write concurrent C++ code.
Comprehensive guide to C++ templates. It covers all the basics of templates, as well as more advanced topics such as template metaprogramming. It valuable resource for anyone who wants to learn how to use templates in C++.
Collection of advanced C++ programming techniques. It covers topics such as templates, metaprogramming, and concurrency. It valuable resource for anyone who wants to learn how to write high-performance C++ code.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
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 - 2025 OpenCourser