A question I get regularly from students and beginners: where do I actually start? There's a mountain of platforms, courses, and YouTube channels claiming to teach programming. Most of them are noise.
Here's what I actually recommend, based on years of teaching and watching people learn.
First: pick a language and commit
The biggest beginner mistake is hopping between languages. "Should I learn Python or JavaScript?" — pick one, go deep, finish something. The fundamentals transfer. The paralysis of choice does not.
My picks by goal:
- JavaScript (web frontend/fullstack) — Yandex Practicum or learn.javascript.ru. Both are solid, structured, free to start.
- Python (data, automation, AI entry) — Yandex Lyceum. Free, government-backed, surprisingly good curriculum.
- PHP (web backend) — Hexlet. One of the few places that teaches PHP with modern practices, not 2008 procedural habits.
- C# (.NET, gamedev, desktop) — SoloLearn app to start, then Microsoft Learn for depth. C# documentation is genuinely one of the best in the industry.
- Java — Samsung IT School if you're a student. Otherwise JetBrains Academy has decent structured tracks.
What platforms miss
Almost all of them focus entirely on hard skills. Syntax, algorithms, data structures. These are necessary but not sufficient.
In 10+ years of working with developers and managing teams: the people who plateau early are almost always missing soft skills. They can write code. They can't estimate time. They can't explain blockers. They can't give feedback on someone else's PR without being either useless ("looks good") or brutal.
Soft skills in tech are: written communication, scoping problems, asking good questions, knowing when to ask. None of these are taught in most courses.
The most honest thing I can tell you
Learning to code is not the hard part. The hard part is building the habit of working on hard problems until they're solved, even when you're stuck. That's what separates people who finish projects from people who restart tutorials every three months.
Pick a platform. Build something real. Ship it, even if it's broken.