Why is it normal that it's "not given"?
Programming is not a single skill, but a bundle: syntax → algorithmic thinking → working with tools → debugging → project thinking. When you learn everything at once, the brain "chokes".
Conclusion: we break it down into micro-steps, work with feedback, train often and in short bursts.
3. The "30-60-10" strategy for each lesson
30% — repetition and warm-up (remember the context).
60% - practice on one topic (one appointment at a time).
10% — "consolidating project step" (tiny improvement in the mini-project).
Why it works: removes the alarm "do everything at once" and gives a cumulative effect.
Techniques that really help.
The Feynman Technique.
Explain the decision "out loud" in simple words — if you stumbled, dig there.
Rubber duck.
Speak a bug to an object or a voice recorder — the brain finds inconsistencies.
Spaced Repetition.
Repeat the techniques after 1/3/7 days (cards, short notes).
Error log.
Keep a list of recurring bugs and solutions — you'll be surprised at the repeatability.
Should I change the language/stack if it's hard?
Change not language, and material format: shorter course, tasks with auto-check, tutorials with pauses for independent steps. The language should be changed only if the goal (mobile, data analysis, etc.) requires a different ecosystem.
It is difficult to notice "blind spots" alone. Share the code, ask point by point: "here is the input/output, here is where it got stuck, what I tried." Feedback saves weeks.
If you want structure and support, try Code: short lessons, mini-projects, tasks with feedback and a friendly community where you can ask a question and get a human answer. This reduces overload, provides a clear path, and helps to complete projects.
