DEV Community

Ravavyr
Ravavyr

Posted on

What makes a good web developer.

Years ago I asked a more senior dev "How many good developers do you think there are in the world."
He thought about it for a moment and then said "Probably 5".
I laughed at the time...but the longer I've been in this industry, the more I think he's right.

We all copy code from other sources. We all use google, stack overflow, w3schools, MDN, and other documentation sources that we blindly follow. Often we copy full code libraries into our systems that are completely useless, just so we can use one tiny sliver of its functionality that we should probably have written from scratch.

New developers are taught to use automation as much as possible.
I dare to say not a single newbie React/Vue dev has a clue how to configure a linux server to actually be secure and run a site.
NPM install does it all for them and most hosting services have a one-button install for things as well.

PHP devs all learn laravel it seems and just run composer to do the same for them. Granted they still need a PHP stack so they dabble.

I'm not hating on any languages in particular but merely on the processes we teach the new developers. We teach them so little that when real world problems come to bear, they have no idea how to solve them.

Even with all these tools at our disposal, a great many sites and applications are just atrocious. Broken functionality, broken interfaces, bad user experience plagues us everywhere.
I don't claim my stuff's all that much better, but I know I often try.

So, What Makes a Good Developer...

For a start, languages do not matter. You can learn to code with any language. You can learn to build almost any application with any stack. Some will perform better than others. This is something learn in time, or by googling sufficiently.

I would say our best skill as a developer has to be "how to search using the correct terms that get us to the correct sources of information". This takes time to get good at.

Eventually any developer can learn to write code. Syntax is very similar between most languages and most systems aren't all that complex. Everything uses variables, loops and if statements and that covers almost everything you ever build.

The following items, however, they come with time, and some developers never learn them all, partially because not all developers need to, but I do think most good developers just want to feed their curiosity anyway and end up learning these over time.

This is not for everyone, but these are things I consider vital in a "Good" developer.

  • Understanding Business objectives [the "WHY" of what you're building and what it means moving forward, learn to grasp what you don't know and predict what's coming]

  • Performance [how to address bottlenecks, and improve load times if it's an app/website (this is some parts networking, some parts just image sizes, some parts code optimization/refactoring, some parts rethinking your logic), implementing these things during initial development makes live easier afterwards]

  • SEO [how search crawlers index your content and how to best code for this, or how to block it when necessary. Do this wrong and your clients will rip you a new one if they're a content driven site]

  • Accessibility [how to write code so disables folks [up to 11% of the population has some sort of disability be it visual, or auditory that you need to understand to write good accessible tools. This should just be standard for any developer nowadays.]

  • UI/UX [as a developer you should care how users interact with the systems you build and how you can improve their experience. Often it's just dumb things like adding hover/active states, and making sure buttons stand out and are easy to click. Blindly relying on a designer means you're stuck at their skill level. Designers are not programmers and often do not think about how things need to be coded to match the design. Your job is to figure this out and suggest improvements along the way. Most designers are glad to receive feedback and will work with you to do this better. ] Additionally you need to learn this and speak up when a design is obviously bad, or when management makes stupid decisions that hurt performance/functionality/usability. That is absolutely your job and shrugging it off just means you can't take pride in your work.

  • Administrative needs [The business objectives give you some of this, but once a site/app is built you then need to address the people using it administratively and how you can make things better/easier/more efficient for them which in turn can make or break a business over time. This takes time and frankly most companies don't think about it until years down the road, as a developer you can be the one to guide them to improve their systems]

These are not learned overnight. They will take time and effort, as all things worth doing are. I hope you take them to heart.

Top comments (4)

Collapse
 
andrewbaisden profile image
Andrew Baisden

Great points! I think problem-solving is one of the stand-out qualities good developers need.

Collapse
 
ravavyr profile image
Ravavyr

I agree, problem solving should've been on the list, but at the same time everyone says "problem solving", but what is it really?

How do you define it? I mean "Keep googling until you find the answer" ? lol

I'd like to say it's the "knowing what to search for to solve a problem, but also knowing who to ask and when to ask".

I think much of it comes with time, and every developer has a ceiling or limit. They're great up to a point.
Some devs have a much higher limit than others. As a PM or lead dev you often have to learn to handle that and manage people's strengths and weaknesses.

Collapse
 
emil profile image
Emil

Problem solving as a good developer in my view is to take the full responsibility about the progress and their personal development. I know so many developers who need a ticket for everything since they are not able to take the responsibility and build up their own plans for the required solution

Thread Thread
 
ravavyr profile image
Ravavyr

At my company we say everyone has a ceiling. It can take some months before you see it appear for a developer. Some developers never get past the "need a ticket for everything", while others develop the ability to see the bigger picture and can learn to properly manage projects. Others develop the ability to solve bugs quicker than most with certain tools and skills. Others get really good at one particular stack or language.

As a dev lead or project manager you'd need to get good at spotting their ceiling, so you know who you can rely on to do what tasks.
As they say, do not judge a fish's ability to climb a tree, but put him in the water and let him swim.

And of course you're gonna get those who like to pretend that "anyone can be good at anything" which is sort of possible, but do you want your team to be good at things, or great at them?