What makes a good web developer?
December 3rd, 2010
While the experience is still fresh in my mind, I will write a bit about what got me thinking “what makes a good web developer?” and answer that question.
Many times over the last two years I’ve had to work with the code of other developers. I always find something wrong with it, even beyond any specific issues I’ve been asked to fix. Does that make me the better developer? Maybe. I’d like to think so, and hope it’s not just ego. There are always a few ways to do something, but there is usually a better way or a best way, which is what I aim for.
Today I was working with code written by someone I know through a friend, and my friend thinks this developer is an intelligent person. The developer in question was a computer software programmer first before a web developer. My inclination is to believe that a computer programmer is “smarter” than me because they have knowledge of something I know little about. Being smart or being a good software developer doesn’t make you a good web developer automatically, which shouldn’t be surprising. Still, I felt strangely conflicted questioning the work of someone “smarter than me” and so I reevaluated what I think it means to be a good web developer.
Anyone who can make a functioning website can call themselves a web developer. But, who can call themselves a good web developer? I’ve broken it down into four sections, each greater than the last on a scale of proficiency:
- Clean Code
- Continuous Learning
- Elegant Solutions
- Bending the Rules
If these have a front-end web development bend, it’s because that is my area of expertise. When I refer to web development or code in this post, I mean the front-end stuff like HTML and CSS.
This almost goes without saying. I am a bit of a perfectionist when it comes to making sure my code is “clean”, which means that it has the bare minimum of markup, follows modern standards, validates and is readable by myself and other developers. This is the bare minimum of my requirements for a good developer, but it does go in hand with the next step up.
This is so important because the web is relatively new and technologies are shifting all the time. Remember when Flash used to be cool? Not so much anymore. Go even further back to when frames, animated gifs and table layouts were practically de rigueur. Way back when, I had my site reviewed by a peer online and they graded it 89/100. Today I’d give that same site a big F.
Some developers are too complacent. Maybe they went to school in early 2000′s and got a piece of paper that says they know HTML, which is where learning ends for them because they can make a site now. They stick their heads in the sand and are happy to remain ignorant of new standards. It seems like a lot of work to learn new things and shift your way of thinking, so they don’t. Really, it’s easy to stay up to date unless you slack off and don’t polish your skills over the years. Then all this new stuff seems overwhelming.
Only with practice will a developer begin to see new and better solutions to old problems, whether they discover it on their own or with help from others over time. For example, in the code I was working on today there was a comment in the HTML that said “it’s weird but it won’t work without this.” First of all, I think rarely if ever should you need this excuse in web development. Secondly, I knew it was an easy fix to make in the CSS file and I could get rid of some unnecessary HTML markup. It’s not because the person who wrote the code wasn’t smart, but because they simply hadn’t had a lot of experience with coding or taken the time to look for a better solution.
I say “elegant” solutions because coding solutions shouldn’t be so esoteric that other developers at your level can’t even decipher what you’re doing. Solutions should just make sense. And lots of code doesn’t mean it’s good, or smart or impressive. It’s harder to do more impressive things with less code, and less code is a good aim for web developers.
Bending the Rules
I think an expert in any field will know when it is acceptable to bend the rules of their discipline without causing detriment. For example, a good web developer will know when it is okay for a page to not validate. (This is a point of contention among developers, so I don’t want to go into too much detail in this post.) They will also know when it’s okay to add markup for presentational needs. Didn’t I just say to avoid something like that? In most cases. As both a designer and developer, it’s an internal battle over “less markup!” and “but this is the way it’s designed!” When you are a developer working with a designer, it can cause some friction, but if the design has been decided then you just have to implement it as cleanly as possible. Don’t jump straight to thinking “I can’t do that” or “it’s wrong”—think of it as a challenge, and don’t be lazy.
I might have missed some things. Or, you may disagree on some things. What does it mean to you to be a good web developer?
Comments are closed on this post.