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."
Really? (Score:2, Interesting)
My Problem With Web Development (Score:3, Interesting)
Recently, I had the opportunity to get back into doing some internal web development after years of not doing much web work.
My issue is sorting out all the new technologies that have come out since then. I don't have time to learn them all before I pick one.
I think I'm going with Ruby on Rails, but I have no idea if this is the best choice. I hear good things. You go by word of mouth.
Sillyness (Score:3, Interesting)
My very recent experience in hiring a web dev (Score:5, Interesting)
My (admittedly high) goals was a web developer that new PHP, could work with Linux (SSH), and had very basic client-side programming (C, Perl, whatever) to develop more tools for us down the road. Oh, and someone that could do some graphic art work would be a definite value-add.
Every single person that came in was an mainly ASP or ASP.NET programmer. Only two had Linux experience. Three or four had Photoshop experience. As a programmer myself, I ventured to the hopeful candidates on what languages they would like to learn next, or what skills they want to improve upon. Across the board, they were all happy staying with ASP, didn't want to learn PHP, and some inquired into when we would want to move from PHP to ASP. I had intentionally kept the field open to non-PHP people to try and find a true programmer that just didn't have those letters on their resume, but the majority were sticking themselves to a single language.
When all was said and done, we hired someone. He didn't know Linux, and didn't know PHP, but he was a definite "Active Learner [wikipedia.org]". He was self-taught in nearly everything he knew, and was willing to learn any language we needed him to learn. He was one of the two candidates that had expressively mentioned that programming was just picking up a language and using it; all the rest were ASP specialists and thought that using another language wasn't worth their investment.
Re:your technical requirements eliminate candidate (Score:3, Interesting)
Re:Really? (Score:4, Interesting)
There's a shortage of web developers with the skill of learning new skills. There are plenty of one-trick ponies that will be flipping burgers in 5 years when their "skill du jour" expires and they can no longer operate a computer with any meaningful capacity. For example, if you are great with flash but you refuse to believe that a large MB flash app on the index page may cause a drop in traffic, then better practice up your "would you like fries with that?"
Re:change emphasis away from specifics (Score:5, Interesting)
Don't laugh. A couple of years ago I saw a very similar job ad. They ran it for months. Nobody with the skill set they wanted would have taken the job at the offered rate (less than $10/hour). I don't remember if I emailed them asking if they were out of their fucking minds.
Re:change emphasis away from specifics (Score:3, Interesting)
No problem; I've never run into a contracting agency which wouldn't swear up and down that their people had 10 years of experience in any skill you could come up with.
Want to save time? Hire your "Winston the Wolf" now, without concern for whether they know the technology. The time they spend getting up to speed on the technology-of-the-week will be much shorter than the time it takes you to find the ideal already-skilled-now candidate -- particularly since the latter may well be bluffing.
Obviously this doesn't apply to complex and well-established technologies; don't hire a SQL DBA who doesn't know SQL. But for the tech-of-the-week stuff, it's a different story.
Re:change emphasis away from specifics (Score:5, Interesting)
You're obviously joking, but I've had it happen to me. I actually had an incident in which the employer was requesting, for a mid level position, 2 years more experience in Java than were possible except for its creators: the JDK had been out for about 4 years at the time and they were asking for 6. I decided it was a simple error on their part and applied anyway. To my shock, I got an angry call from their HR department, who were actually calling to chew me out for applying even though I was "unqualified" for not having the required 6 years of experience. At first I thought it was a joke and laughed, but it became clear they were serious. I tried to explain to them that there were perhaps 7 people on earth with what they were asking for because the JDK had only been out for 4 years, but they were having none of it, and with some parting insults, hung up on me.
In all I'm glad I don't work for them, any company that stupid and unprofessional would not be good for my reputation to have on my resume.
Re:change emphasis away from specifics (Score:5, Interesting)
You'd be surprised how often people run ridiculous ads because the people doing the hiring already know who they want to hire, but corporate policy requires that they advertise the position.
I've done it.
Fortunately, these days I work at a much saner employer.
As an steam turbine engineer... (Score:5, Interesting)
Don't skimp on the training. Its exactly what makes your employees experts in their areas and want to stick around. We also have casual Friday every day, and that doesn't hurt either.
Re:My very recent experience in hiring a web dev (Score:4, Interesting)
I wish I'd met you in some of my job interviews. I've found that in general, admitting to an employer that I don't already know everything about the language and have 20 Fortune 500 sites to show for it is the kiss of death.
When I hire technical people, I look for them to have some knowledge relationship to what we're doing (for example, when I was hiring a DBA to manage a sybase system, I didn't care if we got Oracle applicants, as long as they knew a little SQL), and I look for relatively junior people. I find when I hire senior people they tend to tell me everything will be fine, but then when they actually start work they want to throw out all my work so they can redo it with their pet technologies, while junior people will let me train them up to do it my way. And my way works for me. And junior people cost less.
There are relatively few programmers (or, for that matter, managers) who understand that a good programmer can just pick up the required technologies and deal with it, rather than having to hire specialists for every stupid language and format.
I've long since understood that the way to make money as a web developer is to get certified on the latest drivel that comes out of Microsoft, no matter how bad it is, and get jobs doing it. If you instead determine what is the best technology for each client/employer and use it, you'll get marginalized.
Re:Really? (Score:5, Interesting)
You're right, but that flies in the face of contemporary management theory.
The way companies do it now is they "buy" the skills they want: they demand outrageous skill combinations, and don't settle until they get them. Then they offer the person the bare minimum they think they'll take, and plan to never promote them. At a management job I had a few years ago, I got told by senior management that my staff would never get promotions, because that would cost money, and that the employer didn't care if they left because of it, because we'd just replace them. (I started looking for a new job the next day. I didn't want a promotion, but I figured if they're that stupid I didn't want to be there.) I told them I preferred to hire junior people, who were cheaper and more malleable, train them up and them promote them to mid-level. They basically told me I was amusing.
Meanwhile, these employers who don't care if their people leave and will lay them off at the drop of a poor earnings report are the first to complain about "lack of company loyalty" among their employees. I've reached the point that if an employer complains to me about lack of company loyalty, I tell them outright that I have no more loyalty to them than they have to me, and explain to them that I base that assessment on how I've seen them treat their other people, and give examples.
Surprisingly, they've actually tried to keep me after that.
Re:Really? (Score:5, Interesting)
Tell me about it. I kept my programming and web development skills up to date, but I was fired for being sick and being there for four and a half years. If I had been there for five years or more, they would be paying me more for pension, bonuses, more vacation time, raises, more perks, and bonuses.
So it is better to get rid of people like me who get sick on the job from the stress, and hire someone who will work for peanuts and be disposable in a few years and keep their 90% IT turn-a-round time for getting rid of old employees and keep hiring on new ones at cheaper rates.
Re:Too much to keep track of (Score:4, Interesting)
There's a shortage, and it's bad (Score:5, Interesting)
This just in: people who can constantly master and excel at new technologies with minimal lead time, constantly changing specs, expectations, tools, and standards, and put them in front of end users in rapid, frequent development bursts are hard to come by.
Wow, who'dathunkit?
I think there's a trifecta of issues that plague the hiring of web developers:
(1) Rapid Technological Change means no OJT via college. Unless you're doing your web tech in Java, there's a decent chance you're not getting college grads trained in your language and tools. The good ones will have adaptable skills of course. You do know how to distinguish between the good just-graduated devs and the bad, right? No? Oh...
(2) Crowd of Pretenders lowers expectations of skill/quality, and salary. Shockingly, unqualified idiots are willing to work for less. Some places hear about these mythical highly skilled web devs willing to work full time (+?) for $32k a year, and generously offer $40k. They get no response, or they get morons. This reflects poorly back on web developers in general, especially those who are skilled programmers.
(3) An incredibly low barrier to entry for many models means talented people start their own companies. If I'm one of the most skilled, and can handle (or partner) to provide design, programming, and business aspects of a web page, there's a decent chance I can find a niche where I can make a run at a real business. Which is why there are a thousand Bantrs and Flickrs and Cheezbrgrs and Meebo Zeebo Zimbra Flumbrs all spun up. The expected value for a buyout by Google or being the next SmugMug is so high, even a small chance makes it worth it, especially if you can get enough funding to put food on the table.
And #3 has an inverse: the low barrier to entry also means that a lot of people get their godaddy hosting, start tossing together web pages with their pirated photoshop, and think they're ready to make 80k a year.
It's so horrifically bad, I've considered going into business as an interviewer. I've had remarkable success getting good devs on my team. I think a major problem with companies hiring web developers is: they don't know how. They don't know which skills out there are transitive to skills they need. They don't know which related skills (security, networking, system administration and integration, database architecture) might be critical for their project.
As a lot of cogent programmer/bloggers have pointed out, you can only really hire someone better than you are by luck. I keep coming across companies who could really, really use some programming/IT experience - in fact, it's so bad, they don't even know WHY they need it. Their knowledge isn't sufficient to even inform them to what good staff could do for them. You start a little project for them and ask, "Well, why not do this?" "Oh, you can do that?" "Sure, and we could also..." "Really? Can you...?"
Ultimately, you also get what you pay for. If people expect "good" web developers to work for way less than skilled programmers in other languages, they're nuts.
OTOH, I think the specialization argument is bunk. How many specialties are there in application programming? Everything from databases to development tools to reporting, 3d software, operating systems, embedded, RTOS, a/v en/decoding - we could go on all day. But web is fragmented? Heck, web isn't *that* fragmented. It's one of the things that makes development so fun, fast, and effective using it as a platform.
Heinlein said it best (Score:3, Interesting)
"A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects."
Design Skillz (Score:2, Interesting)
I think the colleges/university's are partially to blame as well. It seems that any of the kids I interview know how to use flash, photoshop, dreamweaver, etc, but the schools don't seem to be teaching them the creative process.
It's as if the schools teach them how to hammer nails into a board and then send them out into the world letting them think that they're carpenters.
It would be nice if the schools would force the students to learn nothing but design principles the first year and then start introducing them to the different tool sets. If you have a strong concept of the pre-planning/design phase, then your better suited to choose from the various tools for any particular project or problem.
I'm assuming that the schools need to have the latest and greatest flashy tools to try and wow the potential students. I don't know.
Re:My very recent experience in hiring a web dev (Score:2, Interesting)
I don't know PHP, but I doubt it is that much harder then Perl/Python or any other scripting language. The syntax for embedding it within the web page is similar to ASP. The rest is the same. You get/post the form, access the form fields, dynamically print html, etc.....maybe access a database through the database library of choice....We know this but HR does not. And as a result many developers don't even bother to apply to jobs where they know HR will filter them out. Another issue is any paycuts that may be given for less experience in the new language. Going from 80,000 doing ASP.NET to 40,000 for PHP which is still essentially the same thing aside from the specific syntax is not a great career move.
Also, if an ASP developer does PHP, there are actually companies (one of my ex employers did this) that will assume that in those years of doing PHP the ASP/ASP.NET skills got outdated and so they will pass that candidate over. PHP I think is less of a dinosaur issue because it is pretty popular and there are plenty of jobs using it. But a lot of people are addicted to Billy boy's products.
I smell a rat (Score:3, Interesting)
To my shock, I got an angry call from their HR department, who were actually calling to chew me out for applying even though I was "unqualified" for not having the required 6 years of experience.
The weird thing is that you got a phone call from them. Why would they not just send you a generic rejection letter, but actually make the effort to pick up the phone and take the time to call you personally? Something seems fishy -- like it was posted to satisfy some requirement but could get them in trouble if someone actually found out that it was fake and that they had no intention of filling the position -- if it existed in the first place.
Re:Huh? (Score:3, Interesting)
Going from PHP to multi-threated C#/Java apps is also not trivial since you have to pick up locking/etc...
It's true that a lot of stuff is irrelevant, but some stuff matters. I know C/Java/etc.. However J2EE has enough libraries/new stuff that I would probably take a non trivial amount of time to wrap my head around it, maybe months.
Re:Really? (Score:4, Interesting)
He seems a little like the former management and former coworkers who created the stress in the first place by name calling, having unrealistic work schedules, ignoring civil rights employment acts like the ADA (like telling a person with schzioaffective disorder to just "snap out of it, or be fired"), and lastly not being able to do what I do and somehow thinking they know more about it than I do.
Re:change emphasis away from specifics (Score:3, Interesting)
Sort of on the flip side of that, there was an ad back in the mid-70's from CSC. They had been contracted by the FAA to design and build the next-gen Air Traffic Control system. The ad listed a couple of must-have's and a bunch of nice-to-have's.
I was interested and called. As the woman was running through her check list she was getting more and more excited as she realized that not only did I have all of their technical wish list, I was actually a former Army Air Traffic Controller. She said something like, "My God! You not only know how to program this thing, you actually know what to do with it!"
She then said in an off-hand manner, "So, where did you get your degree?" I replied, "Well, I'm about 10 hours short of a Bachelor's in Finance, but I didn't bother finishing it because I was too busy making money programming."
She almost cried because, although I was pretty much the perfect candidate, she absolutely *had* to have people with at least a BA.
It all worked out for the best: that project turned out to be a complete disaster and I ended up working at Xerox in Palo Alto instead.
Re:Really? (Score:5, Interesting)
Well, I'm not so sure about all this whining about I can be fired at any moment because this kind of behavior has been around for far more decades than the internet. And the article isn't about people getting fired/hired.
What I do see is a growing problem of new software development becoming full of bad practices.
Old code example. Perl CGI. It's ancient and by modern terms considered a has-been. But it has some advantages: It's very well documented and it works very well. But it's not easy to write big fancy applications using CGI. So people say it sucks.
Moderate code example. Perl HTML::Mason. It's a better application platform than CGI that allows for people to start using real software to write real applications that do real things. It's very well documented and works.
Modern code example. Ruby on Rails. This is a fantastic platform for making applications very quickly with a lot of bells and whistles. But there is little documentation compared to prior platforms and precious little documentation for what it does.
So where is the crisis? When you use Rails you only know Rails. But you don't have good exposure to how to do Ruby, CSS, JavaScript. Case in point: Rails uses prototype and scriptolicious for JavaScript. These libraries are dependent upon Oject JavaScript, which is not trivial. But sooner or later, you get into a jam with Rails where you have to know now only JavaScript, but Objective JavaScript, and then prototype, and finally Rails. So in order to use any javascript that Rails is based on you have to be a pretty proficient user of JavaScript.
Multiply this by Ruby, HTML, CSS and you have a high investment in four core languages just to write a real application. So you have this entry barrier problem where some guy buys a book on Rails and becomes good enough to do something. But not something that can have any functional extension beyond what Rails can present.
The crisis is that you get a long ways in a few lines of code. And if something goes awry -- you have to know a hell of a lot about all the underlying languages. Each one of them can become a nearly full time job trying to keep up with.
Specialization will continue on the Rails level of focus. But you can't get an effective development team (can it be done alone anymore?) unless you keep a few core members who have great skills at one or maybe two of the underlying core components.
I don't think there is a solution to this until we can eliminate all the junk in these core components (HTML, CSS, JavaScript) so that writing code isn't such a complete pain in the butt. There's some evolution that has to happen out there.
Re:and how... (Score:2, Interesting)
Easy. A bad web developer is the talented one that gets what he needs and then ditches the company without notice. A good web developer is the talented one that sticks with the company, even through some difficult times. Now, with that out of the way, lets see if you can fit the rest of the pieces into the puzzle.
Re:Really? (Score:3, Interesting)
Out of curiosity, how do not feel like a scumbag for using one person's "imaginary property" without paying for it, then turning around and using the knowledge you got from it to sell more "imaginary property" to other people at great profit? They're giving you the knowledge you need to make your living and put food in your mouth, the least you could do is buy their books.
Sigh.