What makes a good frontend developer?
Tags: mindset
Published: 2018-09-05 03:48:38

---
title: What makes a good frontend developer?
permalink: good-frontend-developer
tags: mindset
canonical_url: https://zellwk.com/blog/good-frontend-developer
description: Frontend developers have only one job—we're here to provide a great experience for our users. And here are the skills we need to do so.
published: true
---

The frontend development industry is getting confusing nowadays. More people think that frontend developers are people with great JavaScript skills.

But there's more to frontend development than JavaScript.

And as professional frontend developers, we need to understand what our jobs are.

## What does a frontend developer do?

Frontend developers do one thing only.

**We provide a great experience for our users who visit our sites (or apps).**

We understand what our sites (or apps) should do. We craft them up (sometimes from scratch), and we polish them before sending them over to our users.

We put hours of work into perfecting the sites we build. Only to hope that users will enjoy our sites. And if they enjoy our sites, we hope they'll come back and visit us again.

**But what does a great experience mean?** What skills do we need to provide a great experience to our users?

## Skills a frontend developer needs

I'll argue that frontend developers need to master four different skills.

1. Empathy
2. Code
3. Design
3. Communication

### Empathy

What is a great experience?

We won't know unless we understand who are users are.

**On the internet, we serve a huge variety of users.** And they're different from us.

People use different computers. Some people use a Mac with a 4k display, some use a Windows machine, and some others use old phones without good computing power.

People use different browsers. Edge, Chrome, Safari, and Firefox are the four most common browsers out there in the world. But there are [more browsers than that][1].

People have different abilities. Some people have perfect eyesight, some wear glasses, some are colour-blind, and some can't see at all.

People also have different preferences. Some people browse with the mouse, while others prefer the keyboard.

The point is, everyone is different.

**And we're here to provide an experience that everyone enjoys**.

We need to understand that people are not like us. And even if they're different from us, we still provide them with a great experience.

"It doesn't work on my computer" is not an excuse we can get away with. If it doesn't work for someone else, we'll dig deep and figure out what's wrong, and we'll fix it.

### Code

**We need to know HTML, CSS, and JavaScript.**

Yes. All three languages. *HTML, CSS and JavaScript are our tools.* How can we be good frontend developers if we don't know our tools?

But when we talk about code, many developers focus on the wrong thing. They focus on code quality.

I'd argue it's not about the code. If the experience sucks, it doesn't matter if the code is clean and well maintained. Heck, if you want to write the cleanest code of all, don't write any code. Serve an HTML file with no CSS and no JavaScript. I promise it'll be clean.

**Code quality matters, but the experience we provide matters more**.

When we've given everyone a good experience, we can turn our attention inwards and clean up our code.

Experienced developers may be able to write clean code while crafting the site. That's a skill they learned through experience.

**Younger developers should focus on the experience they can provide first**. Once they've nailed down the experience, they can learn to polish their code. And we get the best of both worlds.

### Design

Design is important.

When I talk about design, I mean both visual design and interaction design.

**We're the best person to work on design because we know how the web works**. We know what can be done and what cannot be done. We also know how people use the web. And we care enough to keep ourselves updated.

**We are not here to take over a designer's job**. They have their skill sete, and we have ours. We augment each other.

We can critique a designer's ideas.

This brings me to the final skill.

### Communication

Developers have a reputation to be anti-social freaks. We prefer sitting behind our computers and type code all day. If we can, we don't even want to talk to anyone.

It's okay if we don't want to talk to anyone.

**But if the need arises, we must be able to communicate.** Here are some reasons:

1. If you work with a designer, *how can you critique their designs (or point things out)* if you don't know how to talk to them?
2. If you work with other developers, *how do you split work*? How do you decide what practices you're gonna use for the project?
3. If you work with a project manager, *how do you explain why a specific feature is taking so long*, or why certain features cannot be done? How do you convince them?
4. If you talk to a user, *how do you find out the problems they're having* with your sites?

The points above are just some possible reasons. I'm sure you can think of more.

The point is, we need to know how to talk to people if we want to get buy-in from them. **If we can't communicate well with anyone, how can we produce our best work?**

<div class="jsCkClone" data-should-not-clone></div>

## Wrapping up

It's pretty hard to become good at frontend development. We need to wear different hats depending on the situation, and we need to be pretty good with all these hats.

It may be hard, but it isn't possible. Frontend development is a skill that takes time to master.

I'm not even close to mastering everything in the frontend world right now. I'm still working towards it.

I'm proud to call myself a frontend developer. I hope I'm a good one.


[1]:	https://en.wikipedia.org/wiki/Usage_share_of_web_browsers "Usage share of web browsers"


<hr>

Thanks for reading. This article was originally posted on [my blog](https://zellwk.com/blog/good-frontend-developer). Sign up for [my newsletter](https://zellwk.com) if you want more articles to help you become a better frontend developer.