Learning Resources
Roadmap
A day-wise roadmap to learn C++ in 30 days. Each day lists the concepts to cover, the outcome you should be able to demonstrate, and the hours to prepare — with every concept linked to its lesson.
Complete C++ Programming Roadmap
A structured 30-day plan that takes you from Hello World to OOP, modern C++, the STL, and a project you can demo. Every day lists the concepts to study, the outcome you should be able to demonstrate, and the hours to budget. Concept names link straight to the full lesson.
Choose Your Pace
| Track | Duration | How to follow it | Best for |
|---|---|---|---|
| Fast track | 15 days | About 7 hours a day. Pair up two consecutive days from each phase. | Full-time learners and placement season |
| Standard track | 30 days | About 3–4 hours a day, exactly as the table below is laid out. | College students learning alongside classes |
| Relaxed track | 60 days | About 2 hours a day. Split each day of the table across two sittings. | Working professionals and evening learners |
Phase 1 — Foundation
Goal: Install a toolchain and master C++ basics: types, I/O, operators, and control flow.
| Day | Concepts to cover | Outcome | Hours |
|---|---|---|---|
| Day 1 |
| You can explain how C++ extends C, install a compiler, and compile/run a first program with -std=c++17. | 2 hrs |
| Day 2 |
| You can read a C++ file and name its parts, and you know the difference between declaration and definition. | 3 hrs |
| Day 3 |
| You can choose types confidently and write programs that read/print numbers and lines correctly. | 3 hrs |
| Day 4 |
| You can evaluate expressions by hand and avoid = vs == and 5/2 style mistakes. | 3 hrs |
| Day 5 |
| You can implement branching logic with if and switch, and you know when each is clearer. | 3 hrs |
| Day 6 |
| You can write any loop pattern (including range-for) and debug infinite-loop mistakes. | 3 hrs |
| Phase total | 17 hrs | ||
Phase 2 — Arrays, Strings & Functions
Goal: Work with collections of data and break problems into reusable functions.
| Day | Concepts to cover | Outcome | Hours |
|---|---|---|---|
| Day 7 |
| You can declare, initialise, and traverse arrays, and explain array decay at a high level. | 3 hrs |
| Day 8 |
| You can build and process std::string programs and know when C-style strings are risky. | 3 hrs |
| Day 9 |
| You can design small functions with clear signatures and pass large objects by const reference. | 3 hrs |
| Day 10 |
| You can write factorial/Fibonacci-style recursion safely and explain stack growth. | 3 hrs |
| Day 11 |
| You can solve 4–5 small problems end-to-end without looking up basic syntax. | 4 hrs |
| Phase total | 16 hrs | ||
Phase 3 — Memory & Language Features
Goal: Understand addresses, aliases, modules of code, aggregates, and file I/O.
| Day | Concepts to cover | Outcome | Hours |
|---|---|---|---|
| Day 12 |
| You can declare pointers, avoid wild/dangling uses, and explain new/delete pairing. | 4 hrs |
| Day 13 |
| You can choose pointer vs reference correctly and write functions that modify callers via references. | 3 hrs |
| Day 14 |
| You can organise names with namespaces and model simple records with struct/union. | 3 hrs |
| Day 15 |
| You can read/write text files and accept simple command-line arguments. | 3 hrs |
| Day 16 |
| You can build a tiny program that loads records from a file into a struct array/vector. | 4 hrs |
| Phase total | 17 hrs | ||
Phase 4 — Object-Oriented C++
Goal: Model problems with classes: encapsulation, inheritance, and polymorphism.
| Day | Concepts to cover | Outcome | Hours |
|---|---|---|---|
| Day 17 |
| You can design a class with private data and a clear public interface. | 4 hrs |
| Day 18 |
| You can initialise objects correctly and explain constructor/destructor timing. | 3 hrs |
| Day 19 |
| You can use static counters/factories and justify rare friend usage. | 3 hrs |
| Day 20 |
| You can build a small hierarchy and explain when composition is better. | 4 hrs |
| Day 21 |
| You can write abstract bases, override correctly, and know why base destructors are virtual. | 4 hrs |
| Day 22 |
| You can demonstrate runtime polymorphism with a base pointer and avoid object slicing. | 3 hrs |
| Phase total | 21 hrs | ||
Phase 5 — Advanced C++ & STL Core
Goal: Adopt modern resource management and the most-used STL containers.
| Day | Concepts to cover | Outcome | Hours |
|---|---|---|---|
| Day 23 |
| You can throw/catch by const reference and explain why RAII matters during exceptions. | 3 hrs |
| Day 24 |
| You can write a simple function template, a lambda for an algorithm, and prefer unique_ptr over raw new. | 4 hrs |
| Day 25 | You can choose vector as default dynamic storage and explain when deque helps. | 4 hrs | |
| Day 26 | You can iterate containers idiomatically and use pair/tuple in small APIs. | 4 hrs | |
| Phase total | 15 hrs | ||
Phase 6 — STL Deep Dive, Interview & Project
Goal: Finish associative containers and adapters, revise for interviews, and ship a project.
| Day | Concepts to cover | Outcome | Hours |
|---|---|---|---|
| Day 27 | You can pick stack vs queue vs priority_queue and sketch BFS/DFS container choices. | 4 hrs | |
| Day 28 |
| You can implement word counts with unordered_map and unique sorted keys with set/map. | 4 hrs |
| Day 29 | You can answer OOP + STL staples out loud and score well on the MCQ set. | 5 hrs | |
| Day 30 |
| You have a finished, demonstrable C++ project you can walk an interviewer through end-to-end. | 5 hrs |
| Phase total | 18 hrs | ||
After Day 30
Finishing the table is the start, not the finish. Keep momentum with these next steps.
| Next step | Why it matters |
|---|---|
| Build one more STL/OOP project | Employers trust working code far more than a list of topics. |
| Practice DSA with STL containers | vector/map/unordered_map + algorithms are the daily toolkit for coding rounds. |
| Revise Q&A and the cheatsheet weekly | Spaced repetition keeps virtuals, RAII, and STL complexity ready under pressure. |
| Explore concurrency or design patterns next | Both build on solid OOP + modern C++ ownership habits from Phases 4–5. |