Although there are numerous programming languages available in the market to work upon, yet C++ has never lost its charm since its inception and still having a strong impact in the development world. As per the reports, C++ comes under a few top programming languages across the world. Alike C programming language, C++ also makes it easier for you to understand the underlying architecture of programming, although it also supports other additional features such as object-oriented programming, exception handling, etc. Moreover, various IT giants Google, Amazon, Microsoft, etc. offer numerous career opportunities to C++ professionals, hence you’re strongly recommended to give it a try and start to learn C++ Programming.
C++, developed by Bjarne Stroustrup, is a general-purpose programming language and considered as an advanced version of the C programming language. It offers the rich library support in the form of Standard Template Library. The language is widely used in various GUI platforms, Cloud/Distributed Systems, Operating Systems, real-time simulations, etc. Moreover, as C++ is an object-oriented programming language, it allows you to implement real-time problems through OOPS concepts. Here in this article, let’s discuss a thorough curriculum or roadmap that one should follow to learn C++ Language in 20 days!
1. Introduction to C++ Programming (Day: 1)
Needless to say, you’re required to start learning C++ programming language with the introduction and fundamentals of the language. You need to understand the features of C++ language, and what are its applications. Furthermore, you’re required to know how to set up an environment to compile & run your C++ program. You can create your first C++ program as well for more clarification of the fundamentals. Meanwhile, you can explore several other related topics such as difference b/w C & C++, C++ vs JAVA, etc.
- Introduction to C++ Programming Language
- Setting up C++ Development Environment
- C vs C++
- C++ vs JAVA
- First C++ Program: Hello World
2. Learn DataTypes, Variables & Operators (Day: 2-3)
Now you need to know about the building blocks of C++ programming – DataTypes, Variables & Operators. You need to get a thorough understanding of data types and how they are used, what are variables, how they are declared and initialized, the use of operators in C++, etc. It will help you to get familiar with the basic structure and syntax of C++ programming. There are several other topics also to be considered here such as Reference Variables, Operator Overloading, Optional Parameters, and others.
- Data Types | Variables in C++
- Operators in C++
- Reference Variable in C++
- Operator Overloading in C++
- Default Arguments in C++
3. Learn Conditional & Control Statements (Day: 4-5)
Okay, now move to the control flow statements of the C++ programming language. Precisely, control flow statements concerns with the concepts like repeated execution of a block of statements – Loops, execution of code based on decision – Decision-Making Statements, etc. You need to cover these concepts thoroughly such as all types of loops like For Loop, While Loop, Do While loop, etc. and similarly all decision-making statements like if, if..else, nested if, etc. There are several other topics as well that concern with the control flow statements in C++ programming such as Jump Statements, Switch Statements, etc.
- Loops in C++
- Decision Making in C++
- Switch Statements in C++
- Continue Statement | Break Statement
- Execute both if and else statements in C++
4. Understand Arrays, Strings & Pointers in C++ (Day: 6-8)
Once you’ll get done with the datatypes, variables, and other topics, now you’re required to understand the Arrays & Strings concepts in C++. An Array in C++ is used to store similar types of elements and Strings are used to store text or sequence of characters. Moreover, you need to learn about Pointers as well that is used for storing the address of another variable. Also, there are several other crucial topics such as Namespaces, Wild Pointers in C++, etc. that can be considered.
- Arrays | Strings in C++
- Pointers in C++
- Pointers vs References in C++
- Namespaces in C++
- Wild Pointers in C++
5. Go Through Functions & OOPs Concepts in C++ (Day: 9-12)
Now, it comes the most crucial part of the C++ programming journey: Functions & OOPS Concepts in C++. You need to know about the Functions in C++ which is a set of statements that is created to perform specific tasks. You have to learn about function declaration, function overloading, and other topics that concern with functions in C++. Meanwhile, you’re required to understand the Object-Oriented programming nature of C++ in-depth with various concepts such as Class, Objects, Inheritance, Polymorphism, Abstraction, and Encapsulation, etc.
- Functions in C++
- Function Overloading in C++
- C++ Classes and Objects
- Object-Oriented Programming in C++
- Constructors in C++
6. Learn I/O Streams, Dynamic Memory, & STL in C++ (Day: 13-16)
Okay, let’s dive deeper into the world of C programming. Now, you’re required to understand several underlying concepts such as I/O Streams & File Handling in C++, Dynamic memory allocation in C/C++, etc. You’re also required to look upon Standard Template Library (STL) in C++ which a renowned feature of the language. In general, STL in C++ is a set of C++ template classes that provide general programming data structures and functions like stacks, arrays, etc. Moreover, you must have the knowledge of template classes to work on STL in C++.
- Files and Streams in C++
- Dynamic Memory Allocation in C++
- malloc() vs new in C++
- Templates in C++
- C++ Standard Template Library (STL)
7. Understand Exception Handling, Signal Handling & Multithreading in C++ (Day: 17-20)
Furthermore, you’re required to fetch up the things with some more advanced topics like Exception Handling, Signal Handling, Multithreading in C++, etc. In short, Exception Handlings tends to deal with the code that can throw an exception or error and Signal Handling concerns with the Signals which force an OS to stop its in-progress task and address the task for which the interrupt has been sent. Moreover, you’re required to use POSIX Threads for multithreading in C++.
- Exception Handling in C++
- Signal Handling in C++
- Stack Unwinding
- Multithreading in C++
- POSIX Threads
So this a 20-day curriculum for everyone who wants to learn & make it big in the C++ programming. Meanwhile, after following the above-mentioned roadmap, you can also opt to build several minor & major projects to enhance your skills and gain more exposure to C++ programming. Hence, take out some time from your schedule for the next 20 days and start to learn C++ with great dedication and consistency!!
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.
- GDB (Step by Step Introduction)
- C Programming For Beginners - A 20 Day Curriculum!
- Step Wise Guide to start with Open Source
- How to Learn Programming?
- Programming languages one should learn in 2018
- 7 Tips and Tricks to Learn Programming Faster
- Top 10 Reasons to Learn C++
- Why Should I Learn Coding?
- Why is it Better to Learn to Code on a Whiteboard?
- How can I start to learn Web Development ?
- Which language should you learn first if you want to make an app?
- Top 5 Skills You Must Know Before You Learn ReactJS
- Top 10 Reasons to Learn Java
- How to learn any technology inside out?
- Top 5 Reasons to Learn Ethical Hacking
- 12 Reasons Why You Should Learn Python in 2019
- Top 8 Reasons To Learn NodeJS In 2020
- Top 10 Reasons to Learn AWS - Services And Benefits
- What is Unit Testing and Why Developer Should Learn It ?
- Learn Java on Your Own in 20 Days - Free!
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.