Back-End, Front-End, No-End, The End…
There a lots of programming and development jobs out there, and I mean lots. Hit up a basic job search site and marvel at all of the employment rife for the taking.
One of the things that may pique your interest though is the amount of different titles you will find associated with coding work. Some of these are easy to understand, like the different between a Python developer and a Java one. But there are others that require a little bit of background knowledge.
Of all of these classifications, one of the more common ones you will see is the differentiation between “ends”. There are three unique titles that come into play here: front-end, back-end, and full stack.
What is the difference between back-end and front-end development?
What is a full stack developer?
Most importantly, which should you become?
These are common questions for those new to coding, and I am here to shed a little light on these topics.
Wait a minute! You’re a fraud!
“If the guy running this site is supposedly a programmer… why the hell is he using WordPress and a default theme for his website?”
It’s a valid question that no-doubt some folks who visit here will be asking to no one in particular. The reasoning behind this design choice is really quite simple:
As it stands, I am a back-end programmer in training. Let’s dive into what this means.
The End(s of Coding)
Coding is a game of playing to your strengths.
While I have been coding for about two years now, I’ll be the first to admit where my strengths and weaknesses are.
Web-based development is something I’ve barely scratched the surface of. For this reason, you’ll see a lot of the content on my site really focused on back-end languages. In general, my language knowledge breaks down like this:
What I Don’t Know: Web-Development/ Front-end Coding.
What I Do Know: Back-end Languages.
I am semi-versed in Python, Java, and C++. I am also slowly dipping into the Android-end of the Java spectrum.
Don’t get me wrong, front-end development is awesome. And also worth noting, I entirely plan on learning front-end language. My training thus far has been strictly on the back-end through chance more than personal choice.
I must also admit that in my personal experience, front-end development is more directly employable than back-end development. This is especially evident with how prominent front-end organizational sources like SharePoint have become.
Learning front-end is on my ever-growing to-do list, but I’ve decided to prioritize hammering down what I already know before diving elsewhere. But before I do that, maybe I should get to the point and explain what the heck I’m talking about.
What’s the difference between Front-end and Back-end Development?
What is Front-End Development?
Front-end development is most easily described as programming what the client works with.
The menus, the widgets, the look and feel of the application or website – that’s all front-end programming. Front-end programming is all about making the user experience memorable in the best way possible.
But why is front-end development so important, especially now?
Front-end programming is becoming so prominent because of our always-connected world. We live in a world where nearly everyone has a smart phone or tablet, which has led to a shift in programming. Most folks aren’t getting all of their content via a PC anymore, so web-based applications are in high demand.
With the world moving faster and faster towards cloud-based computing, front-end development is not going anywhere anytime soon.
An Analogy to Explain Front-End Programming
Imagine you’re at a yogurt shop.
You grab a cup (or waffle cone, if you lack taste buds) and head to the bank of yogurt dispensing machines. Think of the imagery for a second.
Imagine the signs emblazoned with the names of the yogurt flavors. These signs are made to look easy to read and attractive. They’re also made in a way where you can read them from across the room, or up-close, or from the side. Another thing worth keeping in mind is that each sign should be placed so it points to the right flavor.
The signs have been made so that there is as little work on your part as possible, you just read them and pick a flavor. This is a front-end development sort of project.
Still not getting it? Let’s go a bit further.
Think about the lever you pull to dispense yogurt. They’re also made to look and feel easy to use, but they’re also made to be responsive. As a customer, you aren’t concerned with how the dispenser works. You only care that it works.
This is front-end development – focusing more on how the consumer interacts with stuff than how the stuff actually works. A front-end developer isn’t so worried about how the machines in the back of the shop keep the yogurt cold, they are only really concerned with making the yogurt as appealing and easy to access for the user as possible.
If you have a knack or want for web design, building web pages, or working on web applications, front-end development may be the path for you.
What is Back-End Development?
Back-end development is programming what’s under the hood. In short, back-end development is making sure that the program functions properly behind the scenes.
Developing on the back-end isn’t as concerned with how the program will work for the client as it is in making sure the program works in general. Working behind the scenes involves lots of functions, equations, and making sure the program communicates properly with other software.
Generally on the back-end you are putting together the algorithms and formulas to make sure that data is being processed properly. You are leaving it to the folks on the front-end to make this “raw” code into something approachable for clients.
It is important to note that front-end and back-end developers have to work together to make a great program. If the program were a car, the back-end folks built the engine and the front-end team designed the body and interior.
Back-end development includes languages like Python, Ruby, PHP, C#, and C++.
An Analogy to Explain Back-End Development
Let’s go back to the yogurt shop!
Front-end folks helped make sure that the store was accessible for customers. They made sure the signs looked awesome and the machines are easy to use. The back-end developers are the ones making sure that the things the customer interacts with do what they’re supposed to do.
Back-end folks are the ones who made sure the yogurt machines keep the yogurt at the right temperature. They also programmed that little flashing button that tells you the yogurt isn’t ready. The people on the back-end helped put together all of the stuff that is behind the scenes.
Because of the back-end work, the yogurt isn’t a melted mess and machines aren’t shooting yogurt out too fast or too slowly.
If you are more geared towards building the interconnecting logic and parts “under the hood”, back-end programming may be for you.
Awesome! But what if I wanna do both?
Then go do it! Some people prefer to pick one specialty and to hone that skill, while others want to dip into both sides of the coding field.
As a rule of thumb, most developers will always have a little knowledge about each side of things. If you are on the back-end, you want to make sure what you code will make sense to the front-end. If you are on the front-end, you have to know how to work with what the back-end gave you.
For some of you out there, this may not be enough. You might want to be a master of the back and front-ends. Lucky for you, there’s a term for that!
This is called a full stack developer.
What is Full Stack Development?
Look at you, you overachiever.
Someone who can truly function as a back-end developer OR front-end developer is called a full stack developer. ( Also pronounced “person who is well-paid“).
A full stack developer is highly sought after in the market, and for good reason. These devs are people who do not have to rely on another coder or team of programmers to handle half of the duties for them. A full stack developer can be insert into teams on either side of a project, which makes them so desirable.
Don’t get me wrong, coding is a team effort. Huge projects are going to require full groups of skilled developers to support one another. But like any team, a player who can fit easily into any facet is a huge asset.
Imagine a full stack developer as a football player who can play on the offensive and defensive squads. (Note: This editor has never seen a programmer built like a defensive end).
What Kind of Developer Should I Be?
Don’t get too wrought over the choice of where to begin. This is not a “Choose your starting Pokémon”, no-take-backs choice.
Start wherever you feel comfortable. In time, you will probably find yourself moving across front-end/back-end lines.
This ability to move freely when learning programming is one of the things I love. You will only be pigeonholed by your own choices in programming.
Wanna stick with front-end? No problem.
Want to grind it out on the back-end? Go for it.
A bit a both? Why not.
The choice is yours and the resources are out there. If you ever get bored or complacent, you can pick a new language. There’s a few hundred more programming languages out there that you can sink your teeth into. Which ones will you choose?