Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Hiring Programmers and The High Cost of Low Quality

CmdrTaco posted more than 7 years ago

Programming 572

An anonymous reader writes "Why is it so hard to find good programmers? And why should companies favor hiring fewer more senior developers rather than many junior ones? Frank Wiles discusses his thoughts in his article A Guide to Hiring Programmers: The High Cost of Low Quality"

Sorry! There are no comments related to the filter you selected.

Sigh. (5, Insightful)

SatanicPuppy (611928) | more than 7 years ago | (#20134857)

FTA: ...Experience is key, but not necessarily in ways you might imagine. Time in the saddle, with a particular language is not as important as diversity of experience. Someone who has worked in several disparate industries, a generalist, is often a much better developer than one who has spent years in the same industry. There are exceptions to this, but in general I have found this to be the case. Bonus points if your developer was a systems administrator in a former life.

Some of the best developers I know were originally trained as journalists, mathmaticians, linguists, and other professions not normally associated with software development...


As a generalist programmer, originally trained in cognitive science, who has formerly worked in several disparate industries, was a systems administrator, programs in half a dozen languages (including perl), etc, etc...Apparently I'm supposed to be making twice my salary. Goddamnit!

*stomps off in search of his boss*

These days, being a programmer generalist (even worse, one with admin experience) just increases the types of shit that get dumped on you...Where they might have had to hire a person to do the front end GUI code, a person to do the database work, a person to set up the server, and a person to code all the services that need to constantly run in the back end, instead, since they've got you, you can do it all, while the specialists sit around drinking coffee and making catty comments about how much better they are at what they do than you are.

My advice is specialize in something to the point where when you do any work on it, it's immediately out of the comprehension of a generalist or a less accomplished programmer...Sure, everyone will hate you, but they'll have to deal with you, and you'll be in a position to dictate terms. What's a generalist got? They're great employees. Big deal. Being a great employee is like being a great dog; at the end of the day, they'll still euthanize your ass when you're no longer of use.

//Not bitter or anything.

Re:Sigh. (1, Informative)

Anonymous Coward | more than 7 years ago | (#20135123)

However, specializing to such great extent means that you will become virtually unemployable outside of your present position. Generalists here have an advantage of having a lot more opportunities that fit their resume. Which means that once e.g. corporate culture at the present employer changes to the worse, they can easily get another job.
Besides, you'd want to specialize in your employer's business or a blend of business and technology rather than the technology itself for obvious reasons. That just might not be your cup of tea.

Re:Sigh. (4, Interesting)

nurb432 (527695) | more than 7 years ago | (#20135125)

But the advantage of being a talented generalist is you have a N+1 higher chance of remaining employed then someone that can only do one thing, no matter how well.

Re:Sigh. (2, Insightful)

djupedal (584558) | more than 7 years ago | (#20135191)

"But the advantage of being a talented generalist is you have a N+1 higher chance of remaining employed then someone that can only do one thing, no matter how well."

Tell me again? Just how is it you've managed to get this far in life having never fallen victim to office politics?

Re:Sigh. (4, Insightful)

misleb (129952) | more than 7 years ago | (#20135481)

Tell me again? Just how is it you've managed to get this far in life having never fallen victim to office politics?


Three possible methods... may be used in combination:

1) Small companies/organizations
2) Being completely oblivious to politics and not getting involved
3) Consulting/contract work

Note, I'm not the original person you were asking. I just thought I'd chime in.

Re:Sigh. (1)

nurb432 (527695) | more than 7 years ago | (#20135711)

Unfortunately, all 3 can and often do involve politics. Especially the 3rd on your list. Thats how you get and keep your contracts, playing 'the game'.

Re:Sigh. (1)

nurb432 (527695) | more than 7 years ago | (#20135687)

Office politics effect everyone of course, but if you have more skills you still have the advantage.

Re:Sigh. (4, Funny)

TheRealMindChild (743925) | more than 7 years ago | (#20135173)

My advice is specialize in something to the point where when you do any work on it, it's immediately out of the comprehension of a generalist or a less accomplished programmer

Perl and Batch files it is!

Re:Sigh. (3, Funny)

Duhavid (677874) | more than 7 years ago | (#20135421)

Not specific enough. Just batch files!

Re:Sigh. (2, Insightful)

GuyverDH (232921) | more than 7 years ago | (#20135279)

Being a specialist can have it's benefits - mostly to the person who is the specialist.

However, being a specialist also has drawbacks.

Let's see....

#1 That's not my specialty, I don't know anything about it. This is used for 99.9% of any discussion that is outside the scope of their specialty.
#2 How could I know that my application would do that? I don't know (xyz operating system), I only know (xyz language).
#3 What do you mean I can't use all the resources on the box, I'm the only one using it right? (as you try to explain to the specialist that they are logged into a UNIX box with 40 other programmers)
#4 Why can't I load up xyz app server and abc web server, that's what I'm used to using? (as you try to explain corporate standards)

The list could go on and on...

This is where generalists, or at least broader experience bases work the best. Specialists have their places, usually in an isolated system / network where they can do no damage.

Re:Sigh. (5, Insightful)

Frumious Wombat (845680) | more than 7 years ago | (#20135297)

Every five years someone rediscovers, The Mythical Man Month [amazon.com] and thinks they've had a great insight. People should be handed a copy of this when they start their tech jobs. Managers should have it inserted forcefully into appropriate orifices. Hardback copies for senior management.

Basically, some people are just better coders, and adding sub-standard assistance just ensures late, sub-standard software. Adding people to late projects makes them later.

Re:Sigh. (5, Funny)

realthing02 (1084767) | more than 7 years ago | (#20135353)

^^ No kidding, it's like this guy just read about the Code team as surgical group. I'm a baby programmer (young, i don't actually program babies) and even i think this is old news.

Re:Sigh. (0)

Anonymous Coward | more than 7 years ago | (#20135409)

Every other week, a story is linked here that repeatedly references The Mythical Man Month and a flock of didn't-RTFA's rushes in to shout "The Mythical Man Month! The Mythical Man Month!"

Re:Sigh. (1)

Bucc5062 (856482) | more than 7 years ago | (#20135347)

lol...I'm sorry, are you my clone? I think I could have written that word for word. As a "generalist" for (sigh) too many years I find the pat on the head quaint, but not comforting. On the plus side, us generalists can shift gears better, handle a downsize better and maybe see the light now and then.

Specialists may rule, but generalists ROCK!

Re:Sigh. (3, Insightful)

tx_derf (1060278) | more than 7 years ago | (#20135403)

I'd say you've got it entirely backwards. It's been my experience that those who make themselves irreplaceable in any one pigeon hole make themselves unpromotable. The specialists get stuck doing the same thing forever until the technology evolves and they're left behind with no usable job skills. I've been developing software for 15 years. I've been in several industries doing many different things from real time safety critical embedded software to device drivers to building GUI interfaces and databases. And yes, I got my start doing IT while I was in college. I managed to dance around the office politics and change jobs at appropriate times and have landed in a very good situation, becoming a lead architect on a software project even though that wasn't why they hired me just 6 months ago. I'm the generalist with a diverse background, including IT, that the author talks about. I'm having great success making some very significant contributions because I learned a long time ago how to learn. I got here, knew what I had to grasp about the project to come up to speed quickly and what I could figure out later. And now I'm the lead planning our next big upgrade because I can do it. I've already directed one small upgrade since I arrived. You seem happy entrenching yourself so I say more power to you. But my experience says this guy hit the nail on the head.

How do you tell the difference??? (5, Insightful)

EmbeddedJanitor (597831) | more than 7 years ago | (#20135569)

While many people have an intuitive feeling as to what constitues a Good Programmer from a Bad Programmer, there are very few quantitative measures. Bad software does not look vastly different from Good Software.

By some estimates, Good Programmers can be a factor of ten or more productive than Bad Programmers, yet they are seldom paid more than a few tens of % higher. It would be far better for most companies to pay double the going salary to attract only the best, but unfortunately business thinking does not seem to be structured that way.

Most organisations base their planning on some convenient notions like programmer-months etc, using some standardised measure for programmer capability. These measures are great because they make the spreadsheets look neat and tidy. They also make all the outsourcing logic work: "I can get programmers in country xxx for $10 per hour". Untimately they are flawed because you get what you measure. If you don't pay a premium for good programmers you won't get them. You end up spending mucch more on crappy programmers.

Re:How do you tell the difference??? (0)

Anonymous Coward | more than 7 years ago | (#20135847)

Good Programmers can be a factor of ten or more productive than Bad Programmers, yet they are seldom paid more than a few tens of % higher. It would be far better for most companies to pay double the going salary to attract only the best, but unfortunately business thinking does not seem to be structured that way.

Of course not. Actually paying a person based on their value to the company would be against everything that capitalism stands for, that is, producing high-priced goods using the least amount of input cost possible. Same goes for the goods... price has nothing to do with value.

Easy answer. (5, Interesting)

Estanislao Martnez (203477) | more than 7 years ago | (#20135677)

As a generalist programmer, originally trained in cognitive science, who has formerly worked in several disparate industries, was a systems administrator, programs in half a dozen languages (including perl), etc, etc...Apparently I'm supposed to be making twice my salary. Goddamnit!

See The Market for Lemons [wikipedia.org] . The existence of tons of bad programmers, and the inability of employers to tell them apart from good ones, drives the salaries of all programmers towards that of the average programmer.

an experienced crappy programmer still ... (2, Insightful)

El_Muerte_TDS (592157) | more than 7 years ago | (#20134907)

... produces crap. Good programmers are not cheap, people that want to hire them are.

Re:an experienced crappy programmer still ... (1)

ivanmarsh (634711) | more than 7 years ago | (#20135217)

Indeed... you get what you pay for... and sometimes not even that.

Which perl programmer wrote this (0, Troll)

BlackSnake112 (912158) | more than 7 years ago | (#20134909)

This article looks like it was written by a perl programmer.
What to 'work' from home... check
flexible working hour... check
make sure perl is mentioned often... check
higher better people for more money and you save money... check

I like the last one but it has to be justified. The programmer better be worth the 90, 100, 120K a year to be paid it.

mythical man month (3, Insightful)

Anonymous Coward | more than 7 years ago | (#20134917)

that is all.

"good enough" at less expense (0)

Anonymous Coward | more than 7 years ago | (#20134939)

"Why is it so hard to find good programmers?
They are not visiting Slashdot enough :) no seriously though, it might not be a lack of good programmers as it is a failure to find them/willingness to hire older programmers who are more experienced [more on this is a second]

And why should companies favor hiring fewer more senior developers rather than many junior ones?
younger/less experienced programmers like most fields have lower salaries, it could be that it is felt that hiring less experienced programmers is justified by the lower salary [if both are good enough for the job why bother paying more?]

Re:"good enough" at less expense (1)

SatanicPuppy (611928) | more than 7 years ago | (#20135003)

That's pretty much his point. In his opinion, you're far better off hiring a handful of senior guys than the slew of newbies who could do the same work because:

1)The quality of work will be better, so less rewrite/bug costs.
2)It's a lot cheaper to have 4 guys rather than 12 guys, just in terms of office costs.
3)Senior guys aren't as mobile, so you're not going to have to be constantly filling holes and training new people.

It's a "perfect world" situation, because it depends on your experts really being experts, and we all know how often a loser with experience is hired into a position they aren't qualified to fill.

Re:"good enough" at less expense (2, Insightful)

Qzukk (229616) | more than 7 years ago | (#20135631)

It's a "perfect world" situation, because it depends on your experts really being experts, and we all know how often a loser with experience is hired into a position they aren't qualified to fill.

Not only that, in the absence of Junior programmers, you have nobody to promote to the Senior position. Which I guess is great if you want to whine to the government about how hard it is to find skilled workers that were magically endowed with their Senior-level prowess.

My own experience... (2, Insightful)

Schnoogs (1087081) | more than 7 years ago | (#20134941)

I'm a senior software developer in my company with roughyl 15 years worth of experience and a CS degree under my belt. The newer developers are either mechnical or electrical engineers who learned to program with a book in one hand and a keyboard in the other OR they're right out of college waiting for their CS diploma to be mailed. I find that although they have a great understanding of the languages we use they have very little grasp of design patterns and architectures. Stuff like that can only come from experience and knowing what works well given the scenerio. I find that when left on their own they simply are incapable of coming up with an effective architecture...or I should say anything beyond the obvious 3-Tiered approach. I'm at a point where I design our software systems and hand them off to the less experienced developers. I would prefer we trade in several of them for one more seasoned veteran since they will be in a better position to come up with simpler and more powerful designs that require less coding. My two cents

Re:My own experience... (4, Interesting)

Anonymous Coward | more than 7 years ago | (#20135029)

Instead of only hiring cs people with degrees in engineering and cs, broaden your horizons. You may be pleasantly surprised at what someone who has learned programming from a different background can bring to the table.

Re:My own experience... (3, Interesting)

Schnoogs (1087081) | more than 7 years ago | (#20135127)

The thing is, is that 99% of the people who put in their resumes are CS graduates. I guess we're only as good as the pool of talent that expresses interest in our openings. I understand what you're saying though and you might be 100% correct.

Internal Inconsistency in his Argument (1, Interesting)

mosel-saar-ruwer (732341) | more than 7 years ago | (#20134975)


Anyone who has been a developer or managed developers can tell you that an expert can accomplish as much as 10 average developers. However, companies typically pay only a 10-20% premium for an expert over the average programmer. Whether or not their title is Lead, Architect, Development Manager, Guru or whatever nomenclature the company uses. I am not saying that if your average developer is paid $50k/year that you should pony up $500k/year for an expert. The employer/employee relationship never works like that, but what employers don't seem to realize is that in the end paying more saves them more.

This guy should be ready to put his money where his mouth is: If there really is such a thing as the über-programmer, who is literally 10 times more efficient than his average [median] colleague, THEN BY ALL MEANS he ought to be paid 10 times as much in salary - maybe even more.

The very fact that such disparities in salary don't exist means that either the über-programmer does not exist, or else there is something so screwy about the internal politics of corporations that the suits in management won't stand for some dweeb hax0r making ten times their salaries.

But I think that if the über-programmer really does exist, then eventually the free market will figure that out, and compensate him accordingly.

Re:Internal Inconsistency in his Argument (0)

Anonymous Coward | more than 7 years ago | (#20135021)

The comments under the article suggest that the uber-programmer has to become a consultant, join a startup, or do something else to reach their 10x earnings potential. That's where some of these people go to make the big bucks.

They exist, but they don't know it. (5, Interesting)

Anonymous Coward | more than 7 years ago | (#20135047)

Here's what Paul Graham had to say about Great Hackers:

Because you can't tell a great hacker except by working with him, hackers themselves can't tell how good they are. This is true to a degree in most fields. I've found that people who are great at something are not so much convinced of their own greatness as mystified at why everyone else seems so incompetent.
http://www.paulgraham.com/gh.html [paulgraham.com]

Re:They exist, but they don't know it. (1, Interesting)

nomadic (141991) | more than 7 years ago | (#20135209)

Here's what Paul Graham had to say about Great Hackers:

Because you can't tell a great hacker except by working with him, hackers themselves can't tell how good they are. This is true to a degree in most fields. I've found that people who are great at something are not so much convinced of their own greatness as mystified at why everyone else seems so incompetent.


I've got to disagree; in my experience hackers tend to be pretty damn egotistical. Average hackers think they're good. Good hackers think they're great. Great hackers think they're on a higher plane of existence.

Re:They exist, but they don't know it. (1)

faragon (789704) | more than 7 years ago | (#20135811)

Great hackers think they're on a higher plane of existence.

Generalization is usually a quick path to the wrong way. There is many "mediocre pseudohacker" with "dive complex", e.g., John is an expert doing X, Peter it isn't, then John disqualifies Peter, not only as non expert in X, but also as incompetent. In my opinion, these extremes are usually more related to psychic problems rather than to expertise/excellence consequences (yes, I think that there is equilibrate/generous/fine people who reach excellence).

Re:They exist, but they don't know it. (1)

markk (35828) | more than 7 years ago | (#20135555)

Unfortunately people who are bad at programming, don't have an eye for the big picture, can't factor in that some things will be just barely functional, also think everyone else is incompetent. I think the people who think like that actually aren't the best. It is the ones who understand people are different in ability - even the same person over time, and that things that look like mistakes might have been judgement calls. They understand the tradeoffs. These are the people who actually really get the big projects done. they make mistakes and realize it. They deal with reality and can pick out what is really important. they can take the heat when some manager wants to blow off. When you've got millions on the line you don't want brilliance (not that you won't take it!), just competence.

Re:Internal Inconsistency in his Argument (2, Informative)

COMON$ (806135) | more than 7 years ago | (#20135075)

Sorry that is not the way the world works, at least not the commerce society. You get paid a general permium about what they mentioned, the real premium is beign so good at your job that you have no fear anymore. Getting fired is a perk meaning you get signing bonuses for your next job. Choosing your office to working is a perk as well, while at the lower end you spend your time just trying to be employed.

Uber programers do exist, and yes they are paid very well, but it would be an HR nightmare to prove that Johnny X does the work of 10 people so he should be paid what 10 people are, thus the reason it is not done.

Re:Internal Inconsistency in his Argument (2, Insightful)

Joaz Banbeck (1105839) | more than 7 years ago | (#20135107)

The problem is recognizing who the great programmers are. Sure, he may be worth an extra 100K a year, but it requires a tremendous expenditure of managerial time ( which, contrary to prevailing opinion on /., is worth something ) to monitor the situation closely enough to figure out that he is worth it.

And this presumes that you indeed have an uber-programmer. It is quite possible for management to spend a lot of time ( ie:money ) and still not find that their programmer is any better. The net result of trying is a loss of money.

This probably applies to a lot of other 'guru' type professions like lawyers and doctors. You can't understand it yourself, so you pay the going rate.

Re:Internal Inconsistency in his Argument (1)

AlexBirch (1137019) | more than 7 years ago | (#20135119)

I'm not sure if there's a direct correlation between being an uber programmer and wealth. Unless you consider Bill Gates one of the best programmers of all times. Frequently Uber-programmers are at start ups that are purchased for $$$. Unfortunately I'm not an uber programmer, however, I have known uber-programmers and I would gladly pay them 100 or more dollars an hour for their work.

Re:Internal Inconsistency in his Argument (5, Interesting)

networkBoy (774728) | more than 7 years ago | (#20135131)

I worked for a company that got bought by a bigger company.
We had an über programmer. He left because rather than exceptional pay, he wanted good enough pay and a small company style work life.

We then got in a pickle where some kernel mode drivers for NT4 needed to be revised and SoftICD'd in. Even though he doc'd everything and gave training to our programming staff about gotchas and pitfalls as well as maintenance, it was something that only about 100 people in the world could really do. All we could get done is a widely variating series of BSODs. We hired him back at $12K/day + travel for 5 days of work. He did work his ass off, further document everything, and provide additional spot training to our two brightest. The job was done and he had a check for $60K. I suspect that the training and docs took the vast majority of his time. I asked him why so much (and why MegaCorp would pay that) and he said it was simple. They were a big company not interested in paying him either in lifestyle changes or money so he didn't stay, but for a short job he charged what it was worth.

The free market did work. (considering his solution was cheaper than a contract with MS for the same work by $40K).
-nB

Re:Internal Inconsistency in his Argument (4, Insightful)

Odin_Tiger (585113) | more than 7 years ago | (#20135213)

But I think that if the über-programmer really does exist, then eventually the free market will figure that out, and compensate him accordingly.

It has, and then some. These "über-programmers" are what you and I know as "wildly successful startup founders." Part of the reason it's so hard to hire them is because they are mostly already independently wealthy and / or personally invested in a project of love that no offer of cash and benefits will draw them away from. Most likely, if the former is not true, the latter will eventually cause it to be true. The best and most common way of hiring an über-programmer is to buy the company they currently work for.

no inconsistency (0)

Anonymous Coward | more than 7 years ago | (#20135245)

If there really is such a thing as the über-programmer, who is literally 10 times more efficient than his average [median] colleague, THEN BY ALL MEANS he ought to be paid 10 times as much in salary - maybe even more.

That's not how free markets work. Most importantly, compensation isn't proportional to value. In addition, there are plenty of inefficiencies in the labor market, including incomplete information, as well as other risks and costs that limit compensation.

In the presence of perfect information, all you can really say is that a better programmer should get paid more, but it may just be a small amount. In the absence of perfect information, it's impossible even to say that: more skilled or valuable programmers may end up getting paid less than less skilled or valuable ones.

In fact, I have worked at companies where clearly compensation was inversely related to experience. How do I know? Because the economy was such that starting salaries were rising faster than senior developer salaries. Yet, senior developers stayed because the cost of switching jobs (retirement plan, stock options, etc.) was higher than the difference in compensation.

Re:Internal Inconsistency in his Argument (0)

Anonymous Coward | more than 7 years ago | (#20135257)

Actually I think this has multiple causes:
  - Companies usually have limits as to what they will pay for any given position - reguardless of how good the person is
  - Managers measure their status by the number of people working for them, managing 10 people is 'better' than managing 1.
  - People rarely demand the actual amount they are worth. They know that most businesses would sooner go bankrupt than pay it.
  - No one really knows how to measure performance - so they can't actually prove someone is 10 times better than someone else.

Re:Internal Inconsistency in his Argument (3, Interesting)

DavidHumus (725117) | more than 7 years ago | (#20135341)

He's absolutely correct.

There are numerous studies to support this. Taking about 20 seconds to look for one: http://www.joelonsoftware.com/articles/HighNotes.h tml [joelonsoftware.com] .

Also take a look at "Code Complete" by Steve McConnell and "Peopleware" by DeMarco and Lister. Actually, I've seen credible estimates of a factor of 25 times productivity between best and worst programmers. Given the negative productivity I've witnessed, even this may be an under-estimate.

This should be a well-known fact but it isn't. A major part of the problem is cluelessness by the people doing the hiring. You probably can't scale salary by productivity but how about something like the square root of productivity? Of course, the hiring of Bob Nardelli, the mediocre CEO who did nothing at Home Depot, by Chrysler shows how unrelated salary and effectiveness can be.

Re:Internal Inconsistency in his Argument (1)

thePsychologist (1062886) | more than 7 years ago | (#20135355)

The very fact that such disparities in salary don't exist means that either the über-programmer does not exist, or else there is something so screwy about the internal politics of corporations that the suits in management won't stand for some dweeb hax0r making ten times their salaries.


Hah! Something so screwy? People rarely get paid proportionally according to their technical abilities. People get paid according to their management abilities and the ability to out-compete everyone else for the next position up. Some people spend their lives concentrating on how to get the next promotion without doing any actual work on their current job.

Re:Internal Inconsistency in his Argument (1)

dnoyeb (547705) | more than 7 years ago | (#20135581)

I think you are correct. If you hire fewer more valuable people, then what do you need management for in the first place?

You only need management when there is non-technical work to be done which comes from having too many people working on the same project so they cant or don't have time to solve those problems themselves.

You want 3 pawns or 1 knight?

Re:Internal Inconsistency in his Argument (0)

Anonymous Coward | more than 7 years ago | (#20135667)

Err, I get paid 3 times the amount of the next programmer where I work and he makes nice bank. At the same time, I do all the architecture and spend more time teaching other programmers and stopping their architectural mistakes from entering our code base than I do actual programming. It frightens me that they are relatively decent programmers and yet can't see immediately what their problems are. They can't see the forest for the trees as it were. So I get my bucks so that in 5 years, my company will still be competitive and can build upon our code base rather than trying to re implement it every few years (as I've seen at some other software houses).

Markets with impefect information; risk (1)

Estanislao Martnez (203477) | more than 7 years ago | (#20135787)

If there really is such a thing as the über-programmer, who is literally 10 times more efficient than his average [median] colleague, THEN BY ALL MEANS he ought to be paid 10 times as much in salary - maybe even more.

In a market with perfect information, by all means, yes. In a market where buyers don't have perfect information, however, irrational stuff happens [wikipedia.org] .

There's also another potential flaw in your logic: failing to account for risk. If you hire one über-developer to do all your work, you're screwed if a bus hits the guy. Hiring 10 mediocre guys instead diversifies away a number of risks. A riskier asset must sell at a steeper discount of the profit that you hope to make out of it, compared to a safer one. (None of this is to imply that the IT jobs market is pricing risks correctly, however.)

Best damn article in a while (3, Informative)

COMON$ (806135) | more than 7 years ago | (#20135007)

While I am not a dev, Sysadmin here, this is probably the best article I have read on the subject in a long time. This idea of lets get someone in and train them up is assinine. Of course not every company can afford 120K a year but what about the lower end, midwest people get hit up with 45K a year jobs all the time, if the company would jump to 60-70K they would get 2X the dev and also get a much better product. I am currently with a company that made the mistake of hiring a below par employee to dev a site. Now they lucked out and got someone for the same price who doesnt care about salary but it a hell of a PHP developer, probably the best I have ever worked with. He spends 90% of his time fixing mistakes of the last dev and does things in minutes that took his predecessor days.

Same concept goes with my job field, I spend a considerable amount of time consulting, fixing poorly configured networks and servers. You cant just grab a joe off the street and expect him to be a professional or put out professional work without having learned his/her lessons, they will make mistakes learning, do you want it to be on your buck and your network?

Re:Best damn article in a while (4, Insightful)

tehdaemon (753808) | more than 7 years ago | (#20135281)

This idea of lets get someone in and train them up is assinine.

Dumb question, but if nobody trains new developers, then where the heck are those more experienced developers supposed to come from? And of course the related question, where did the few that we now have come from?

T

Re:Best damn article in a while (3, Insightful)

lawpoop (604919) | more than 7 years ago | (#20135613)

Some people are self-taught or learn on the job. Not everybody needs to learn from another person.

Languages (2, Insightful)

PhilipMckrack (311145) | more than 7 years ago | (#20135055)

You don't need to hire an expert in language X, you can and should look for expert programmers that are willing to learn language X. An expert can easily cross over from being a novice in any language in a matter of a few weeks.


How I wish this were true. I consider myself to be a good programmer, I work in a small company that provides software to credit unions. We do the complete package, teller systems, ATM interfaces, online banking, etc. Three of us work here. Our entire system works well with two programmers and one tech support guy. We support 18 credit unions. Our problem is that with only 3 people it is based on a legacy code base that has grown over the years. It is all in COBOL with a little other stuff thrown in when COBOL won't work.

I am ready for a change and work in a city with lots of bank and insurance headquarters. Everyone wants J2EE or .Net developers and I am interested in .Net but don't have any real experience in it. I understand it and have written several small programs, but nothing really complex. I have plenty of experience writing software for the financial industry that work, writing software that is delivered on time and on budget and recieving praise for the quality of software I write. I can't even get an interview.

I am studying to get .net certified and hopefully that will help. I'm trying to better my situation, but at this point I can't even get anyone to talk to me. I would hope my resume doesn't suck that bad, when I graduated college 8 years ago I had plenty of offers and seemed to not interview like a slobbering moron, but everyone's mindset is "I need x years of this language experience before I'll talk to you".

Have to do it, sorry (1)

COMON$ (806135) | more than 7 years ago | (#20135117)

COBOL is not really a programming language, thus the reason it is dying. I know I am being a snob, but the quality that makes COBOL great (eg anyone can write and become an expert), is also the quality that makes the devs go back to college to learn the complexities of PHP or another object orientated language. I learned C++ initially and ended up moving to Java and Perl and indeed it was a simple switch. Of course now I have discarded all and become a SysAdmin :)

Re:Have to do it, sorry (0, Troll)

misleb (129952) | more than 7 years ago | (#20135737)

OBOL is not really a programming language, thus the reason it is dying. I know I am being a snob, but the quality that makes COBOL great (eg anyone can write and become an expert), is also the quality that makes the devs go back to college to learn the complexities of PHP or another object orientated language.


Complexities of PHP? You've GOT to be kidding me. Who goes back to college to learn PHP??

-matthew

Re:Languages (5, Insightful)

jrumney (197329) | more than 7 years ago | (#20135137)

The hardest part of finding a new job is getting past the recruiters, who are generally not capable of anything more than keyword matching against your experience. Use your contacts if you can to get in front of the technical managers who will understand that your domain knowledge and overall experience is more valuable than which languages you have been using for the past few years.

Re:Languages (1)

swimmar132 (302744) | more than 7 years ago | (#20135159)

While it may be possible to learn the syntax of language X in a few weeks (which would still cost a company thousands of dollars in training), it takes a lot longer to learn the idioms and the frameworks and the libraries of the new language.

For example, while you can write C++-style code in Ruby, it will be ugly and slow. To use Ruby productively, you have to learn to take advantage of the dynamic typing. Just as in order to take advantage of C++, you need to take advantage of the static typing.

Re:Languages (1)

hondo77 (324058) | more than 7 years ago | (#20135589)

For example, while you can write C++-style code in Ruby, it will be ugly and slow. To use Ruby productively, you have to learn to take advantage of the dynamic typing. Just as in order to take advantage of C++, you need to take advantage of the static typing.

Meanwhile the company looking for an experienced Ruby programmer will pass over the GP and wait months and months until they find someone with just the skillset they want. In that time, of course, they could have had the GP and had him learning Ruby AND how to use Ruby effectively from his co-workers AND been trained in how the company does things. Smart programmers that don't know Ruby are still smart and are easier to find than smart programmers that have a lot of Ruby experience.

Re:Languages (0)

Anonymous Coward | more than 7 years ago | (#20135287)

You don't need to hire an expert in language X, you can and should look for expert programmers that are willing to learn language X. An expert can easily cross over from being a novice in any language in a matter of a few weeks.


How I wish this were true. I consider myself to be a good programmer, I work in a small company that provides software to credit unions. We do the complete package, teller systems, ATM interfaces, online banking, etc. Three of us work here. Our entire system works well with two programmers and one tech support guy. We support 18 credit unions. Our problem is that with only 3 people it is based on a legacy code base that has grown over the years. It is all in COBOL with a little other stuff thrown in when COBOL won't work.

I am ready for a change and work in a city with lots of bank and insurance headquarters. Everyone wants J2EE or .Net developers and I am interested in .Net but don't have any real experience in it. I understand it and have written several small programs, but nothing really complex. I have plenty of experience writing software for the financial industry that work, writing software that is delivered on time and on budget and recieving praise for the quality of software I write. I can't even get an interview.

I am studying to get .net certified and hopefully that will help. I'm trying to better my situation, but at this point I can't even get anyone to talk to me. I would hope my resume doesn't suck that bad, when I graduated college 8 years ago I had plenty of offers and seemed to not interview like a slobbering moron, but everyone's mindset is "I need x years of this language experience before I'll talk to you".


God, that sounds familiar. I've been interested in Eclipse RCP development. There isn't much of it going on around here. I know of three companies in the area doing it (counting ours... but I had foolishly made myself indispensable on my current project and didn't get tapped for that one). I'm contacted weekly by recruiters trying to fill RCP development jobs at the other two companies. They always come right out of the gate saying, "They understand that there aren't many people out there with that experience, so they'd like to talk to people who are really interested in learning about it."


Dude, I work on an open source project implemented with the same technologies they're using. It's a pretty small project, and I wouldn't compare it to the kind of experience you get on a larger project 40 hours a week, but check out how into it I am. Right? Right?


I've never even gotten a call for an interview, though. Could be my resume sucks, but it looks okay to me, and I've not had inordinate difficulty landing other interviews with it. One recruiter I've developed a pretty good working relationship with told me recently that the position's been open for more than a year, and they've turned down every candidate he's sent their way, though, so he doesn't think they really are willing to take someone with no paid experience in the API. His agency has given up trying to recruit for that position.


But all's well that ends well, I suppose. RCP development has been pretty slow on the upswing here, and what I'm currently doing seems to be much more marketable. And I still work on that open source project so, hey... I get my fix anyway.

Re:Languages (1)

tmarthal (998456) | more than 7 years ago | (#20135289)

Just work on an open code base in the language of choice. It will teach you more than you are willing to admit, and also (more importantly) will allow you to have something to talk about during your technical interviews.

Re:Languages (1)

rmrmail (971128) | more than 7 years ago | (#20135671)

Very rightly said.. Language is independant of Experience. J2EE / .NEt is more of syntactical , approach difference , given the breadth of knowledge and experience language is hardly a barrier, it is all about getting basics right in what you are working.. Mostly all the interviewers not look for this aspect wherein try to project themselves better at the time of interview , pathetic

close your browser now boss (2, Insightful)

s0c0 (1138981) | more than 7 years ago | (#20135081)

Hope my boss doesn't read this article and get any crazy ideas. I'm one of those newb developers, we deserve a shot...right?

Re:close your browser now boss (1)

Usquebaugh (230216) | more than 7 years ago | (#20135273)

Of course you do,

now run along and make the tea.

Re:close your browser now boss (0)

Anonymous Coward | more than 7 years ago | (#20135641)

I'm new to it all also. I've worked at this company a few months and have designed two separate applications, while maintaining/improving a third. All I can say is it seems that I'm a better developer than the people that came before.. The project I've had to maintain is garbage spaghetti code that was said to have been developed over a few years, and would take me 6 months tops to write from scratch. I'm not saying I'm good at what I do but I am saying whoever came before was terrible at what they do. This boggles my mind considering that it was written by 'Senior' developers, who probably make double what I do.

Sales is looking at demand and driving supply (3, Insightful)

hellfire (86129) | more than 7 years ago | (#20135087)

One aspect not discussed: Programmers are in short supply because demand for code and new features is limitless.

My company right now has huge demands for new features and new software. While development is desperately trying to fight the urge to pump out more and more features, they fail miserably each cycle. This is coupled with the fact that we have tons of work to do cleaning up bugs. No one can stop and catch their breath, the work keeps piling on.

This cycle will continue until a customer realizes they can't get something on time, or the quality is so bad the software won't sell any more. Customers think the software just materializes because they see it on the shelf. It took years to get it that way.

Salesreps do and say anything to get the contract signed, and the details get ironed out later. As long as the cash rolls in, large companies aren't going to change this.

The most interesting link in the whole thing (2, Insightful)

Marxist Hacker 42 (638312) | more than 7 years ago | (#20135091)

Was to the 400 disc CD Changer.

Seriously, we knew ALL of this a long time ago. HR just has yet to catch up- they'd rather hire 100 slightly-less-than-competent people who have the right keywords on their resume than a single lazy generalist who will figure out the right way to code it the first time regardless of how new they are to the language. And it's the second one you want. The real bottleneck isn't finding expert programmers- it's finding HR people who understand this industry.

hireing more people is better then over working... (1, Insightful)

Joe The Dragon (967727) | more than 7 years ago | (#20135113)

hiring more people is better then over working the people that you have.
Having 2 people working 40h a week each is better then one person working 80h a week.

Re:hireing more people is better then over working (0)

Anonymous Coward | more than 7 years ago | (#20135185)

Congratulations, you have completely missed the point.

Re:hireing more people is better then over working (2, Interesting)

chicagotypewriter (933271) | more than 7 years ago | (#20135301)

Your comparison seems to be of people of the same level. Two new grads vs. one new grad, or two seniors vs. one senior. To change your original scenario, would you rather hire two recent grads at $50k, or one senior level worker at $125k? It is $25k cheaper to hire two recent grads...but when you put them together, do you get the quality of a senior level worker with say 8 years of experience? Probably not. The one senior level guy might work 50 hours a week, but he probably does more than two recent grads 3 months out of college working 40 hours.

Then again, I didn't RTFA, just other comments.

Re:hireing more people is better then over working (1)

Blobule (913778) | more than 7 years ago | (#20135539)

Hiring 1 person that works 40 hrs/week is better than hiring 5 people that work 40 hrs/week and produce the same results.

Re:hireing more people is better then over working (1)

poohneat (934308) | more than 7 years ago | (#20135551)

Actually Hiring two people who enjoy development and do work well is way better than having 10 non interested developers.
// i thinks

What? (1)

ScrewMaster (602015) | more than 7 years ago | (#20135149)

Why is it so hard to find good programmers?

Who says it is? If that is true, maybe the flood of H1B visas isn't having the positive effect that proponents insisted that it would. Gee, maybe we should stop the ongoing decimation of our domestic workforce by corrupt trade practices. That would be a start.

More to the point, why should software developers be any different than, say, car mechanics, doctors, scientists, lawyers, musicians or anyone else? Being truly competent (much less exceptional) in any complex field is a fortuitous combination of training, experience and talent. Time and money provide the first two, and can produce at best a merely competent worker. Being the very best requires actual talent, but talent is a rarity in any area of human endeavor. That's why the top people in any sophisticated profession command top dollar.

Or used to, at any rate.

Re:What? (1)

megaditto (982598) | more than 7 years ago | (#20135375)

Current supply of H1B candidates does not satisfy the demand for good programmes, you say?
Then perhaps we need to provide more visas for good programmers.

Re:What? (1)

ScrewMaster (602015) | more than 7 years ago | (#20135853)

Then perhaps we need to provide more visas for good programmers.

More short term thinking, which unfortunately is proving to be very popular nowadays (to our detriment.) What we need to do is train more people from our own population. You know ... like every other country does, at least the ones that need programmers. Having a temporary shortage of trained talent is not unusual in any field, but simply opening the floodgates to foreign workers is not a good solution. It sure as hell didn't work for medicine, and it sure as hell isn't working for software. Look, if there's a demand, the supply will take care of itself. That's the way it has always been. However, that takes time, time that American corporations (many of which are no longer run by or for Americans) is unwilling to invest. Nor are they willing to pay competitive wages to domestic professionals. So, not only are they sell-outs, but they're cheapass sell-outs as well.

There's a reason that nations (all of them) have limits placed upon immigration. It's because those governments are pledged to put their own people first. Ours has forgotten that.

Inverted meritocracy (0)

Anonymous Coward | more than 7 years ago | (#20135151)

It's simple. They don't pay enough. They can't. If a programmer at my age, qualification and expertise was paid a proportionately
fitting aount I would earn 5 to 10 times that of senior management. No company will ever allow an employee to earn more than the guy that 'manages' him. Therefore the only career development path for most very good programmers and computer scientists is to move into management, at which point
their brains stagnate and they lose their killer skills.

Being an excellent programmer isn't just about learning a bunch of stuff once. It's about living and breathing your art, reading new material every day and constantly bettering yourself. It's knowing software and hardware engineeing inside out, from transistor to register to pointer to array to
network packet to distributed system. After about 15 or 20 years you have surpassed everyone you will ever hope to work for. You must accept some kind of 'revolution of lower expectations' where you know you will never be paid what you are worth. Unfortunately some people take the attitude that guys who are approaching 40 and still programing as losers, because why would anybody *choose* to remain a programmer and not move up to management?

There is simply no widespread understanding of how far a person can take a career in programming and how deep the rabbit hole goes. After the first 20 languages and reading all three volumes of Knuth from cover to cover, maybe you write a few of your own compilers and maybe write another little 'hobby' language. By that time the only peers you can hope to meet are other older programmers who have taken the same path. Nobody within a company/corporation is even qualified to judge your capabilities.

Yet you can find yourself applying for 'entry level' positions in companies because you don't have specific experience of some shitty little proprietry tool that you could write yourself if you were bothered to.

There is no shortage of good programmers. It is bullshit put about by industry who can't express what they really mean. What they want to say is "there aren't enough young cheap programmers around, and all the good guys we had became managers and cant code to save their lives any more because we couldn't actually pay them what they are worth to us".

Industry is a inverted meritocracy. It's frankly how embarrasing how much more valuable a good programmer is than a good manager. Until the corporations can get over their snobbery and stop clinging to a 20th century worker/management model that encourages the best programmers to abandon their field at the moment of greatest maturity they will always be losing out on having the best and brightest actualy realise their potential.

Re:Inverted meritocracy (1)

AKAImBatman (238306) | more than 7 years ago | (#20135365)

It's frankly how embarrasing how much more valuable a good programmer is than a good manager.

I was with you, right up until this point. A really great manager is part teacher, part mentor, part boss, part friend, and part Solomon. A great manager will make sure you have the exact tools and resources you need, know exactly who can take on a given task, know when to dish out tasks that will help improve the skills of those (s)he manages, somehow manage to get whatever is needed out of higher management, and be able to identify and combat issues with a project before they become a problem.

Good management is just as much of an art as programming is. Just like in programming, there aren't that many people who are true naturals at it. Those that are can make a company run about 1000x smoother than anyone else could. Thus I don't begrudge them any high wages they may earn.

Funny thing, though. These same managers are also the ones who are often stuck at the lower rungs of the totem pole making only slightly more than you or I. (Sometimes less.) Like programmers, they like the "hands-on" experience of direct management. This tends to make them uninterested in moving to the top. Combined with their willingness to step on toes in order to get the job done, they're unlikely to get promoted very far, very fast. Thus they also can be found pining for the small-company environment. :-)

Re:Inverted meritocracy (1)

wurp (51446) | more than 7 years ago | (#20135599)

I'm pretty sure that I've made more than the people who manage me for the last 5 or 6 years... not a lot more, but more. (Well, for one year I probably didn't, but otherwise...)

Become a contractor.

There is a lot more to being a great programmer than knowing the hardware, network architecture, and algorithms, too. You have to know how to write tests, how to document, how to design, and know when & how much to do those things. A good process helps a lot, but you also have to have experience.

Of course, you also have to know the low level stuff.

I'm not saying that you don't have those things, just pointing out the important stuff that you didn't focus on.

Re:Inverted meritocracy (1)

abigor (540274) | more than 7 years ago | (#20135861)

"Become a contractor."

Absolutely correct. And if you hate the whole business side of things, like bidding on contracts and stuff like that, join a contracting company and become a subcontractor. They find the work and contract you out, and take a cut of what they charge the client. You'll still make more - a lot more - than a salaried position. And you have the option of taking a lot more time off too.

Surprised (0)

Anonymous Coward | more than 7 years ago | (#20135175)

Am I the only one who is surprised that the author didn't leave a link to his resume at the end of the article? I see the entire article as flamebait. Or maybe I'm just biased because I'm one of those "junior programmers" fresh out of college who uses "less agile" languages such as C++ and Java. Only difference is that I didn't receive my diploma in the mail...

How to find them? (1)

Mike1024 (184871) | more than 7 years ago | (#20135197)

If you fill your shop with 15 average Java developers, paying an average of $60k per developer you have an approximate labor cost of $900k/year for your development staff. Not considering any non-salary benefits.

Suppose you instead took the time to find 5 expert, or at least above average, Perl developers at $120k each per year.
That seems to be the gist of the article, and it's a pretty reasonable conclusion: Experts can be very much more productive than non-experts.

However, it is also my experience that it isn't always easy to tell highly capable people from the merely capable; that is, I've worked with people who seemed very good initially, but in the fullness of time I realised they were not. And that, of course, is a benefit for having 15 developers instead of five: Any given hiring mistake costs half as much, and reduces your workforce by a fifteenth instead of a fifth.

So how are you supposed to find these expert programmers, and how can you tell a $60k developer from a $120k developer? By asking brain teasers like Microsoft and Google are reputed to do?

Just my $0.02

There's a reason programmers don't need a degree.. (0)

Anonymous Coward | more than 7 years ago | (#20135243)

most coding/programming tasks are menial and don't require much creativity. in fact I would say the vast majority of programming work is maintenance type works/simple things that doesn't require that much skill. thats why anyone with a HS diploma can pickup a programming book and learn how to program in a couple of days. i think what makes the difference is the architect of the project--the guy who lays out the foundation of a project. maybe if the task is like writing a 3d engine from scratch you need and uber-programmer but even at game companies (where I've worked before) we just license the engine and even avg programmers can make a cool game.

Amazing people out there (1)

MBCook (132727) | more than 7 years ago | (#20135247)

The people out in the market place can be amazing. We were recently looking for more people, but watching the people come through was kinda fun. We are a small shop, now at 4 programmers. As you can guess, we don't get the high end people applying directly to us like they might to MS or Google or whatever. We have to go find people and attract them. We do get some submissions, but they tend to be.... interesting.

We have seen... the passable, those who are rediculously overqualified (if you read their resume, but you can tell they are lying about 90% of it), the guy who (as a programmer for 5+ years) didn't know what an array was, the people who's last job shoved them into one tiny area for years and years so they have lost skills outside of that small set (which is often esoteric). We've seen those just out of school that need more experience, and those with great experience who just want too much (salaries the larger companies around would have paid a few years ago when the market was better, but they have no chance with in our company for the position they are being hired for).

It can be hard to find good people when you aren't a Google or MS.

We all have to start somewhere... (5, Insightful)

p4rri11iz3r (1084543) | more than 7 years ago | (#20135271)

As a recently graduated CS student, I find this type of thinking to be incredibly infuriating at times. Companies only want to hire people with experience. Yet to gain this experience, I need a job. The circular logic goes round and round until you have a brain aneurism.

My college never stressed learning any one language well. Rather, it taught us the tools and techniques we would need to survive in the ever-changing world of software development. Yet none of this seems to count for anything. No past experience with a company? Goodbye. The fact of the matter is, I need to start somewhere. Right now I'm sitting at a job that I feel doesn't tap my abilities, yet I put up with it for the "experience." The number of opportunities for fresh graduates are few and far between, and you have to take what you can get.

Re:We all have to start somewhere... (1, Insightful)

Anonymous Coward | more than 7 years ago | (#20135465)

That's why as a student, you want to get an internship.
The money's not great, but the experience is invaluable.

Re:We all have to start somewhere... (1)

Datasage (214357) | more than 7 years ago | (#20135479)

You don't necessarily need a job to get experience. Freelancing, open source projects, or internships are all good ways to get work experience. Plus it helps you network, which makes it easier to get the really good jobs.

Re:We all have to start somewhere... (2, Insightful)

Cornelius the Great (555189) | more than 7 years ago | (#20135497)

Don't let the job listings get you down. The jobs usually listed on Monster, Careerbuilder or (name your favorite job website) usually shoot higher than what they're asking in the descriptions. The job I'm currently at said 5+ years of experience and settled on me with my 2 years (+6 month co-op) because I had a good interview and I knew what I was talking about.

Also, having your resume public allows recruiters and jobs to find you. My first job out of college (3 years ago) found me. Granted, you may find as a contractor for a few years before you find yourself a permanent job, but you'll get some valuable experience doing those short 6-12 month "gigs".

Luckily for you, the CS job market seems to be better than when I graduated. I considered myself lucky to have one job offer within weeks of graduation- many of my classmates couldn't find CS jobs within the year. Anyway, good luck!

Ability vs experience - they're not the same thing (2, Insightful)

kbob88 (951258) | more than 7 years ago | (#20135769)

Companies only want to hire people with experience.

We want to hire ability. That's not necessarily experience. There may be some relationship between the two, but it's lazy hiring to rely on experience. As we all know, there are plenty of people who have been programming for 20 years but still can't code for shit.

I'd hire you as a fairly inexperienced developer if you could demonstrate that you had great ability. You wouldn't get that huge salary at first however - sorry, you need experience and ability for that!

Unfortunately, it's very difficult to hire based on ability. How do you test for it? We've tried all sorts of stuff. In the end it comes down to good questioning, having the candidate hack out pseudo-code on the spot, and having them participate in a small design workshop. But we find that candidates don't really want to go through a long hiring process with us as we're a small company. It's still an error-prone process.

But I agree with TFA. I'd rather have 4 great programmers at $160K than 8 mediocre ones at $80K, or even less. The two major problems to hiring this way are:
  • Getting HR and top management to buy into it - their philosophy seems to be "we want above average software using slightly below average people"
  • Figuring out who the great developers are

Re:We all have to start somewhere... (2, Insightful)

linguae (763922) | more than 7 years ago | (#20135829)

As a recently graduated CS student, I find this type of thinking to be incredibly infuriating at times. Companies only want to hire people with experience. Yet to gain this experience, I need a job. The circular logic goes round and round until you have a brain aneurism.

There is a way for CS students to gain experience while in school: internships. Apple, Microsoft, Google, and many of the other big companies have summer internship programs. Students can also try to find a small company in their area. Sometimes a professor may have a research project that needs to be implemented during the summer; that counts as development experience, also.

Yes, it is tough to obtain such internships at times. But this it what it takes to get started on the experience treadmill in industry. If you can't get an internship, try contributing to a open-source project, particularly a high-profile one. Many companies like open source projects, and they will also count this as development experience.

I Thought.... (2, Insightful)

JamesRose (1062530) | more than 7 years ago | (#20135295)

Everyone knew that programmers are unique. Each programmer has his own style and own way of solving problems- which invariably have several solutions. As a result, if you hire lots of people working on the same thing, unless they are experienced as working as a team with the particular people they are working with, there will be lots of translation problems and it'll take a long time to get that understanding. If you hire a few people and they work closely together they can work as a team, understand each other, and over time develop understanding.

Ask the Yankees if this works. (1, Interesting)

Anonymous Coward | more than 7 years ago | (#20135309)

The New York Yankees have the highest payroll in baseball by far. $195,229,045 according to ESPN. $52,105,331 more than second place (Boston) and $112,176,945 higher than average. Yet their current record is 62-50, 6.5 games back from Boston. Even the lowly Arizona Diamondbacks have a better record of 63-50 with a payroll of only $52,067,546.

Baseball and programming might not be exactly alike. But look at it this way: The most "talented" individuals in baseball get the most money - yet all that talent pooled doesn't result in the super team that this guy is dreaming about. In baseball, it's fairly easy to measure past performance. Stats up the wazoo, in addition to recordings of their job performance that are easily available. But programmers aren't that way at all. Even if you try your best, filter like crazy, do interview after interview after interview, test after test, you may be getting a complete dud - shows up to work day #1 drunk and starts to watch graphic pr0n.

HR could work from now until the end of time trying to find the perfect fit. They could spend a billion dollars per employee trying to find the best. But that's still no guarantee that you'll get what you're looking for. Usually, you can't know the quality of the service until at least the start of when it's being rendered - and often times not until many years later.

It's the colleges (1)

kellyb9 (954229) | more than 7 years ago | (#20135325)

The reason good programmers are so hard to come by is because colleges aren't really putting out good programmers. In the past, colleges were much more concerned with teaching the elements of one particular language, and then allowing you to transition between different languages. Nowadays, schools don't want to teach one particular language for fear of their students being labeled and losing opportunities because they went to a "Java" or a "C++" school. When I went to school (which I only graduated a few months ago), the professors refused to go in depth about any particular language so, in essence, we learned overall generalization about programming, data structures, algorithms, etc., but we never really learned any one language thoroughly. Many of my friends from other schools experienced the exact same thing.

Want some cheese? (0, Flamebait)

DerekLyons (302214) | more than 7 years ago | (#20135379)

The article would be interesting it if weren't an extended whine about how programmers should be paid more and treated like prima donnas.

the secret to cheap programming (1)

mozkill (58658) | more than 7 years ago | (#20135383)

When someone truly figures out how to take a group of beginning programmers and make them able to create something that a complex single programmer could create, then that will be the end of high paying jobs for computer science. At that point, programming jobs will be kinda like jobs at Taco Bell.

Re:the secret to cheap programming (1)

heli_flyer (614850) | more than 7 years ago | (#20135553)

When someone truly figures out how to take a group of beginning artists and make them able to create something like a masterpiece, then that will be the end of high paying jobs for artists. At that point, art jobs will be kinda like jobs at Taco Bell.

cuIm (-1, Flamebait)

Anonymous Coward | more than 7 years ago | (#20135469)

completely beFore things the right Achieve aNy of the from within.

Isn't this called... (2, Insightful)

mshurpik (198339) | more than 7 years ago | (#20135521)

...the mythical man-month?

>why should companies favor hiring fewer more senior developers rather than many junior ones?

*swish*

What's with perl? (1)

MobyDisk (75490) | more than 7 years ago | (#20135587)

The article starts off language-agnostic:

Finding good programmers is hard in any language...You don't need to hire an expert in language X, you can and should look for expert programmers that are willing to learn language X. An expert can easily cross over...
Then he turns on the PERL advocacy:

We love Perl and think it's a great language that you graduate to after you have been forced to use less agile languages such as Java, C/C++/C#, etc. Not necessarily a first language you get your feet wet with and then move onto a *cough* "real" language.
It is annoying when smart people write an intelligent article on a subject, then decide to throw in a "oh, and while I'm sounding wise, my OS can beat your OS sux0rs!!!!" Excuse me while I go write an article on the relative efficiency of sorting algorithms, then insert why C++ is the language that everyone graduates too after they've wasted time on Perl. Sheesh.

Other that that, this looks like some decent advice.

This is kinda sad (1)

systems (764012) | more than 7 years ago | (#20135673)

Why I was still in university, I used to read stuff like from this article and be impressed!
Now that I've worked for a while, I am thinking ... well, it just something that sound nice
probably help few ppl feel better about themselves but ... it just soooo misleading!
Of course it better to hire few experienced (probably senior) workers, that few inexperienced ones! why should it be otherwise, its not like its a job of waiting tables ... its a job like many that required education and experience, how odd? and all this time I thought that any one who read "thinking in java" can truely think in java, just like that, no work experience required!
now I am enlightened!
and why is it hard to hire programmers! i mean is it to assume that someone like Linus Torvald or Larry Wall or Audrey Tang... or anyone who got a real work experience working for any of the many real companies that created real software that you could try urself would be at least good enough!
can't u formulate a decent C# or Java exam to filter your candidate, would 3 or 4 interviews expose the wannabes, I mean comme on! Just ask him to explain the code of a real application he wrote, how hard is that!!!

Uber Programmers Don't Exist (3, Insightful)

dircha (893383) | more than 7 years ago | (#20135703)

Domain knowledge is the primary difference between a 1 day LOE and a 1 week LOE, not programming "skill".

There is no class of general "uber" programmer that can be brought on to an arbitrary company's internal development project and hit the ground running at a pace 10 or even 2 times that of the standard-fare developers already on the project. This is a complete myth.

However, the domain knowledge gap can in most cases be narrowed very cost effectively through knowledge transfer, training, and tools.

If you skimp on resourcing and experience anywhere in your development organization, it should be on programmers. Inexperienced and unskilled programmers can be compensated for effectively through targeted specification, management, and quality assurance processes. The key is to have processes in place to identify and rectify programmer failure early and often.

Computer programming isn't rocket science, it's bridge building. You have planners and you have builders. Builders pour cement and put rivets in place, and there are processes in place to identify, rectify, and robustly handle individual builder error. Bridges do not arbitrarily drop cars off into the river below due to individual builder error, and neither should software programs crash due to individual programmer error.

Yeah, right (4, Insightful)

Elias Israel (182882) | more than 7 years ago | (#20135729)

I'm going to take advice on hiring programmers from a Perl cool-aid drinker. Sure, just the very minute I get my brain replaced with a cauliflower. Perl is an horrifically bad language. It's called "write-only" for a reason. It makes great programmers produce merely adequate code, makes good programmers produce bad code, and makes bad programmers think they're great. Feh. A properly trained, incentivized and provisioned Java team can run rings around a Perl team in terms of working code produced, as well as (more importantly) cost to develop and cost to maintain.

Other side of the fence (1)

architimmy (727047) | more than 7 years ago | (#20135771)

Having worked in IT, as a programmer, and now as an architect I think pretty much any field is the same, not just programming. Some people are just worth a lot more because in general, the average person spends more time avoiding work than doing work. I don't think the premise of the article applies just to developers.

F*&^%$# Management (0)

Anonymous Coward | more than 7 years ago | (#20135809)

I used to be internationally well known as an Oracle DBA, but I quit and went into Geology. Why?
1) I got bored. Too may clients were happy to give me 4-8hrs of work per week because (and this is an _EXACT_ quite) "you do more work in 2 to 3 hours than most of my team does in a week"
2) Being on-call 24x7 with no additional pay. Plus, being written up for not answering a page at 2am -- after I emailed my manager warning her that I had a tendency to sleep through everything. That email prevented me from being fired on the spot!
3) Having a manager that was so threatened by me that he tried to get me fired. 4) Hey, If I do more work in 1/2 day than others do in a week, why don't I get paid AT LEAST 2x the rate of those idiots?!?
5) Too many hours of (unpaid) overtime because others on the team aren't performing (see #1). And then getting criticized for working overtime (see #1)
6) ....

Enough complaining. I'm going OUTSIDE with my GIRLFRIEND to play with rocks.

Perl? For big jobs? (1)

Animats (122034) | more than 7 years ago | (#20135863)

The surprising thing about this is the Perl mania. Perl is OK for little stuff. But if you're writing stuff in Perl that's complex enough to require hiring multiple programmers, you're probably using the wrong language. Maintainability in Perl is a big problem. The language is hard to read, and the "there's more than one way to do it" philosophy means that code written by different programmers tends to use different subsets of the language. I have three Perl books, including Larry Wall's, each of which describes a different subset of the language, which gives a sense of how bad that problem is. On the other hand, Perl comes closer to "write once, run everywhere" than anything else around. Your Perl web app will probably work the same on almost all hosting providers.

I once wrote a sizable app in object-oriented Perl, and wouldn't do that again. Python scales better.

Python as a language is quite good, especially if you need roughly Perl's function set. The main problem with Python is that the C libraries for key functions (SSL, databases) are maintained by different groups, often by a single person, aren't part of the main Python distro, and don't sync well with Python releases. You may have to explain to your manager that the Windows distribution of the SSL library for Python is maintained by a World of Warcraft guild and they can't fix it this week because they have a big raid coming up.

Load More Comments
Slashdot Login

Need an Account?

Forgot your password?