Should You Become a Front-End or Back-End Developer?

There are many things that go into making a web page present the information it shows when you see it in your browser. [bctt tweet="Should You Become a Front-End or Back-End Developer? by @mikeisman" username="StartupInst"]There is information gathered on the server from code and usually from a database, then that information is built into HTML markup with CSS styles and JavaScript code that tell the browser what to display. This is a simplified explanation of what happens, but the the difference between front-end and back-end web development is about the separation of responsibilities: the back end gathers information and the front end builds the page that is shown to the user. Back-end developers are typically involved in using languages such as Ruby, Python, PHP, C#, JAVA, and JavaScript, which run on an application server, connecting to databases including Postgres, MySQL, and MongoDB to store and retrieve data. They're also involved in building the APIs for mobile or third party apps to connect to. A good back-end developer is skilled at understanding and implementing business requirements and building maintainable systems that will scale when thousands of users at a time are using the application.[bctt tweet="A good #backend dev can build maintainable and scalable systems —@mikeisman" username="StartupInst"]

Front-end developers build the code that runs in a web browser. Starting with HTML markup, a front-end developer adds CSS to make the page look the way it’s supposed to, and JavaScript code to help the user experience on the page be as easy and intuitive as possible. A good front-end developer understands how to turn a Photoshop design into code, thinks about how to make an excellent user experience, and uses the best frameworks to make sure the code works across all browsers.[bctt tweet="A good #frontend dev thinks about how to make an excellent user experience, says @mikeisman" username="StartupInst"]

There are many questions that can help you decide whether you want to be a front-end or back-end developer.

Do you enjoy making user interfaces that people will interact with? Do you enjoy taking a mockup and turning it into reality? Those traits are more indicative of a front-end developer.

[bctt tweet="If you enjoy making user interfaces, you could make a great #frontend dev, says @mikeisman" username="StartupInst"]

On the other hand, do you enjoy thinking about how to model data? Do you like figuring out algorithms and making complex systems faster? That sounds more like a back-end developer.

[bctt tweet="If you like to model data and understand algorithms, you're cut out for a #backend dev—@mikeisman " username="StartupInst"]

In reality, the distinction isn’t always that clear. There is a third choice known as a full-stack developer, someone who does both front-end and back-end development. Unless you are in a big company with many specialists, most people you’ll come across are full-stack developers. While we all have our favorite parts of the web stack that we enjoy working with, as a modern web developer you should at least be familiar with the full stack so that you know what’s going on in each part of the code base.[bctt tweet="A modern web developer should at least be familiar with the #fullstack, says @mikeisman" username="StartupInst"]

My path to becoming a professional developer dropped me right into the deep end of the full stack, prototyping MVC frameworks for a company using an old version of VB. I had to quickly learn how things worked back to front, from writing code in the models to get data from the database all the way up through presenting that data with HTML and CSS in the views. It was a great learning experience that helped me understand what it took to get the job done in the front end and in the back end.

In my career since then, it has become clear that I enjoy back-end development much more, because I like the challenges of designing data architecture, writing efficient algorithms, and scaling the server code more than translating designs into front end code or refining user experience.[bctt tweet="I prefer the #backend: I like data architecture, algorithms, scaling the server code —@mikeisman" username="StartupInst"]

The best part of my job as a full-stack developer is finding out about new technologies that make previously difficult parts of development easier and more fun. The first time that happened for me was on the back end with Ruby on Rails, taking away the need for a mess of configuration and non-application code and letting me focus completely on the code that makes my app do what it’s supposed to. And the latest on the front end is React, a new JavaScript library built by Facebook for building user interfaces. It makes building the front end code of web pages (or mobile apps, using React Native) a lot more like the object-oriented programming back-end developers know and love.

You should try to get involved in everything when you’re first starting out as a web developer. You’ll find technologies, patterns, tools, and tasks that you enjoy more than others. That experience can help you decide later on what to focus on and where you want to dive deeper.

[bctt tweet="Try to get involved in everything when you’re first starting out as a #webdeveloper —@mikeisman" username="StartupInst"]

You will need to be a generalist if you work at a startup, where there usually aren’t enough people to employ specialists dedicated exclusively to the front or back end. And even at more mature companies like Hudl, our engineering team is full of full-stack developers who are strong in both the front end and back end.