Skip to content
New this month 24 fresh C++, C#, F#, JavaScript, TypeScript and Lua courses just landed. Browse new releases Use code WELCOME10 for 10% off your first order · 14-day refund

Algorithms and Data Structures for Working Developers

Complexity, structures and problem patterns taught for real code and real interviews.

13 students

AP Created by Ana Petrova

  • Last updated August 2026
  • English
  • 21h of material
  • 158 lessons

What you will learn

8 concrete outcomes

Every bullet below is something you will have built, shipped or be able to explain by the time you finish the last lesson.

  • Analyse time and space complexity and verify your analysis with real benchmarks
  • Implement dynamic arrays, hash tables, trees, heaps, tries and graphs from scratch
  • Choose the right structure from access patterns rather than familiarity
  • Recognise and apply two pointers, sliding window and binary-search-on-answer patterns
  • Derive dynamic programming solutions from recurrences instead of memorising tables
  • Traverse graphs and apply shortest path, topological sort and union-find correctly
  • Write clean solutions in Python, TypeScript or C++ with tests for edge cases
  • Handle technical interviews: clarify, narrate, estimate and recover from a dead end

Course curriculum

8 modules · 158 lessons · 21h of material

16 lessons running 2h 06m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

20 lessons running 2h 40m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

19 lessons running 2h 32m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

21 lessons running 2h 48m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

19 lessons running 2h 30m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

22 lessons running 2h 56m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

21 lessons running 2h 46m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

20 lessons running 2h 42m in total. Each lesson ships with the finished source files and a short written recap, so you can follow along in your own editor and skim the module again later.

Lesson-by-lesson titles, code downloads and exercises live inside the course library you get access to straight after checkout.

8 modules · 158 lessons

21h total length

Requirements

Short list, and deliberately so. If you meet these you can start today.

  • Comfortable writing functions, loops and classes in at least one language
  • Python, Node or a C++ toolchain installed for the exercises
  • No mathematics beyond secondary school; proofs are kept intuitive and concrete

About this course

Algorithm courses usually split into two useless halves: mathematical treatments that never touch a keyboard, and interview drills that teach pattern recognition without understanding. This one is built for developers who want both the reasoning and the ability to solve the problem in front of them.

Every structure is implemented before it is used. You build dynamic arrays, linked lists, hash tables with open addressing and with chaining, binary search trees, balanced trees, heaps, tries, disjoint sets and graphs, then measure them against the standard library equivalents in your language. Complexity analysis is taught alongside benchmarks so that big-O notation and wall-clock time stay connected rather than drifting apart.

The problem-solving half organises techniques by shape: two pointers, sliding windows, binary search on the answer, recursion with memoisation, dynamic programming built from recurrences, graph traversal, shortest paths, topological ordering and greedy proofs. Each pattern comes with worked problems, and every solution is written in Python, TypeScript and C++ so you can follow in whichever language you work in. A final module covers interview technique: clarifying, thinking aloud, estimating and recovering when you are stuck.

Frequently asked questions

Still unsure about something? Write to misteryjj100@gmail.com and a human answers, usually the same working day.

Whichever you work in. Every implementation and solution is provided in Python, TypeScript and C++, with the same structure and comments across all three.

No. Roughly half the material is about choosing structures and analysing performance in production code, which is the part interview-only resources skip entirely.

Around twenty-one hours of material plus the problem sets, so most people spend eight to ten weeks at a few hours a week.

The problems are original but deliberately shaped like the classic families, so practising on any public judge afterwards feels familiar rather than foreign.

Checkout is handled on our provider's secure payment page. The moment your payment clears we email your personal access link and access code to the address you used at checkout, and the same link appears in your account library. There is nothing to install and nothing to wait for.

Email misteryjj100@gmail.com within 14 days of your purchase, quote your order number, and we refund the full amount to your original payment method. No form to fill in and no questions about how much of the course you watched.

What students say

No reviews yet

Nobody has reviewed this course yet, so there is no score to show. Buy it, work through it, and your review could be the one that helps the next developer decide.

Your instructor

AP

Ana Petrova

Systems engineer and C++ instructor

  • 206 students taught
  • 9 courses published
  • 4.4 instructor rating
  • C++
  • Systems programming
  • Memory management
  • Concurrency

Ana spent nine years writing real-time C++ for trading infrastructure before moving into teaching full time. She specialises in the parts of the language people quietly avoid: templates, move semantics, custom allocators and the memory model. Her courses are built around profiling sessions on code that is deliberately slow, so every fix is something you measure rather than memorise. She still contributes to two open-source benchmarking libraries.

$139 USD

One-time payment · lifetime access

The WisdomCharms dispatch

One useful email a week. No fluff, no spam.

New course releases, discount codes before anyone else, and a short, practical breakdown of one technique — a prompt pattern, a C++ idiom, a TypeScript trick — that you can use the same day.

  • Subscriber-only launch pricing
  • Unsubscribe in one click
  • We never sell your address

By subscribing you agree to our Privacy Policy. Questions? Write to misteryjj100@gmail.com.