The Web Development Skills Crisis
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."
Everybody and their cousin seems to be calling themselves Web Developers...
There's no place like localhost
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.
Except for ending slavery, the Nazis, communism, & securing American independence, war has never solved anything.
As many libraries there are for the web, there are still ten times as many GUI toolkits for traditional GUI's. Oh, then operating systems, platforms, virtual machines, etc, etc. The whole blog is silly. As complicated as web programming has become, it's still many times simpler than trying to create a gui in almost any other language (without an IDE).
If an officer ever threatens to taze you, say you have a pacemaker.
My organization just started a unique online system, which was custom written by a vendor. The software is all PHP with a Linux/MySQL backend, and uses OSS software throughout. I took the reins to get the system up and running, but now, for the first time, we started looking for a dedicated web developer to publish works to this site, work on troubleshooting, and work with the vendor to design modifications to it. We went through over a dozen interviews over the past few weeks. It was bloody awful.
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". 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.
So you're equating A fiberglass hammer vs a wooden hammer with Ruby on Rails vs Django? Maybe if using the fiberglass hammer required that the user speak English while the wooden one required Spanish. A better analogy would be asking Kanye West to write you a hit rap song in Sanskrit. Not. Gonna. Happen.
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.
-- Will program for bandwidth
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.
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.
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.
I'm glad my company (Japanese) doesn't have this problem. My last job had about a week of actual training that wasn't very useful. My new company is sending me to external training ($$$) for about 30 days. Then I get about 12 weeks of company training in Japan. And then 5 weeks of on the job training, and back to Japan for another 4 weeks. Its about 6 months of me doing nothing productive, just training heavilly. The company is making a serious investment in me, and from what I have seen from it in the last month, I will hopefully be sticking with them for a long time.
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.
Even those who arrange and design shrubberies are under considerable economic stress at this period in history.
I disagree. With PHP you are exposed to HTTP headers, cookies, linux and apache (via cheap shared hosting providers), relational databases, shell commands, sockets, concurrency and potential client base of billions. It's the gateway drug of programming.
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.
"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."
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.
The real Sig captains the Northwestern. This one captains
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.
That's not entirely true. Many languages have their specialties and some things are harder then others. From Basic to C is irrelevant for the basic structures, however learning points is nontrivial.
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.
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.
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.