No dates yet
Tell us the schedule that would work
We plan batches around demand. Weekend, morning and intensive formats open when enough people ask for them.
Register your interestBuild a foundation in modern C++, from your first program to classes, RAII, the standard library and a project
Designed for
Learning outcomes
Course curriculum
Duration: 40 guided hours
FoundationSessions 1–2
What you will build
Your first compiled C++ program, built and run from the command line — plus a deliberate broken build you diagnose and repair from the compiler's own output.
Module 1
FoundationSessions 1–2
What you will build
Your first compiled C++ program, built and run from the command line — plus a deliberate broken build you diagnose and repair from the compiler's own output.
Module 1
Batches
No dates yet
We plan batches around demand. Weekend, morning and intensive formats open when enough people ask for them.
Register your interestCourse trainers
Founder & Principal Trainer
Vishal has spent more than twenty years as a hands-on engineer and architect across commerce, banking and fintech platforms, and still writes code daily. He teaches the production concerns most courses skip, because he has spent two decades being paged about them.
Practice
Complete a coding lab in every session and three progressive mini-projects, then build a Campus Library Desk console application using classes, an abstract interface, standard containers and algorithms, RAII ownership, checked text persistence and multiple source modules.
Career support
Supplementary revision material reviews common foundation questions on types and conversions, control flow, functions and overloading, references and pointers, the standard library, classes and object lifetime, RAII and smart pointers, inheritance and virtual dispatch, templates, exceptions, file input and output, compilation and debugging.
Detailed course information
C++ rewards learners who want to understand what their program is actually doing. It keeps the low-level machinery of memory and lifetime visible, and then gives you the tools — classes, containers, algorithms and RAII — to build on top of it without repeating that work by hand.
This is an intensive foundations programme for people who are new to programming, and for learners who have written some C or C++ informally and want to close conceptual gaps. The course builds progressively from small console programs to a modular command-line application.
No prior programming knowledge or prior Deesha course is required. Learners need regular access to a 64-bit Windows, Linux or macOS computer, basic file-and-folder skills, and permission to install or use the course toolchain. Plan approximately 30–45 minutes of practice after most sessions and up to 90 minutes between final-project sessions; this practice is recommended for fluency and is not counted in the 40 guided hours.
This course is not intended for experienced C++ developers who already work confidently with templates, move semantics and multi-file builds. It also does not teach template metaprogramming, concurrency, coroutines, ranges in depth, graphics or game frameworks, Qt, operating-system internals, or performance engineering. Those belong in focused follow-on programmes after the language foundation is secure.
If you want to learn programming through the smallest possible language surface, DTA-16 C Programming covers the same foundations with no classes or standard library. Neither course is a prerequisite for the other; they are two routes into the same territory.
The course uses ISO C++20 as the current language reference while compiling all required exercises with an explicit C++17-compatible portability profile. Selected C++20 improvements may be demonstrated as optional awareness, but learners are never assessed on a feature that is not dependably available in the supported GCC and Clang environments.
Learners use a current stable GCC or LLVM/Clang toolchain with GDB or LLDB. The planned pilot environments are MSYS2 UCRT64 GCC on Windows, GCC on Linux and Apple Clang on macOS. Each must pass the clean-machine release checklist before the first batch. Early exercises invoke the compiler directly so diagnostics, compilation and linking remain visible. The final project introduces CMake for a reproducible multi-file build.
Each two-hour session follows a consistent rhythm:
The balance changes during final-project sessions, when most of the time is used for implementation, review and correction.
Learners build a domain-neutral command-line application for recording and managing borrowable campus items and their loans. The brief requires no specialist library knowledge and gives learners clear acceptance criteria, starter interfaces and sample data without giving them the completed implementation.
The project requires learners to:
Classes are taught deeply enough for learners to design a type with a clear invariant, initialise it correctly, keep member functions const where they should be, and reason about when destructors run. Operator overloading is limited to what a project genuinely needs; conversion operators and custom allocators are outside the required scope.
Learners practise RAII, std::unique_ptr and non-owning raw pointers, and see std::shared_ptr
demonstrated with its cost explained. Move semantics are introduced as awareness — what std::move
signals and why the rule of zero is the default — rather than as a hand-written rule-of-five
exercise.
Function templates and the reading of simple class templates are required, because the standard library cannot be used without them. Writing generic libraries, template specialisation, SFINAE and concepts are reserved for follow-on programmes.
Required coverage is std::string, std::vector, std::array, std::map, iterators, and the
common algorithms used by the project. Ranges, views, std::span, concurrency primitives and
filesystem APIs may be demonstrated as extensions but are not required in this foundations course.
Each session includes a formative learning check. The required final quiz is delivered in Moodle; session checks may also be assembled there after platform import review. Course completion requires:
For the pilot batch, attendance and the final quiz are recorded and verified manually by the trainer. Automated tracking arrives with the learning platform; the completion criteria above are the same either way.
The final project is reviewed and demonstrated as applied learning evidence, but it is not an additional completion gate for this pilot. The completion record therefore confirms the attendance and knowledge-check criteria above; project evidence is recorded separately and does not claim an independently certified level of professional capability. This course does not provide a certification.
Active enrolled learners receive session study guides, starter files, exercises, the course quick reference and interview-preparation material. Approved session recordings may be provided when a batch records them with the required notice, consent, review and access controls. Learner material is shared through restricted access. Study material is view-only where the platform supports it; starter code and exercise data are downloadable so learners can compile and edit a personal working copy. Trainer plans, source presentations, solutions and question rationales remain private.
Learners receive supplementary material covering common foundation-level C++ questions and code-reading exercises. It will be exported to an accessible participant format before release. This material supports revision; the course does not promise interview or employment outcomes.
Get batch details
Tell us the schedule that would suit you and we will let you know when a batch opens.
Need help deciding?