Frontend is everything the user sees and touches, backend is everything happening on the server that they don't, and full-stack is doing both. The dividing line is roughly the browser: frontend code runs in the user's browser, backend code runs on a machine you control.
Day-to-day, concretely:
- Frontend developer: turns designs into working interfaces. Writes HTML, CSS and JavaScript, usually with a framework like React. Worries about layout, responsiveness across screen sizes, accessibility, loading performance, animation, form validation, and calling APIs to display data. Success looks like: it looks right, feels fast, and works on a five-year-old Android phone.
- Backend developer: builds what the frontend talks to. Writes server code (Node, Python, Java, Go, PHP...), designs database schemas, writes queries, builds APIs, handles authentication and permissions, payments, background jobs, caching, and security. Worries about correctness, data integrity, and what happens at 10,000 concurrent users. Success looks like: the data is right, it's fast under load, and nobody can access what they shouldn't.
- Full-stack developer: does both, usually with a stronger side. Very common at startups and small teams where there aren't enough people to specialise. The realistic version isn't 'expert at everything' — it's 'genuinely good at one side, competent enough on the other to build a whole feature end to end'.
Which suits which kind of person:
- Frontend tends to suit people who like visual feedback, care how things feel to use, and enjoy the craft of interface detail. The feedback loop is immediate and satisfying.
- Backend tends to suit people who enjoy logic, data modelling, systems thinking, and problems where the elegance is invisible to users.
- Neither is easier. Frontend is often dismissed as 'just making it pretty' by people who've never fought browser layout, accessibility and performance budgets simultaneously; backend is dismissed as 'just CRUD' by people who've never debugged a race condition in production.
On the job market: frontend has more junior openings but more competition (it's the common entry point). Backend often has slightly less competition at entry level but a steeper start. Full-stack is very hireable at smaller companies. Salaries at senior level are broadly comparable; specialisation depth matters more than which side.
The practical advice: don't decide from descriptions. Build one small thing on each side — a styled interactive page, and a tiny API that reads and writes to a database. Notice which one you kept going on past the point where you meant to stop. That's better data than any comparison.