Front End vs Back End

These days, many websites are dynamic, meaning the data they display may differ depending on who is accessing the site or which search term they are using. Other websites are static, with content that is written directly in the HTML, so the pages will always look the same unless the developer makes a change.

While developing a static website is fairly straightforward, creating a dynamic website or application can involve multiple different programming languages, databases, APIs, frameworks, etc. The software has to run well on multiple platforms, taking into account different browsers and screen sizes. Typically, these responsibilities are divided into two categories: front end and back end.

Front End

Front end or client-side development covers the look and feel of the website and how users interact with it. There are two main aspects of the front end: development and design. Some companies split these into two different positions, while others lump them into one role.

Designers may use image editing software in order to create a picture of what the site should look like, and they may create wireframes which indicate how elements are displayed and how users may interact with them.

Developers will take these designs and form them into a functional front end. If the site is dynamic then this will be connected to the back end.

Front end developers primarily use HTML, CSS and JavaScript, and nowadays there are many libraries and frameworks they may use such as React and Angular.

Back End

Back end or server-side development involves everything that runs in the background to make the software function, such as communicating with the database and server.

If you’ve ever bought something online or created an account on a website then you’ve interacted with the back end. You can’t see it, but it’s crucial for processing and storing the data.

Back end developers primarily use one or more programming languages, which could be Python, Ruby or PHP, to name a few. Just like on the front end, there are frameworks that back end developers can use to make their jobs easier. Back end developers also need to have an understanding of databases, APIs and servers.

Full Stack

You may also have heard of a ‘full stack developer’. This refers to someone who works on both the front and back end of an application.

How to Choose

I’ve been thinking a lot lately about which of these is really right for me. I’ve been operating under the assumption that I’ll apply for a back end development job using Python, but I’ve never been 100% sure about that. I’m technically far more adept at front end. If someone gave me a design I have little doubt that, whatever it is, I could create it. The problem arises when I have to create the design myself. I’m just… not good at it.

The company I’m looking to apply to has design and development combined in their front end position, which is what initially made me feel it would not be suitable for me. I would have to learn React and maybe Angular, but I’m not too worried about my ability to do that and, in fact, I plan on learning them anyway. Another con here is I hate JavaScript and I’d be doing more of it if I got a front end position.

The back end position, however, requires strong Python skills and a basic understanding of Node.js. I have the latter, but ‘strong Python skills’ is a pretty broad requirement. Looking at the company’s website, it appears they do a lot of data science and machine learning stuff, which isn’t really the kind of thing I’m interested in. I’m generally not into math unless it’s for a game.

But I guess I felt that it would be easier to learn data science and algorithms than how to be artistic. I felt that being able to create good designs isn’t something that can be learned – some people are good at it, some aren’t.

But maybe I’m wrong.

Either way, I’ve been studying full stack web development for the most part, with a focus on Python/Django. I’m going to learn React soon and try and get a better handle on JavaScript in general because it always just feels like this total slog whenever I have to use it.

I might do some reading on design and see if it’s maybe something I can learn after all.

I’d also not thought too much about this before, but apparently being a web content writer is a thing. I mean, of course it is! But it’s just become obvious to me now. Often these positions require some HTML and CSS knowledge but are primarily about the writing. Many, many websites have horrible grammar and spelling and I know I can do better. Apostrophes do not belong in plurals, people! I’m going to keep an eye out for any such positions that I may be able to apply to but I’ll continue studying web development, of course.

Further Reading