When I started learning web development, I thought the problem was just not knowing enough syntax. Years later I realize: syntax is the easy part. Knowing what not to do is harder.

This isn't a generic "top 10 mistakes" list. These are specific things I did, where I got stuck, and what I'd tell my past self.
1. Tutorial hell
I spent months watching courses. React, Next.js, Tailwind. Felt productive because I was "learning."
Problem: I wasn't building anything real. Every tutorial covers a perfect scenario. Real clients say: "I need a form that sends data to email AND Google Sheets AND notifies my phone." Tutorials don't prepare you for that.
What changed: I stopped taking new courses until I finished one small but complete project - design to deploy.
2. Copying code without understanding
I have an old project with a useEffect that works - but I don't know exactly why. Every time I need to change it, I'm afraid to touch it.
My rule now: If I copy something, I must be able to explain what it does. If I can't - it doesn't stay in production.
3. "I'll build everything from scratch" syndrome
I refused ready-made components because I thought a "real programmer" writes everything alone. Spent two days on a custom dropdown that works worse than a free Radix UI component.
4. Ignoring mobile until the last day
"Desktop first, mobile later." Mobile was never "later" - it was a panicked Friday at 11 PM before delivery.
5. Not asking enough questions upfront
Client says "I need a website" - I start working, and after two weeks it turns out they wanted a blog, English version, and invoice system integration.
I didn't ask. I assumed. And paid with time.

6. Promising deadlines from enthusiasm
"I'll be done by the weekend!" I wasn't. Not even close.
Now I impress with realism: "For this scope, I need 10-14 working days." And deliver in 12.
7. Not using Git properly
Commits named "final", "final2", "final really". Branching I don't understand.
Git isn't optional. Git is insurance.
8. Perfectionism over delivery
I can polish a button animation for an hour. The client doesn't see the difference. They paid for a site that works and brings inquiries.
9. Not saving energy for communication
Half of project problems come from poor communication. A short message "Here's where we are, tomorrow I work on X, done Friday" changes everything.
10. Comparing myself to developers with 10 years of experience
Everyone started with bad code. The difference is they kept going.