What makes a good web developer.
Tags: webdev, programming, beginners, discuss
Published: 2022-08-06 11:57:47

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.