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."
I think the emphasis needs to be less on specific and proprietary technologies and more on how a candidate thinks. While the task and platform/architecture at hand is important, picking someone because they know flash, and you're "doing" flash may be the wrong reasoning. Instead, focus on picking someone who has some proven background, strong in at least a couple of areas. Verify they really are strong, but then ask them questions that make them think. Give them problems to solve. Give them something unsolvable to solve. See how the react.
Getting a sense of how they maneuver in problem-solving situations is going to be a much better indicator of their eventual worth than some credential (certificate, etc.) in the chosen technology du jour. A good tech can always and easily adapt to new and different ways to do things.
Is the state of the art really changing that fast or is it all a problem of "buzzword turbulence", if you will?
Slashdot, fix your code or at least hire someone who is competent at it to do it for you.
It's not a shortage of web developers, it's a shortage of web developers with skills.
<Complete your profile by adding a signature!>
because you are a moron.
if someone was building a house, they would hire carpenters.
if someone was building a gigantic stadium, they would hire welders.
they wouldnt hire somebody 'who has experience with ryobi chop saws and drills' or 'must have 10 years experience with fiberglass hammers'. you would assume the person could figure out that a fiber glass hammer is not a big deal compared to a wooden hammer or a plastic hammer, and a ryobi chop saw works pretty much like every other damn chop saw.
then again, if you were in the building trades, you wouldnt call yourself an 'engineer' just because you can do amazing things with a crane or a nail gun.
Boo Whaa, I only know how to work on horse drawn wagons. How will I ever keep up with bicycles, automobiles, motorcycles, aeroplanes, jets, rockets, ram jets, scram jets, what every the next weeks propulsion choice is.
There is fragmentation because there is choice possible. There is fragmentation because people want to use this or that new thing. It is a lot better than stagnation. We are testing new ideas constantly. Good ideas get adopted by the originating community, and even by competing projects. Eventually you will be able to do the same things in most the environments.
I think it's a shortage of companies willing to take the effort and risk to train. I had this conversation with my father, who was bemoaning the lack of skilled mechanical engineers. If your requirements are specific, don't expect a huge pile of people (without jobs, mind you!) to be waiting in the wings for your spot to open up. You need someone who might take a year or two to get up to speed, but once there will be good.
THEN - and this is important - you have to be a good place to work and... raise compensation when the person is now the highly trained mythical creature that you would have given your right arm for the year before. Your goal should be to keep his resume un-updated and off monster.
So yeah, there is a definite shortage of people pre-trained for your job opening. There's also a shortage of gold at the end of rainbows and fountains of youth. I think this is a matter of unreasonable expectations.
W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
It's not a shortage of web developers, it's a shortage of web developers with skills.
Correction:
It's not a shortage of web developers, it's a shortage of web developers with currently in-demand/what's hot now skills.
Traditional web applications are like the mainframe applications of yesteryear. They're very form/request-oriented, and they're not necessarily meant to be particularly responsive (although in some ways, web form apps can be the most responsive) but instead they're meant to enable to allow a lot of people to work with the same data at once. And they can be assembled from baling wire and chewing gum...
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
Web development is such a dead-end job. Most web sites are by kids, imbeciles and graphic designers who fancy themselves as coders. Trying to maintain or develop their code is soul-destroying.
The next time you try to use a small business web site to buy something, do yourself a favour and look at the page source.
If your details aren't being sent out over the intartubes unecrypted, and if you still want to make the "purchase" you might see a way to pay nothing, or bare minimum with a discount.
Scotland is a good place to start looking.
Stick Men
I've run into this very thing before in trying to decide what to study. There are so many different web languages, each of which come with their own toolsets and frameworks. How are we expected to keep up with it all? I don't want to commit to a language or technology that might easily be eclipsed within 2-3 years.
My biggest concern is the amount of time required just to keep up with the Jonses. How much time can I siphon away from paying work on php to learn about rails or django? What about the X number of new Ajax toolkits that have recently emerged, or some supposedly fantastic deployment set? I think of how fast javascript has accelerated since 2005 from digraceful reject to shining star, and it truly terrifies me how little I know of it. I'm used to mastering a language, understanding its uses and differences from others, then applying it towards the future. Do I have time to do that any more?
In the end, I came to the conclusion that I would just study Java and its ilk, because it seems to have made major inroads in enterprise applications and it's free-ish. That's good enough for me, and it bodes well for long term stability.
checking for libvirus... no
ERROR, libvirus.so not found, terminating
If you lower the hurdle that much then raise it suddenly, more than a few people are going to bash their faces in. The barrier to entry being so low is what causes the lack of good developers, people plateau too quickly, few excel.
Excuse me while I gather the virgin sacrifice and assemble the pentagram required to solve your problem
Right now .NET, J2EE, LAMP seem to be the key 3 divisions in the field. Whats really pissing me off is I was recently interviewing, and I was getting people wanting 1 years experience in .NET 3.5 which has only be released for a few months, and I was getting all these interview questions about brand new stuff that no one has done. J2EE is basically Weblogic jobs. LAMP doesn't seem to have much steam in the Enterprise, but mostly for small companies or small applications. Also I've been getting all kinds of screenings from people who don't know what they are talking about. Nowadays the trend seems to be how fancy of an AJAX UI can you create, barring the obvious difficulties of cross platform development and support for older browsers. I can see whats going to happen: many projects are going to fail because AJAX applications are very difficult to develop for a huge audience and reliably and requires much more skill than just html.
That's the entire problem. Companies love to whine about shortages of employees, while it's their own fault. It was always easier when companies treated skilled employees like assets, now they treat them like disposable labor and are paying dearly for it.
The list:
pensions
training
raises
bonuses
perks
All gone except a 3% cost of living raise that is just compensating for inflation. They complain and bitch and moan about turnover and no "loyalty" when they're the ones at fault. They took away all of the reasons to be loyal to cut costs, so employees jump for a new job with higher salary because salary is the only benefit left.
#1. If they're taking 6 months, you've got the wrong person. Anyone who is decently qualified would be able to pick up the new tool in less than a month.
I can't even imagine how to learn (to the level required of a professional developer) any large subset of, for example, the java, python, C++ standard libraries in less than a month, and I'm already at least passingly familiar with all of them. I will stick with my gardening for a career path, I guess. While I have no doubt any high-schooler could learn the basic language syntax of the above examples in less than a day, the libraries are typically the real value in any application development language.
#2. You'd have to be a damn good project manager to be able to spec out the requirements sufficiently that you could hire a contractor like that.
Or have started already... or have decided on the tools... or have the tools decided for you already by the existing environment... etc etc.
Which is why you want to hire people who can learn new approaches quickly. And the goods ones can. They know the technology, not the tool
See my response to #1, above. Off to my garden now... :D
Since they only match acronyms and can't discriminate from a person capable of easily assimilating new technologies vs. someone can't can't and/or is very inexperienced.
More acronyms = more HR inefficiency.
-M
This has been a problem of mine as of recently as I have been looking for a web developer/design position. A lot of these so called "requirements" for jobs specifically state that a certain field is required in order to even begin to be considered as for the job.
Anyone worth their weight in gold should be able to pick up and learn a new language very quickly. It shouldn't matter what it is as long as the application has shown applications previously across several languages and willingness to adopt a new language if so needed. I try to explain that I am mostly self taught, and at college we were taught to learn the general concepts of programming THEN apply them to a language but quickly get swept under the rug because I don't already know their language.
While it's certainly not a bad thing to specialize in a language, it should not be a hindering point to learn something new. Now if I could only convince potential employers of that...
Always kinda blew my mind when people get anal about specific technologies.
Do I know JavaEE? PHP? Ajax?
Doesn't matter.
Why?
Because I know programming. WTF does that mean? It means that language/technology is irrelevant because it takes me a matter of days to pick up on new languages/technologies.
Anyone who touts a single language as some kind of achievement is fucking pathetic.
FLAME ON!
A good professional programmer should be able pick up a new imperative language well enough to get started in a few days. It is almost certainly take longer to learn about the application area then it will take to learn a new programming language.
If Kanye West is a good profession song writer, he should be able to write a decent country music song in a few days, too.
I agree. A skilled, successful web developer can work in different development environment. Neil McAllister does not really understand what he is talking about here. For instance, he compares Flash to AJAX, which makes little sense. AJAX is more of a tool then a profession. "If you're in charge of a Web-based software project, how do you go about recruiting development talent?" He believes the main problem is the fragmentation of philosophies and environments used. I agree with you that the main problem is finding good developers PERIOD.
At-will employment is also part of the problem. Because I can just jump ship if I want to (many parts of employee contracts are unenforceable) the company has little incentive to train me. Why spend the money to train me when another company can then hire me for slightly higher wages and reap the benefits of the other guys sending me to school?
There's a reason your parent post is modded 5 and you're still modded 1.
You claim to not know PHP, yet you also claim to know it would be a step backward. I've seen much more ASP-WTFery than Perl- or PHP-, too, so how do you explain that?
As long as proper design is a consideration, Perl and PHP are perfectly fine languages to use as Web development tools. You bash these languages, yet you provide nothing to back up your negativity. People who do this are usually called “Trolls” 'round these here parts.
Have you driven a fnord... lately?
You must wait a little bit before using this resource; please try again later.
At will employment works both ways.
Companies can, and will, drop you at any moment without a reason given if it serves their needs.
Loyalty is earned. If a company doesn't value me and pay me/train me accordingly of course I will jump ship if I find what looks to be a better opportunity.
I can only assume that a "career programmer" or and hr person started this thread as it feels grossly out of scope from reality.
Step 1 - The Posting, as a job poster, are you looking for script developers, or application developers. In general, scripts are loosely types, and applications - being compiled and required a high degree of stability - are strongly typed.
Once you realize this, you will also realize that script languages PHP and Ruby and JavaScript [ Python, Perl, etc ] fall under a very specific easy to find umbrella.
Conversly, C#, Java, ASP... are also very similar and _could_ be found under the same umbrella.
Find out what type of programming you ACTUALLY do. Procedural, Imperative, Event Drive, Prototype, OO.... FIND OUT.
Step 2 - The Interview (More important than step 1) - once you've found the candidate, get one of your true developers into the interview. Time and again a line has been drawn between a "career programmer" and a "developer" or "geek" and a geek should know another geek, because they will share information like mating rabbits, and your "career developers" will get lost in the discussion. It's very possible that while they are catching up, the geeks will have already devised an approach to the company's problem.
Geeks are curious, and smart, and take pride in their work. It's a matter of pride to know why, and if they don't, to find out, and to make it work even if the prescribed methods fail.
In their spare time, geeks are geeking, and becoming better, smarter, stronger, faster. "Career programmers" use their time searching for the next highest salary, shmoozing for a cushy course to attend, and perhaps drinking beer (killing brain cells)
"Career programmers" are only in it for the money. Intelligent or not, I've always found inferior results from someone who doesn't generally care about the problem / logic at hand.
Step 3 - Architecture. Now that you have the tool, apply it to the project. A persons' preference and specialization is still a factor, but the manager hedging that "We do Ruby" is not an excuse.
I would agree that you can't test every framework or library can be tested to fit, but I think you would agree that a framework with a strong, open, and well-documented API is better (aside from bugs). With a true geek, API is all he requires to start laying the foundation on your application, and it doesn't require months.
PS - yes, geeks need sites like this to aggregate their data at the pace they are able to acquire it, but simply posting and reading here is not a clear indicator.
Hogwash! The problem with web development is knowing the limits and oddities of various sub-tools, such as DOM and specific browser vendors; or even the quirks of something specific like Rails. It's NOT about mastering some magic equation or closures. Those who learn and adjust to this changing swamp of sub-tools are the most successful.
The biggest problem is lack of consistent and usable web GUI engine standards. This is what the industry needs the most.
Table-ized A.I.
There's also a lack of jobs from companies that recognise that people can learn skills if they're halfway decent...
That's what java developers said about PHP guys 5 years ago.
Sometimes my arms bend back.
I am 43 years old. I have been programming for over 25 years but just can't keep up with the new "state of the art" programming techniques/APIs and frameworks that seem to come out every year. When I was young and hungry, I would spend my nights reading computer books and newslists. Now that I know I'm mortal, I just don't want to do this anymore. I spent 20 years learning C++, Java and .NET - but just don't want to relearn how to do my job over and over again.
Am I a dinosaur? - perhaps, but I'm also yet another experienced developer who is sick of the constant change and will be soon making the move into "management".
Perhaps, this is the reason why at 43, I'm considered an 'old dude' amoungst my peers!
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.
Large company or small, that's it right there. If you want good people, you have to know how to interview for good people. This is one reason why, in new companies or even new teams in big companies, a top-1% "rock star programmer" is so damn valuable as a "seed engineer". Get one really smart guy, teach him how to interview properly, and you'll have a team of highly qualified engineers down the road.
you can only really hire someone better than you are by luck
The reverse is quite important too: really good people can easily detect when they're bing interviewed by a dumbass, and won't work for that company. Bright people who ask obviously good and on-target interview questions attract other bright people, more than any salary you can probably afford to pay.
Socialism: a lie told by totalitarians and believed by fools.
Dude, it's a shortage of people. It's caused by decades of birth control and a philosophy that you should wait till you're 30 before you start a family. It's in every field of endeavor. It has nothing to do with education, or loyalty, or any of that shite. It has to do with demographics, and it's going to keep getting worse, most likely for the rest of your life.
-1 Uncomfortable Truth
Long working hours, no compensation
6-day work weeks
I am in the Casino/Sports Betting industry and good enough to tell them 7-15 5days a week or bye-bye .. but most of my colleagues are working for shit, 6 days a week 2 shifts ... That is in Costa Rica....
Moral of the story : learn stuff, do not count on training, have an attitude, and be good. ...
We just lost a support guy who was answering phones (software developer engineer), and a designer, because he was sick of answering the phone on sunday afternoons - yes, designers make nice pix 9-5, then they wanna go home and be with their family or smoke pot .... they are artists, just like programmers ....
BOSSES DO NOT UNDERSTAND THAT. Period. But they will learn, as all you IT people stop being pussies and tell that what you want, then do not make exclusions.
I can do it, you can do it ...
OK, terrible week, 8+ 4-5 hours a week of coding at work + coding at home (for other clients).... so I had my Friday night drinks before shooting some people on PS3 ...
Anyways, everyone stop whining, start downloading ebooks from pirate bay, learn how to use prototpype, PHP and get a job and have an attitude.
Problem is: people (especially in the US) want free (mostly useless) training. Elsewhere (esp, Europe and Asia) people download/buy a book on whatever, and then write a program just to learn it. They end up in a good job where they perfect.... Problem solved.
Ok that is the drunk version, but I went to all kinds of trainings, and 99% was useless. Just write an app that does .SOMETHING. in language @#$%, then you learn something. Then read a book about it, and you will be better than any certified monkey.
For the record: I am a software engineer with many years in unix/net administration, and I coded PHP/MYSQL before landing in a full time coding MSSQL ASP (!!!JSCRIPT!!), and JS.
I am working on a sportsbook software, and have 3x the assignments I can do. I am a healty nerd who rides bikes, exercises and scuba dives I do not live in my grandma's basement. In other words; I am a normal person and can learn enough technologies and sustain+save well enough, because I care and want to train.
Can you do it? Yes. Just want it?
No I am not the writer of "Oprah you can do it" or "Chicken soup for the soul" ... I am jsut a slightly drunk (now) programmer/IT admin/tech geek who thinks that instead of all the wining, all these people can make a very nice living without ripping people off, and without learning things day by day.
ahmm.... I go and watch some chick-flick my wife wants to watch .... life is not perfect
Just my 2c ..
True story: I just interviewed at a very small company. I already had another job offer on the table, mind you, and just went for the interview because a friend/former coworker had just gotten hired there. So it wasn't a big deal to me if I got the job or not. But I really did want to work with my friend again.
The job was a LAMP dev position. I have been a web developer for 8 years and have loads of experience with some very hot skill sets, lots of successes under my belt, plus the all important aptitude and desire to learn new things all the time. Don't have a lot of PHP experience, though the consulting firm made me take an online test and I scored 80% on it. Why? Because I know how to program, and PHP is just another language that lets you write web pages. So I used my existing programming knowledge to do well on a PHP test. I scored perfectly on another test given me by the firm.
I disclosed all of this to the interviewer because I don't want to get a job on false pretenses. The tool proceeded to ask me reference manual questions like "What does function x do?"
This isn't sour grapes about not getting the job; I had another one waiting (ironically using another technology I don't have much experience with, got it on the strength of other skills) and I don't know if I would have taken it anyhow after seeing the place. I laughed afterwards that this guy's idea of an interview was to ask me ref manual questions as a way of determining my programming aptitude. I hope he gets someone who knows every PHP function and still doesn't know how to write decent code. That'd serve him right. You get what you ask for.
blah blah blah
The bitch, in my opinion, is that the guy who knows Perl::CGI and Perl::Mason can probably learn Ruby on Rails and have a better understanding of the underlying concepts (having been doing this sort of thing for years), but most companies would rather higher the guy who read the Ruby on Rails book. He has the "right skill set" (meaning he has a vague understanding of the language we're working with right now). The other guy has a conceptual grasp of the whole pie, and could easily learn the specific skill, but his lack of experience with "whatever we happen to be using at the moment" makes him somehow unsuitable.
I don't need a million points of light, just two points of multi-mode fiber and a 10 Gig-E router.
We've got a similar situation in Switzerland - Positions are typically only available for people with at least a year (often 3, 5, or even 10 years) of proven work experience in the particular technology in use, while they don't care one bit if you've got five years experience in that general area, and have learned at least five similar technologies in that period.
It's the curse of HR. Human resource people have no idea what we do or how to hire us so they go by the buzz word of the week (usually spelled wrong - looking for Pearl programmers?). Companies that let engineers hire engineers get a much better quality of employee I think. If they then offer a good work environment then they'll probably have an awesome crew that can kick serious ass.
At what price learning? At what cost wisdom? The price is a man's peace of mind, and the cost is his life.
Well, for starters, if they paid to retain the employee, they wouldn't have a position to fill, right? Second, when they do get that opening, they can't as easily convince another good programmer to come on board to fill that position.
That was the point of this thread. The perceived shortage isn't really an actual shortage. It's like a high school dropout complaining that there is a shortage of companies paying more than minimum wage. There is likely more than enough programmers with the required expertise. It's just a lot of them have probably moved on to working in areas that actually pay more reasonably. Good programmers are very versatile.
Some of us aren't fortunate enough to get sick.
Try being the responsible party for 18 radio towers in 3 Texas counties, a dozen Cisco routers and switches, a few dozen servers, hundreds of websites, a few thousand customers and a few tens-of-thousands of email accounts, on-call 24/7/365 with no vacations and no benefits and not wish you could get sick just to have a day off. Employers, these days, want your blood in exchange for a milk-bone. "We recognize your value to the company, so we're giving you a $.50 raise, a manager title and moving you to salary." (hint, that's PHB speak for "bend over and prepare for double the hours with no overtime, now squeel!")
I almost wish I would get fired so I could take unemployment for a while and get a day off - but unemployment is for, as you said, "fucking pussies."
I would get another job doing what I enjoy (web development), but every job requirement that I read wants a Masters Degree and fluency in every language since COBOL (which I am fluent in)
The good jobs with good benefits are usually doled out to the candidates with the longest list of credentials, least experience and best ass kissing lips. And those guys are generally rabidly defending their positions against any up-and-comer who might pose a threat to their gravy train. Everyone else has to claw their way up to the bottom rung before getting kicked off the ladder to make way for someone who will work for less money, fewer benefits, and more heartache.
It started as a reply to a troll, but turned into a rant.
"Lame" - Galaxar
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.
If his story sounds fishy to you, a simpler explanation would be that his story was inaccurate. Don't forget occam's razor.
Add to that that some companies are either too cheap to hire good admins to set up web environments properly so the developer has to also be a jack of all trades in that dept.
You can also add the fact that if a client has got some problems internally on their networks
you must be able to bypass this so as to make your app 'work' in their environment...or else you get the old...'well this doesn't work so it's not a good product'.
More like stop being a cheap ass and get web servers configured properly...
If i could just code, I guess i would be much more advanced in my field then I am....
but i would not be able to set up a full domain with webservers and cache servers running
in a multi os environment.