The Web Development Skills Crisis 471
snydeq writes "Fatal Exception's Neil McAllister raises questions regarding Web development skills in an era of constant innovation. Sure, low barriers to entry give underdog technologies ample opportunity to thrive without the backing of name-brand vendors. But doesn't this fragmentation of the Web development market put undue pressure on developers to specialize? Choosing one tool to be your bread and butter from a field this broad is one thing, McAllister writes. Recruiting talent for a Web project when your technology requirements eliminate most of the applicants is another. The result is a crisis, McAllister concludes, one in which maintaining a marketable skill set gets more and more difficult as the so-called state of the art changes on an almost daily basis."
quit whining (Score:1, Informative)
Web development has been like this from the beginning. Or at least since 1996 when I started paying attention. There were hundreds of competing technologies, programming languages (both interpreted and compiled), APIs, IDEs, protocols, and plugin frameworks back then, and there are hundreds if not thousands now.
Of course no team can master, support, or manage more than a small fraction of those, so there is a continuous shakeout. Then the battlefield clears up some, until the next fad or wave comes along, with dozens of new startups in its wake.
Wah my finger hurts.... (Score:1, Informative)
how is this a new observation? The web has always been a mess. It's forever in some sort of alpha/experimental state with no real standard as to what technologies to use. There are security holes all the time that need to be fixed, bugs in browsers that make developers split their resources to handle multiple browsers.
And that's how we likes it. The web's craziness is also it's strength. It's really quite amazing what has been done on the web, considering that it works pretty much the same whether you are on a Windows, Mac, BeOS, Amiga, x86, PowerPC, ARM, or what have you. You can even fire up an old version of netscape and have lots of the web still work.
I don't think that less choice in technologies is a good thing for anyone, it won't reduce cost of development. It won't make it easier to learn how to program for the web. It won't increase the number of good web programmers. The more ways that we have to build web applications the better.
Re:Sillyness (Score:4, Informative)
Re:Honest question (Score:5, Informative)
Exactly.
I would add, the real problem isn't even the buzzwords. It's the incompetence in HR departments.
I see this in my own company when I try to hire developers.
I've learned how to navigate this bureacracy now, but it was tough at first. I had candidates with 10 years experience with JavaScript who were given phone screens. They explained they'd used hidden iFrames and tags to retreive server-side interaction since the late 90s, but their resumes were never handed off to me because they never specifically used the XMLHttpRequest object so it wasn't precicely "AJAX" as its currently defined.
This kind of madness just takes so much energy to overcome, for both candidates and hiring managers.
Now, when I create a Req for a new hire, I keep it simple. If we're hiring a web developer, I look for self-described proficiency in Java, ASP.Net, Python, Ruby or PHP. Any will do.
When I hire a windows developer, I look for the same with Java, C#, or C++.
I'm of the belief that if you're been developing web apps with C# for 3 years, you can be an expert in Python and PHP inside 6 months.
So far, this has worked great.
Re:Really? (Score:2, Informative)
I work for a very big company [slashdot.org] and I can't help but relate to the point you're making:
I think it's a shortage of companies willing to take the effort and risk to train.
My manager is involved in a local IT industry body and recently gave us an internal talk about how the government complaints of the lack of IT professionals with these skills. The local government has a ton of J2EE and .NET projects and has been asking companies like mine to take over them.
So far my company doesn't want to spend on training because it's not an identified area of opportunity here! All internal J2EE and .NET development is done in our China office with the exception of consulting which is done mostly by the people in the US or Europe.
I've asked my manager several times this year about helping me out with part of the cost of training but so far the answer is there's no need for such skills here!
My solution so far has been to train myself [javapassion.com].
Re:What's the crisis? (Score:2, Informative)
Excuse me, but REAL programmers use butterflies.
Of course, there's an Emacs shortcut for that.
Re:Huh? (Score:2, Informative)
Re:change emphasis away from specifics (Score:5, Informative)
Those types of jobs ( especially if they include only a PO Box) are written in order to show that no US Citizens are interested/qualified for the job. The are called Labor Market Tests. The job can then be given to an employee that requires company based sponsorship (eg H1-B Visa).
To see an example of such a job ad (for a job at Cisco) click here: http://www.jobdestruction.info/ShameH1B/Library/Archives/FragomenCiscoJobAd.htm/ [jobdestruction.info]
Python & Django (Score:3, Informative)
There are a lot of other cool Python web technologies out there as well:TurboGears, WSGI, Plone, Zope, Twisted.
What major company hired Guido van Rossum, BDFL [wikipedia.org]? What major company rolled out GoogleAppEngine (based on Django)? Ruby's pretty hot right now but so is Python.
Re:change emphasis away from specifics (Score:3, Informative)
I suppose it depends on the company. We always put something like "competitive compensation" or something similar.
Generally speaking, everyone even somewhat likely to care was part of the sharade. We had a spot we needed to fill, we had a person that we wanted to put in the slot, and we really didn't want to waste time interviewing a pile of random strangers. Advertising the job was just a formality. Hiring random strangers is a lot of work, and it's too easy to spend months interviewing and still end up with some guy that is only good at making stuff up during an interview.
Like I said before, I work for a small company now, and I don't have to worry about this sort of stuff. When I worked for a large corporation I tended to use advertisements that were ridiculously specific. Something like this:
Ideal candidate will have 2.5 years of experience in web development in Python specifically CherryPy with Zope Page Templates (SQLAlchemy experience a plus), and at least 5 years experience with the Wonderworks SCADA package. Manufacturing experience is required, experience in a food processing plant a definite bonus. If your last name happens to be O'Shea then this is the job for you.
OK, mentioning someone by name wouldn't have been appropriate, but hopefully you get the idea. However, I am pretty sure that I could have gotten away with almost anything that didn't make the company look bad. Including putting starting wages on the ridiculously low end of the scale. I certainly could have used something like this:
Starting wage is $9.25 an hour, or more, based on experience. Benefits available.
You've probably seen tons of ads like that. And no doubt Mr. O'Shea has enough experience to make substantially more than $9.25 an hour. In fact, he probably has enough experience to make precisely what we have budgeted for the new position.
Listen, I don't mean to be cynical, but hopefully this example does show the importance of making friends with your current co-workers. Most of your job offers are going to come from people that you have worked with before and who were impressed with you. I will also admit that I was involved in the hiring of one complete stranger that was very good (in many ways he was better than me). Of course, the first time we hired for the position we didn't even look at his resume. Instead we hired the wrong person, and then had to scramble when the person quit a few weeks later.