I’ve been asking myself this question a lot recently after applying for quite a few web development placements.
The experience has been enlightening, teaching me a great deal about the industry. I’ve been reflecting on what I’m good at in web development and what I enjoy.
Whilst freelancing I’d describe myself as a Full-Stack Developer. I have to deal with the client/project. Come up with designs. Create a website for them. And sometimes create a Back-End API. Being a freelancer I have to be skilled in the entire process of web development. In a junior role I wouldn’t be expected to work on a project in that way.
When I first started interviewing for roles I called myself a Full-Stack Developer. Most companies needed someone to create APIs and write Object Oriented PHP.
I then started calling myself a Front-End Developer and companies were still getting me to do PHP competancy tests.
In my opinion, a Front-End Developer specializes in languages that run in the browser: HTML, CSS, and JavaScript. This has shifted in recent years and now encompasses the array of JavaScript Frameworks out there such as React, Vue, Angular, and Svelte. I’d also argue that a Front-End Developer should have a great deal of knowledge in SEO, Website Optimization, and Accessibility.
I would define a Back-End developer as anyone that specializes in languages that run on a server. I.e. PHP, Python, and Ruby.
With the Jamstack turning heads all across the development landscape Front-End developers can now work on projects that historically needed a Back-End developer.
In conclusion, I find myself enjoying what I would define as Front-End Development. Practising my skills with JavaScript Frameworks, and optimizing my sites for accessibility and speed. But the role of a junior Front-End Developer seems hard to come by, at least in my experience, with companies expecting proficiency in sever-side languages.
TL;DR
Front-End Developers focus on languages that run in the browser.
Back-End Developers focus on languages that run on a server.