Even I was clueless at some point. In this post I explore the key differences between the two and the fact that you can be both.
At my current job, I am the only web developer. I do not mind, however it can get a bit overwhelming when I need to do something complex and I do not know how. I was approached by a person on LinkedIn before I got this job, stating their client's interest in hiring a front-end web developer. The problem was that this wasn't a front end web developer job, but rather a full-stack developer. I was in over my head.
I am not resentful, but I admit I struggled an awful lot, I had no mentor, no team mates and was left to fend for myself. At the end of the day, I transitioned towards a more full-stack role, which was refreshing and I am feeling empowered by my new skills!
What is a front-end web developer?
The front-end of a website can be described as the shopfront of a website. It's what users see and what they interact with. It doesn't provide a lot of information about what's being processed on the server or how things are stored in the database. It's not only the way the site looks, but where it runs, namely the user's local computer in their web browser or on their mobile phone.
They can be designers (such as myself with a graphic design background), and also knows code.
There are many more, which I won't discuss here, but you're welcome to read up on them. This website is built using Vue.js and CSS3, using the Sass SCSS preprocessor.
A front end developer is like the interior designer of the house, whereas the back-end developer is the building contractor who builds the frame. They're the icing and candles on the cake.
What is a back-end web developer?
The back-end refers to what happens behind the scenes of the website, such as database queries for finding that blog post's link you just clicked on, or when you submit a contact form, it's the validation that happens to make sure you provide the correct information and do not submit malicious code into the database. The back-end is like the brain in your body, where all the calculations happen. This is where communication between the server and application happens and what enables the front-end to show you all the content in the database.
For me, back-end work can be overwhelming, because you have to know your way around a server without a graphical user interface, need at least some basic knowledge about cyber security and understand programming principles such as object oriented programming. It's a lot to take in.
You'll be manipulating data, integrating and creating APIs, working with business stakeholders to figure out their needs, setting up servers and keeping them running optimally. I am still learning a lot while I work and study towards my degree.
Back-end developers work with programming and server-side scripting languages such as PHP, Ruby, Python, Java and some others too. For the database, they use tools like MySQL, PostgreSQL, MongoDB and others. I've taught myself some basic MySQL, since that's the most commonly used database software. To make life easier, they use frameworks such as the amazing Laravel (which I use to build many websites and I fucking love it).
Some of the main frustrations I have when people approach me about web development is that they assume I know everything from graphic design for the web all the way to how the server should be optimised. Web development has many faces, it's like a 6-sided die. You cannot hire someone on the assumption that they know all of these if you advertise for "front-end web developer". The job spec has to be accurate, otherwise you're going to sit with an employee that seems incompetent and it really does break morale. Ask me, I've thought about quitting, because I didn't understand the code the previous developer wrote in PHP and spent days trying to figure out how to make the Recaptcha validate on the server-side.
I am fortunate to have a job, but sometimes I have an identity crisis. Thankfully I am able to learn on the job and stick with it.
Make sure you know what you're getting into, read job specs thoroughly and make sure you know what is expected of you before you sign. Negotiate pay, you're worth a lot of money if you can do full-stack web development!