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.
Not me... I'm an Internet Application Developer. Web Developer is so 1990s...
-1 Uncomfortable Truth
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!>
Real programmers don't care what language they need to write applications in. They write them in C.
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.
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.
Sadist.
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.
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.
I open up MS-Word. Type things in, move things around, paint borders, etc. etc.
then I...
File-->Save As...
web page
Ta Da! I'm a web designer
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.'"
There's not too many GUI toolkits that need to be taken seriously any more. One for mac, one for windows, three for Unix :) And the Unix ones all work on mac and windows... Food for thought for those unused to such fare.
"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
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?"
stuff |
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
Yeah, he'd just rap on top of some guy reciting the RigVeda or something.
"We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
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.
Nah, Chicks dig scars, or giant robots.
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!
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.
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.
Remember, Slashdot does not have a -1 disagree moderation, and no, troll, flamebait, and overrated are not substitutes.
No kidding. About a year ago, I saw an ad for a company that was looking for a Linux, Windows and Cisco system administrator (MCSE and CCNA required, CCIE desired, RHCE desired); who could code in C/C++, Perl, Python, shell scripting, HTML/CSS and Javascript; who could configure IIS, Active Directory, Apache, Bind, Samba, etc.; and who had experience maintaining Oracle 9i.
They were offering something like $40K a year.
MCSE? No, sir...I don't do Windows. Yes, I am an idealist. What's your point?
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.
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?
"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."
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.
You seem a little....
IBM doesn't play chess with the Universe.
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!
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 ..
I really like this post.
Although I'm afraid your drunken language might have blurred some of your points, you do have some very good ideas here.
The best part:
.SOMETHING. in language @#$%, then you learn something. Then read a book about it, and you will be better than any certified monkey.
Ok that is the drunk version, but I went to all kinds of trainings, and 99% was useless. Just write an app that does
I love it--learn by doing.
The worst part:
You sound too cool to be working with that crap. Come back to open source! We need you!!
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.
Remember, Slashdot does not have a -1 disagree moderation, and no, troll, flamebait, and overrated are not substitutes.
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
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.
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.
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