10
Feb

First of all, let me show you how I personally classify web developers (and I’m referring to “programmers” specifically):

  1. Out-of-date college graduates: People that rely on what they’ve learned in courses they’ve taken whether in college or in more specialized diplomas. They either don’t realize that web development is a constantly evolving field, or are just too lazy to learn anything after they get their degree. Most of the time they do web development for the check at the end of the month, not because they actually enjoy what they’re doing.
  2. Amateurs: The i-don’t-care-as-long-as-it-works crowd. Amateurs are those self-taught developers who rely heavily on modifying others’ applications to suit their needs, or just copy/paste code, and tweak it randomly until it works. Not only they produce terrible code, but they tend to think they’re the greatest thing ever, too.
  3. Professionals: These are the ones who are passionate about what they’re doing (regardless whether they’re college graduates or self-taught), and constantly learn more, keep themselves up to date, and look for ways to improve the quality of their work, regardless of their current skill level.

I personally still have a lot left to learn in web development, but I do consider myself a “professional” based on the description above.

Most developers though, unfortunately, fall under the first two categories. Here are the reasons I think why:

1. Most people think programming is more “doing” than “reading”

Or they just don’t like to reading. They think it’s best to immediately get their hands dirty instead of reading how to do things properly. You rarely (if ever) encounter a programmer who’s reading a book that is not about the basics of “something”. Many programmers tend to think that the basics are all what they need to learn before they can start coding great applications, when, in fact, it takes much more than that, especially if you’re working with other people.

To quote one of the best software construction books,  “Code Complete“:

Pat yourself on the back for reading this book. You’re already learning more than most people in the software industry because one book is more than most programmers read each year (DeMarco and Lister 1999). A little reading goes a long way toward professional advancement. If you read even one good programming book every two months, roughly 35 pages a week, you’ll soon have a firm grasp on the industry and distinguish yourself from nearly everyone around you.

You can read more about this particular issue in Coding Horror’s article.

2. Most colleges don’t prepare their students for the real world

I’ve never heard or seen one college course that teaches anything beyond the basics, even in those specialized programming diplomas. Why aren’t they teaching good programming practices? frameworks? testing? debugging? documentation? version control?

Not only that, but even the basic material they teach tends to be out of date. I have yet to meet a single college graduate who actually learned something up-to-date in college.

3. The I-don’t-care-as-long-as-it’s-working mentality

Most developers I’ve met focus on the end goal (making the application work) rather than the details (organizing their application). This mentality is supported by managers who push developers to deliver their work on a short deadline that forces the developer to hack his way into his goal.

Eventually, you’ll get something that does work, but very hard to maintain and handover.

4. “Human Resources” departments’ requirements

HR has a habit (here in Saudi Arabia at least) of asking for two requirements for any development position:

  1. A Bachelor degree.
  2. X years of experience in that field.

In reality, having a college degree doesn’t really make you more qualified than someone who doesn’t.

having X years of “experience” on the other hand is completely irrelevant in my opinion, because you’ll never know how those years were spent by the potential employee.

All what these two requirements do, in my opinion, is filter out a plenty of possibly highly qualified candidates.

I’ve discussed this with an experienced HR manager, and he was aware of that, but he said that they ask for those kind of requirements so they can save time processing less resumes!

5. Users don’t care whether an application’s code is good or bad

The average joe will never tell the difference between an application with good code and another with bad code as long as the performance is acceptable.  This motivates incompetent developers to keep doing what they’re doing the way they’re used to, without ever thinking about improving their programming practices.

Of course, an application with a bad code will start to smell in the long run as it requires more expansions and maintenance, slowing down its development or even eventually killing it.

Conclusion

Seeing how it’s almost impossible to change everyone’s perception of  web development, it’s better to just focus on improving yourself, and encourage other developers around you to do the same thing by showing them the benefits. Or maybe showing them how organized your work is, and (hopefully) igniting their curiosity to learn more.

If you’re clueless about how to improve yourself in programming for the web; I’m going to write an article soon about just that.

Category : Web Development

3 Responses to “5 Reasons Why Most Web Developers Suck”


dani February 20, 2009

sometimes they are a person with multiple personality, depend on the time and job quality :)

Jaison February 25, 2009

Looks like you are supporting yourself more in the article, but exceptions are there.
:)

Mashhoor Aldubayan February 25, 2009

I understand how you might see it from that perspective. But the points I’ve mentioned were reasonable, don’t you think? :)