What is this for?
Algorithmic tasks pump up thinking, structure knowledge and help to pass interviews. Progress doesn't come from 5-hour marathons, but from systems: small but regular sessions, focus on topics and repetition of patterns.
The idea is simple: one topic for 3–5 days, one pattern at a time, 2–3 tasks per day, a retrospective once a week.
Platform map.
Platform | Strengths | When to choose |
|---|---|---|
Codewars | Gamification, kyu levels, many idiomatic solutions | When you want to see the receptions |
LeetCode | Filters by topics/companies, sobesov standard | Targeted preparation for the interview |
HackerRank/CF/AtCoder | Competition, strict TL/ML, I/O | Speed and discipline training |
3P Rule: Problem → Plan → Proof
Problem — reformulate the conditions, specify the restrictions, come up with a counterexample.
Plan — write down 2–3 ideas, evaluate the complexity, choose the simplest one that fits the limits.
Proof — run the solution on 2–3 examples (including extreme ones), recheck the asymptotics and risks.
Mini solution template:
1) Переформулировка задачи
2) Примеры: базовый + крайний
3) Идеи и выбор подхода
4) Псевдокод (до 15 строк)
5) Сложность: O(...)/O(...)
6) Ручные тесты (2–3 случая)
7) Код
8) Небольшой рефакторингPattern base
Two pointers — arrays/strings, merges; cursors towards or together.
Sliding window — substrings/subarrays with restrictions; stretch and narrow the window.
Hash tables/sets — frequency, uniqueness, quick access.
Stack — bracket validity, monotonic stacks, "next larger".
Sorting + two pointers — the amount of pairs/triples after sorting.
Binary search - in the array and "search by answer" by a monotonic function.
BFS/DFS — shortest paths without weights, connectivity components, area filling.
Dynamic programming — states and transitions, lines, backpack, subsequences.
Don't jump into Hard. First, consolidate Easy → Medium, but in series on one topic.

How to debug without pain?
Test empty, minimum and maximum inputs.
Log key steps: indexes, window sizes, stack/cache status.
First, correctness on small cases, then optimization.
Clean code in tasks: life hacks.
Talking names:
left/right,start/end,count/freq.Small helper functions (if the platform allows).
Comment on the idea, not the obvious line.
First clarity, then micro-optimizations.
Antipatterns: what slows down progress and how to fix it?
1) "I solve random tasks of the day"
Problem: knowledge spreads, patterns are not fixed.
Fixed: clusters by topic 3–5 days in a row, one pattern — different tasks.
2) "I immediately go to Hard"
Problem: burnout and a false sense of "I'm stupid."
Fixed: difficulty ladder: 2×Easy → 1×Medium → retro of the same pattern.
3) "I read the decisions before my code"
Problem: the illusion of knowledge without skill formation.
Fixed: first a working sketch/pseudocode and a manual run, only then — an analysis of other people's solutions.
4) "No tracker"
Problem: it is difficult to see growth and repeat themes.
Fixed (minimum): table: date • topic/pattern • links to tasks • insight of the day • what to repeat.
Golden rule: understood → wrote → checked → repeated in 3–7 days.
Learn with our app "Kodik" — daily challenges and reminders, mini-analyses of patterns in simple language and mini-projects for consolidation. Make your progress noticeable and sustainable. And, of course, join our friendly community in Telegram channel.
Need a personal plan for 30 days or a selection of tasks on one topic? Write where we will start - we will collect a roadmap for you.
