Fog Creek Software
Discussion Board




Working at Fog Creek Software

I often hear about your interviewing and hiring strategies, and it seems like you're only interested in "best of breed" developers (aside from internship positions). Do you think there is any benefit to (or something to be said for) taking on more junior programmers as something of an apprentice and investing in them and their potential as a developer in order to build them up. I've heard some people say, "I don't need employees learning on my dime." while others have told me they think it's a great way to get people to work for less pay while still contributing to the company (beta testing, etc.). What's your take?

Jason Mauss
Tuesday, March 02, 2004

On the contrary -- I usually prefer hiring "less experienced" programmers, because I have a chance to educate them right the first time, instead of having to force them to unlearn all the bad habits experienced programmers might have picked up at Dilbert companies.

As I emphasize often, given that we have long term goals, our goal is to hire for aptitude, not skill set. Another company with more immediate needs or a shorter time horizon might have different needs and preferences.

Joel Spolsky
Fog Creek Software
Wednesday, March 03, 2004

>> "On the contrary -- I usually prefer hiring 'less experienced' programmers, because I have a chance to educate them right the first time, instead of having to force them to unlearn all the bad habits experienced programmers might have picked up at Dilbert companies."

Hmmm...  I hear that a lot.  In my case, I used to be a contractor, so I've worked at many different companies; a lot of these companies were indeed Dilbert companies.  Personally, I wouldn't trade one year of experience with a Dilbert company coding Rube Goldberg software for five years of experience at a great shop.  I really, really had no idea how important best engineering practices were until I worked for groups that ignored them.  A person born and raised on the Upper East Side will never, ever appreciate his environment as much someone who's spent a couple of years in Alphabet City first.

Dave
Wednesday, March 03, 2004

I have to agree with Joel's comments.

When I hire, I am biased towards younger/inexperienced candidates.  I'd rather have someone who's intelligent and capable than someone with experience.  I don't expect the employee to come in here knowing everything we do.  We're a niche company.  It's easier to train someone new than someone who's been doing it for 10 years.  If you're bright, you can learn anything (given enough time).

Also, we're still a relatively small company, so we wear a lot of hats.  With the older guys, that tends not to sit too well.  "You mean I have to write the code AND the documentation?".

I've found that older programmers want to sit in their office, and have work fed to them.  The younger guys are eager to tackle a problem.  When they're finished with a project, they go actively looking for something new to work on.

Frankly, I'm amazed at the work that an intern can do.  If I give them a task that they don't know how to handle, they don't hesitate to pick up a book and learn how to do it.  They get things done.

DISCLAIMER:  These are my observations from personal experience with people that I've hired.  I'm not trying to say that all older programmers are lazy.

Myron A. Semack
Wednesday, March 03, 2004

"Frankly, I'm amazed at the work that an intern can do.  If I give them a task that they don't know how to handle, they don't hesitate to pick up a book and learn how to do it.  They get things done."

This fact makes me worried about my future employability somewhat.  I'm starting to get a little long in the tooth programming wise (or at least I feel that way at age 27), and I wonder what my value add will be when I get in my 30s if experience is no longer valued and my asking price is higher.

Nothing like  an early midlife crisis. :)

Crimson
Wednesday, March 03, 2004

"I've found that older programmers want to sit in their office, and have work fed to them."

I've gotta ask - define "older" :)

Philo

Philo
Wednesday, March 03, 2004

Or is it just a thinly veiled excuse for age discrimination? In my long experience I have found that hiring managers in technology companies usually hire the person in the mirror.

old_timer
Wednesday, March 03, 2004

Evidence of age bigotry crops up almost daily here on JoS.  Today we have the following from just one post:

>>>When I hire, I am biased towards younger/inexperienced candidates.<<<

>>> Also, we're still a relatively small company, so we wear a lot of hats.  With the older guys, that tends not to sit too well. <<<

>>>I've found that older programmers want to sit in their office, and have work fed to them.  The younger guys are eager to tackle a problem.<<<

OTOH, he does state that:

>>>DISCLAIMER:  These are my observations from personal experience with people that I've hired.  I'm not trying to say that all older programmers are lazy. <<<


Well, that's nice.  Now if I understand correctly, you're saying that not all older programmers are lazy, but you'd won't risk hiring one?

What is your cut off age?  That is, the age at which you suspect a job applicant of having these undesirable characteristics.  Also, what happens when a current employee passes that age?

mackinac
Wednesday, March 03, 2004

According to the pundits, low American enrollment in technical programs is evidence of a failed educational system.  Seems to me that - to the contrary - it's evidence that teachers are doing a fine job! 

Computer Science & Other Technical Fields:
Majors in which you'll work your head off only to be employable for, perhaps, ten years, after which time managers have actually convinced themselves and the world that experience is detrimental.

If kids actually enrolled in these majors, *then* I think we'd need to worry.  Welcome to CrazyLand!

Dave
Wednesday, March 03, 2004

Experience CAN be detrimental.  EXTREMELY detrimental.  Older programmers who are set in their ways and refuse to retool their skillset are a liability to a good team (unless you're talking about mainframe stuff and you're maintaining old COBOL programs).

I'm self taught in Perl, PHP, Java, C++, and a variety of standards and, at the risk of sounding like "The Jerk", I can outproduce most of the older, more experienced guys on the team here.

When I get handed an issue I can't handle, I go drop $50 on a book at BORDERs on the way home and spend the next few evenings learning the underlying technology.

When Bob I've-been-coding-in-C-for-15-years Programmer gets the same issue, he matter-of-factly informs the manager that this is not his area of expertise, and not what he was hired for, and then suggests the PM hire another resource.  Or alternatively, he attempts to resolve the issue using the tools that he is familiar with and then tries to sell the PM on his work-around, even if those tools are wholly unsuited to the problem, rather than take a few days (or hours!) to learn a better tool for the job at hand.

The above scenario has been pretty universal in my experience, but again, this is only in my own personal experience.

muppet from electric-chipmunk
Wednesday, March 03, 2004

...BTW, I just read an article about a study lending support to the assertion that societies that exclude women from the workforce suffer for their chauvinism.  Just common sense, really; if you exclude half of your workforce, statistically, you'll exclude half of your superstars! 

In the US, apparently, we go one better.  We exclude older developers - perhaps three quarters of our developer pool!  And not only do we exclude three quarters of the pool, but we exclude precisely the three quarters who know the most about software engineering!

Dave
Wednesday, March 03, 2004

The best combination is to have both experience and youth at your office! There are issues that you can't learn from books and manuals no matter how bright you are.

Davidson
Wednesday, March 03, 2004

Is it true that an old dog can't learn new tricks?  Or does it depend more on the dog than its age?

Eponymous
Wednesday, March 03, 2004

>> "Experience CAN be detrimental.  EXTREMELY detrimental.  Older programmers who are set in their ways and refuse to retool their skillset..."

We've all met older developers like this.  What does it prove?  We can't possibly bump into a newbie who's set in his ways because he hasn't had time enough to set them.  So, if your point is that there is a higher percentage of older developers who are set in their ways, then, great, you win the argument.  (I won't even spend time here to point out that having people set in their ways on staff is a management deficiency to begin with.)

Let me make this assertion:  Every great mentor I've ever had has been an older developer.  You can't pick up a "Learn Python in Thirty Days" book and learn what these guys have to offer.  This industry really needs to grow up - and it's not going to grow up if the average age of its practitioners is twenty.

[And I really, really feel like I'm in the Twilight Zone because at thirty-five I'm considered over-the-hill.]

Dave
Wednesday, March 03, 2004

Muppet said:

"Or alternatively, he attempts to resolve the issue using the tools that he is familiar with and then tries to sell the PM on his work-around, even if those tools are wholly unsuited to the problem, rather than take a few days (or hours!) to learn a better tool for the job at hand."

I've found the opposite to be true- it's the experienced developers that understand how to select the right tool for the job, while the inexperienced tend to try to solve the problem with the tools thay happen to be familiar with.

Ken
Wednesday, March 03, 2004

Older guys, younger guys... What about girls?

Tatiana Racheva
Wednesday, March 03, 2004

>> "I can outproduce most of the older, more experienced guys on the team here."

This is another comment I often hear from newbies...  I'm absolutely certain that many developers can churn out unmaintainable, inelegant code much, much faster than others churn out sophisticated, concise code.  The volume produced by a developer is far from an adequate measure of a developer's value. 

Dave
Wednesday, March 03, 2004

Guys-

In a few years when the Baby boom starts to retire, there is an excellent chance we will look back on this conversation and laugh- "can you imagine there was a time that companies didn't have to shell out $200,000 to prevent an experience programmer from retiring?"

Until then, I say "Buy Palladium" (The metal, not some company).

name withheld out of cowardice
Wednesday, March 03, 2004

Like Dave, I'm 35, and already feeling like I'm old.  I'm annoyed with it.

I see one of two things that people to in pre-judging me:  They see that I'm 35, therefore I must be "set in my ways."  That or they see "Degrees in Physics and Chemistry, not CS, and no certifications, so couldn't possibly have any real programming experience."  I taught myself programming to get my degree, but what could programming have to do with Chemistry?

I solve problems well, I learn new tools well.  Can someone please tell me how to translate that into a decent job?

Or do I just say the heck with working for other people and just write and sell software myself?

Sorry to rant a bit - probably not exactly the proper forum for it.  Not looking for a pity party, either, just some realistic advice.

Aaron F Stanton
Wednesday, March 03, 2004

pfft. 

"older programmers are lazy and don't learn"

"young programmers think they know everything.  they are mistaken and generally tend to do more harm"

Slogans and catch-phrases are for those who are too lazy to actually think on their own.

 
Wednesday, March 03, 2004

If you're an old man in his 30s (like me), you shouldn't IMO be marketing yourself as a code monkey.  You should be marketing yourself as an experienced developer.  What does this mean?

There's an old saw about a guy with a wood floor that has a squeak.  He's a do-it-yourself kind of guy, but an amateur.  He spends countless hours trying to figure out where the squeak is coming from.  Finally in exasperation he gives up and calls in a flooring expert.  The flooring expert walks back and forth across the floor several times.  Then he goes out to his truck, brings back a nail and a hammer, and pounds the nail into a board.  He writes up a bill for $155.10.  The guy is astounded.  "What?? $150 for 5 minutes of work and one nail??"  "Nope," replies the expert.  "$5 for the time, 10 cents for the nail, and $150 for knowing where to put the nail."

Any code monkey can sling code around and eventually they will probably get the job done.  If they're young and energetic and motivated, you'll probably even be impressed with how much code they can write in a week, or month.  But an experienced developer knows what tools to use, when to use them, and how to use them effectively.  Hopefully he's also aware of the business aspects and human aspects, and not just the technical side.

Should be working
Wednesday, March 03, 2004

Whenever we seem to bring up OOP or UML that's usually when the old timer's start screaming:

"WHY???? I can write all of the code right in the UI faster!!!!"

Maybe this contributes to the bias?

GenX'er
Wednesday, March 03, 2004

+++>> "I can outproduce most of the older, more experienced guys on the team here."

This is another comment I often hear from newbies...  I'm absolutely certain that many developers can churn out unmaintainable, inelegant code much, much faster than others churn out sophisticated, concise code.  The volume produced by a developer is far from an adequate measure of a developer's value.  +++

Well.. I'm sorry to burst your heavily rationalized bubble, but I define "outproducing" as cranking out not only a higher, more reliable volume of work, but also QUALITY, easily maintainable code.

There are PLENTY of older programmers who "have done it this way forever" who write absolutely HORRIBLE code.  Usually these are the guys who started out in COBOL and then attended an in house training session on Perl.  They then proceed to try and make Perl code look like COBOL so that they can wrap their heads around it, which of course makes it impossible for anyone ELSE to do so.

Are there excellent, older programmers?  Yes.  Absolutely.

I only said that in my personal experience, I've found the set-in-their-ways arrogant old coots to be far more common.

muppet from electric-chipmunk
Wednesday, March 03, 2004

>>Whenever we seem to bring up OOP or UML that's usually when the old timer's start screaming:

>>"WHY???? I can write all of the code right in the UI faster!!!!"

  I've seen young programmers saying the very same thing.

Ricardo Antunes da Costa
Wednesday, March 03, 2004

Where's Dennis Atkins when you need him? Usually that's his argument....

GenX'er
Wednesday, March 03, 2004

+++But an experienced developer knows what tools to use, when to use them, and how to use them effectively. +++

This is just another flavor of the "Pay me for what I know, not what I make." rationale that so many old-timers have.  It's an argument that doesn't hold any water anymore.  It would be NICE if the world rewarded people for their capacity to store knowlege, no matter how obsolete and outdated it may be, I suppose, but it doesn't.

I may not know how to solve your issue in VB 5 which had a much better way of doing X than VB.NET does, but I can write a perfectly elegant solution in .NET (or better yet, Perl) which does precisely the same thing and not only that but I can get it out faster because when they change a line in the spec midway through the project, I don't start making phone calls to gripe to management, I UPDATE MY TECH SPEC and keep right on going.

But I digress...  You don't get paid for what you know.  You get paid for what you can do.  That is the bottom line.  What can you do for me?

Experience != Productivity

Aptitude + Attitude == Productivity

muppet from electric-chipmunk
Wednesday, March 03, 2004

and, I forgot to add, most older programmers (most in my personal experience) have poor attitudes.  Usually because "Things aren't how they used to be."  Programmers are no longer revered as geniuses, as apparently Once Upon a Time they were.

This puts a thorn in most elder programmers' britches.

muppet from electric-chipmunk
Wednesday, March 03, 2004

So would you rather hire a guy for $100/hour who can solve your problem in two hours, or someone who charges $25/hour who can solve your problem in two weeks?

Ken
Wednesday, March 03, 2004

My dad can beat up your dad.

 
Wednesday, March 03, 2004

+++So would you rather hire a guy for $100/hour who can solve your problem in two hours, or someone who charges $25/hour who can solve your problem in two weeks? +++

this is an extremely narrow and controlled example, now isn't it? :)

muppet from electric-chipmunk
Wednesday, March 03, 2004

>> "'WHY???? I can write all of the code right in the UI faster!!!!'

Maybe this contributes to the bias?"

If there's an older developer who's asking this question, he should have been culled from the herd years ago.  Once again, his mere existence on the payroll is evidence of management deficiency. 

There are a number of possibilities here.  Perhaps the manager is a goofy kid who doesn't know enough to lose the old guy.  Maybe the manager is an MBA and, since the old guy has a nice firm handshake and plays golf, why then, he likes the cut of the old guy's jib.  Or maybe the manager used to be a developer, but couldn't quite compete with the big boys; this kind of manager fires everyone with technical skillsets which supercede his own teensy-weensy 3 1/2 inch skillset.

If management in this country wasn't mostly dead weight, there would be a survival of the fittest of older developers which would ensure only the strong would survive.  Nonetheless, the preponderance of data supports the claim that healthy people don't lose mental acuity until their seventies, so we're cutting our most valuable players.

Dave
Wednesday, March 03, 2004

"this is an extremely narrow and controlled example, now isn't it? :)"

Well, ok, yes.  But the point I was trying to make is that sometimes it is indeed worth paying people more because of what they know.  My example is contrived to make the decision obvious, but it is a very common real-world decision.

Ken
Wednesday, March 03, 2004

Mental acuity has nothing to do with attitude, and little to do with aptitude for a specific task, like for example: programming.

muppet from electric-chipmunk
Wednesday, March 03, 2004

Ken,

In your example, you're still not paying the developer for what they know, you're paying them for what they can do (solve the problem in two days instead of two weeks).  As I said before.

Aptitude and attitude are just as large an asset as experience, and experience has the unique ability to act as either an asset OR a liability.

muppet from electric-chipmunk
Wednesday, March 03, 2004

At first look, perhaps Dave and Muppet seem to describe opposite experiences.

Dave sees youngsters with too much energy frantically generating garbage at an alarming pace, unrestrained by experience.

Muppet sees old timers who accrete mediocre software on a geologic timescale, insisting to do things the same way they did 5, 10, 20 years ago, so they don't have to learn anything new.

Now given that most people are unqualified idiots whether young or old, they'll easily fall into on of those usually true stereotypes.  So Dave and Muppet are both correct over the range of usual candidates.  But those usual candidates are not kind of people you ought to hire anyway, so who cares.  It's only because hiring techniques are universally worthy of ridicule that you tend to consider these prejudices.  If your interview technique for hiring a programmer is to sit in front of a candidate for an hour or four asking them to relate their experiences, you have nothing to make a sound decision upon, so your prejudicial biases are no worse than any other decision criteria you think suitable.

nottabozo
Wednesday, March 03, 2004

"Aptitude and attitude are just as large an asset as experience, and experience has the unique ability to act as either an asset OR a liability."

I respectuflly disagree- aptitude can be a liability as well if it begets arrogance and anti-social behavior.  I suppose I can see how experience (unrelated to age) can be a liability if someone truly is set in their ways.  But I think someone who makes a good developer is generally not the type of person to become set in their ways.

Personally, if was competing with my 22 year old programming self in software development project- I would wipe the floor with him!  Ha ha, take that 22 year-old Ken!!!

Ken
Wednesday, March 03, 2004

Well, I've never been on the hiring end of the stick.

However, if I were ever one day to suffer the unfortunate circumstance of becoming a hiring manager, I don't think i'd ever even consider hiring a programmer without having him write a half dozen code examples in an essay question / logic problem sort of format.

muppet from electric-chipmunk
Wednesday, March 03, 2004

+++I respectuflly disagree- aptitude can be a liability as well if it begets arrogance and anti-social behavior.+++

This is why I said "... AND Attidude" and not "OR"

;)

muppet from electric-chipmunk
Wednesday, March 03, 2004

Whatever, I can still drink you under the table.

22 year-old Ken
Wednesday, March 03, 2004

As a disclaimer, I'm getting a bit long in the tooth myself at nearly 27 :)

muppet from electric-chipmunk
Wednesday, March 03, 2004

>>>I'm self taught in Perl, PHP, Java, C++, and a variety of standards and, at the risk of sounding like "The Jerk", I can outproduce most of the older, more experienced guys on the team here.<<<

I am self taught in Perl, C++, FORTRAN, assembler, TCP/IP, VMS, Unix, DFDs, UML, HTML, emacs, vi, etc. (don't happen to use PHP or Java, yet).  I got a degree in physics and only took a couple of CS classes.  Learned most on my own.  However, I can't outproduce the older guys on the team.  I am the older, more experienced guy on the team.

mackinac
Wednesday, March 03, 2004

I dropped out of high school.

neener

muppet from electric-chipmunk
Wednesday, March 03, 2004

>> "Mental acuity has [...] little to do with aptitude... "

Sonny, mental acuity is a necessary and sufficient condition for aptitude.  I think then, it's safe to posit that mental acuity has a *lot* to do with aptitude. 

BTW, check you, G.  Ya shizzle need to busta' statistics or logic book, dawg.  You all frontin' like you smart and be all up in 'at, but maybe you little stories 'bout your old homies ain't all in the gooch.

Oops!  Sorry.  I was young for just a second there.  But seriously, why not read a book every once in a while, Junior?  Your arguments are not only invalid and unsound, but completely vacuous.

Dave
Wednesday, March 03, 2004

Dear old-timer Dave,

When you put enough ellipses in someone's quote, you can make ANYONE sound like a fool.

I said mental acuity has very little to do with aptitude for a SPECIFIC TASK.

(ie, the fact that you're a sharp guy does not in and of itself qualify you to program)

Arguing that people don't start getting senile until 70 has absolutely no relevance on the attitudes of elder programmers or the affect of said attitudes on their ability to produce.

Maybe YOU ought to read a few books on logic and deductive reasoning.

fo sho

muppet from electric-chipmunk
Wednesday, March 03, 2004

>> "Arguing that people don't start getting senile until 70 has absolutely no relevance on the attitudes of elder programmers or the affect of said attitudes on their ability to produce."

Please, since your argument is so well reasoned, present your evidence that "attitude" has a negative correlation with age.  Indeed, can you even define how one might quantitatively measure attitude?  Thought not.  Vacuous, sonny, as I said.

Dave
Wednesday, March 03, 2004

In general, anybody over the age of 25 is set in their ways.  They are slow learners and can't adapt to new technologies.

My bet is on the 14-20 year old demo coders.

:}

 
Wednesday, March 03, 2004

Muppet --

I feel sorry for you.

The fact that you obviously have not been around people who can serve as your mentor, and show you incredible new ways to see the world as it is.

To loudly decry that old farts know nothing is ignoring the simple fact that young farts know nothing too.

Find a mentor, and then listen.  Debate.  Learn.  The best mentors I have had are always are in their 40s and 50s, with one exception -- a friend my age who started when he was 9.  (I am now 29.)

T.J.
Wednesday, March 03, 2004

muppet, code interviews suck. We had two types of interviewers at my last company - technical interviewers who snarked if somebody didn't have enough experience in X and didn't answer tech question Y well enough, and the "talk about what you did and how you did it" interviewers.

Guess which group hired better programmers?

Hint: Many of the same skills which allow you to solve new problems are displayed by being able to describe how you solved old problems. Very few of them are displayed by having an API memorized (or even remembering order-N bullshit).

MD
Wednesday, March 03, 2004

The elder (or better said, experienced) programmers know a lot about working in a project, not only from the technical perspective. When you work in a project you have to deal with many issues, not only the purely technical ones!

Yes, competent educated young guns will most probably outperform their elder collegues when it comes to technical problem solving. But there are also problems not related to programming which require "social competence" from the project workers. You learn how the human society works only through experience. We should respect our elder collegues and profitably use their technical and social experience.

After all, young monkeys will turn into old monkeys with years passing, and only then they will understand the value of the experience :)

Davidson
Wednesday, March 03, 2004

I never really argued that "all old timers suck"

all I really meant to convey (and I did it poorly, poor social skills you know ;) ) is that hiring based primarily on experience just doesn't work in the programming industry.  Programming is unique in that the "hot shots" and the "old timers" have pretty equally balanced pro/con lists.

yeah and I couldn't help but troll Dave a little bit after he decided to resort to condescension (and might I add, a bit of age discrimination, for shame :) )

muppet from electric-chipmunk
Wednesday, March 03, 2004

"... hiring based primarily on experience just doesn't work in the programming industry. ..."

because experience costs more (good or bad) and newhires are cheaper.

peter renshaw
Wednesday, March 03, 2004

"... As I emphasize often, given that we have long term goals, our goal is to hire for aptitude, not skill set ..."

does this also mean hiring with *commercial*aptitude? or are the developers strictly development? 

peter renshaw
Wednesday, March 03, 2004

+++because experience costs more (good or bad) and newhires are cheaper. +++

No, because experience alone is a poor litmus for a programmer's actual ability.

muppet from electric-chipmunk
Wednesday, March 03, 2004

Hiring is a twisted world.

For example, Fog Creek may want to hire hardcore MFC/C++ and VB programmers.  But, the hottest thing now is Java and web services.  So, every MFC/C++ and VB guru downplays/hides his real expertise and plays up his Java and web services expertise so he can apply to all those abundant and high-paying Java and web services jobs.  And, even when somebody joins Fog Creek, he's got to wonder in the back of his mind about what will happen after Fog Creek.  He thinks: "How impressed are people going to be with all this old C++/MFC/VB experience that I'm getting?"

Not to mention that programmers get whipsawwed all over the place.  One year, this is hot; another, it's something else.  We are constantly re-toolings, learning just enough to get through an interview for the latest craze.  Why not learn every latest craze and learn it well?  Even ignoring the humungous amount of effort that that would take, digging through the hype often reveals that there is nothing at the bottom.  And, since everything is so new, everybody has different misunderstandings about the technology and, when your misunderstandings do not jive with the company's misunderstandings, you don't get the job.

In the end, hiring tends to follow the personal bias of the hiring manager, rather than any logical, external factor.

Anonymous
Wednesday, March 03, 2004

And, ultimately, the industry pushes us to be "jack-of-all-fads, master-of-none".

Anonymous
Wednesday, March 03, 2004

"does this also mean hiring with *commercial*aptitude? or are the developers strictly development?"

Peter, could you please explain this.  I have no idea what this question means.  What do you mean by commercial aptitude?

nottabozo
Wednesday, March 03, 2004

>> Whenever we seem to bring up OOP or UML that's usually when the old timer's start screaming:

>> "WHY???? I can write all of the code right in the UI faster!!!!"

I don't think that's an older or younger thing at all. You find all sorts of programmers who bring that argument up.

The question really is whether they had a logical argument to back up their assertion. If so, they may be right, UML and OOP may be overkill for the task at hand.

If you didn't hear them out, and just immediately assumed their view was wrong because it didn't mesh with your personal view, maybe you're the one who's resistant to change?

Some people become set in their ways with age. Others learn the value of flexibility. Some young people have imagination and creativity. Some come out of University indoctrinated with the One True Way and wont hear otherwise.

Whenever you make generalisations you do yourself a massive disservice.

Sum Dum Gai
Wednesday, March 03, 2004

>> "Yes, competent educated young guns will most probably outperform their elder colleagues when it comes to technical problem solving."

Urban legends, people!  Utter nonsense.  You people are supposed to be computer SCIENTISTS; why not look at some data?  There is now overwhelming evidence that people don't lose their sharpness until their seventies - and by the time we reach that age, people probably won't lose their sharpness until their eighties.

Proposition #1:  A twenty year old has the same keenness and clarity of thought as a fifty year old.
Proposition #2:  The fifty year old who hones his skills and keep up to date with his field has thirty more years of experience.  (That's thirty extra years of building brand spanking new synaptic connections.)
Proposition #3:  Same ability + greater wisdom = better programmer.

The only argument that can be made to the contrary is that all older developers are slackers who only care about COBOL - and that just ain't so.

I'm sure the myth of the technical wunderkind sells lots of cyberpunk sci-fi novels to acne-faced geeks who can't get dates - and I'm sure it's a wonderful fiction that managers use to get rid of higher paid developers.  But, please, let's get real.  In every other profession on earth, common sense prevails.  I wouldn't want a twenty year old performing brain surgery on me; I wouldn't want him to manage my investment portfolio, and I wouldn't want him representing me in court.  Why do we live in this CrazyLand where we want him developing our software?

888

Dave
Wednesday, March 03, 2004

>> Proposition #1:  A twenty year old has the same keenness and clarity of thought as a fifty year old.

Demonstrably false in the field of mathematics. The number of mathematical breakthroughs by people in their twenties vastly outweighs the number by people in their fifties.

The question is whether programming is close enough to mathematical study for such results to be valid in our field.

Sum Dum Gai
Wednesday, March 03, 2004

I think somebody feels threatened.

Do you need a hug, Dave?

muppet from electric-chipmunk
Wednesday, March 03, 2004

>>>The question is whether programming is close enough to mathematical study for such results to be valid in our field.<<<

Computer programming and mathematics are both require logical thinking, but I just can't imagine considering application development as being comparble to making mathematical breakthroughs.

mackinac
Wednesday, March 03, 2004

>> "Demonstrably false..."

Not demonstrably false.  Not demonstrably anything; there have never been any statistically significant studies focused on the super-intelligent - and certainly none focused solely super-intelligent mathematicians.  Furthermore, when considering only those who have breakthroughs in fields at a young age, there's really not even any evidence that these people, in general, are necessarily super-intelligent. 

One hypothesis goes like this:  Young people are plentiful, and completely free to spout off any crazy theory that randomly comes to their minds, while older, established people would risk their reputations and positions.  Therefore, there's a huge number of kids spouting random nonsense, but statistically, every now and again, some crazy theory just happens to be correct.  To the rest of the world, it truly appears that this person is a genius.  "Wow", people in the field say, "that theory came from nowhere.  This person is obviously on a much higher plane than I, and I'm an expert."  Think of evolution.  We know that most random mutations are harmful or non-detrimental, but every once in a while, a random mutation is helpful - just probability.  The fact that a certain few kids get lucky with a wild guess is also nothing more than probability.  Sooner or later, a room full of monkeys pounding typewriters is going to produce something of value.

Oh, and during most of the history of mathematics, people probably died in their forties, so a twenty-something would be middle aged.

Dave
Wednesday, March 03, 2004

You're kidding now, right Dave?

You honestly think brilliant breakthroughs are the result of nothing more than random thoughts over time?  That genius is an illusion produced by luck?

veal
Thursday, March 04, 2004

Actually, Dave may have something here.  For someone to be a one-in-a-million genius, you need on statistical average about a million people for that person to show up.

The population of the world doubles roughly every thirty years.  This means that about half the population of the world is under thirty.  (I say about half because some of the people over thirty died along the way.)

Half of the geniuses of the world should be under thirty, or thereabout.

Sure, it's a gross oversimplification, but you should see some of the stuff that gets pulled in statistical thermodynamics that still gives results pretty close to reality.

Aaron F Stanton
Thursday, March 04, 2004

You're grasping at straws there. The simplest explaination of why younger people make more mathematical discoveries is because younger people are better at making discoveries.

I prefer to believe in the simplest explaination unless shown otherwise. Your ideas could be true, but you're going to have to come up with something concrete to convince me.

For what it's worth, I'd be perfectly happy to let a 20 year old lawyer defend me in court if he was the best person for the job. I see no reason why the older lawyer is automatically going to be better. If the older lawyer is better, sure I'll use him, but I'm not going to go in with any assumptions one way or the other.

Ditto for the other occupations. I'd make my decision on merit, not on age.

Sum Dum Gai
Thursday, March 04, 2004

"... Peter, could you please explain this.  I have no idea what this question means.  What do you mean by *commercial aptitude*? ..."

sure.  One of the competitive edges in startups is to see where opportunities lie and act on it, fast.

Since the command heirarchy is flatter, decisions are made at the lowest (or lower) level. Commercial aptitude means - *you can judge what is probably going to be useful* to a user and are they willing to pay for it. 

This is a job traditional marketing usually fulfils through product manager. good developers who understand the market, app, their competitors can exploit such oportunities.

You may not have the decision for inclusion of an idea, but having developers with aptitude and skills who understand that for instance that *feature X is probably worth 10X feature Y* and placing feature X lower down the todo list and driving the development of feature X gives a competitve edge.

JOS has mentioned something similiar with bugs and the cost to fix some bugs.

in the end its the ability commercialise and see worth (will a user gain from this feature - will they pay for it?) in what code (feature) is being developed. 

sure this could be decided  at spec time, but markets for shrink wrapped products change and developers have to adapt, quickly. 

peter renshaw
Thursday, March 04, 2004

"Half of the geniuses of the world should be under thirty, or thereabout."

Most of the people are in developing countries where they probably wont get enough education to let their genius show. In the developed world, where education is more widely available, the population growth is close to 0.

Even so, you just have to look historically. There are very, very few mathematicians that I'm aware of who did better work after their 50th birthday than before it. Under the theory that "more experience" automatically equals "more better", this should not be so.

I realise that mathematics is the extreame case, and probably relies on mental sharpness more than any other line of work. But that's really the point, isn't it? The claim made was that you don't lose your sharpness until 70. That would seem to be untrue, at least amoung maths geniuses.

Sum Dum Gai
Thursday, March 04, 2004

I write a million lines of code a day! And it is fine supor quality with no bugs! And easy to maintain! It is because I am younger than all you wizened old geezers! And  I am older than all you inexperienced code monkeys! I am the alpha and the omega! All coding is done through me and me alone!

Standard Code Braggart
Thursday, March 04, 2004

"... No, because experience alone is a poor litmus for a programmer's actual ability. ..."

true. but it's cost that is turning out to be the key driver in the market. the topic is about *outsourcing*. 

peter renshaw
Thursday, March 04, 2004

Maybe the reason why young people make more discoveries is because when they're older, they're spending time with their family, basking in the discoveries they've made when they were young, explaining to other people what those discoveries where, etc. Lots of distractions. Lots of risks to making mistakes. A young person, however, has nothing to lose. No distraction, and everything to gain by spending all his time trying to prove himself. BTW, I'm still young so you can't accuse me of being defensive...or maybe I'm just being defensive in advanced??? :)

Humbug
Thursday, March 04, 2004

You seem to be supporting the theory that you should hire young people because they'll work harder and be less distracted by family concerns!

Sum Dum Gai
Thursday, March 04, 2004

I have to say that muppet from electric-chipmunk and Dave both have valid POVs.

From an employer's POV, prior IT experience/knowledge is only valueable if you can apply it to the work that needs to be done today.

Some of my technical knowledge/experience truly is outdated and irrelevant. For example, I have a lot of mainframe software development experience under my belt. The reality is there aren't many companies out there that still develop business software systems that are designed to run in a mainframe computer environment. Only employers looking for mainframe maintenance programmers or ones that have an integration/re-engineering project coming up would find my extensive mainframe knowledge of value to them.

An Old Geezer
Thursday, March 04, 2004

Dave> There is now overwhelming evidence that people don't lose their sharpness until their seventies - and by the time we reach that age, people probably won't lose their sharpness until their eighties.

Nobody argued with the shrapness issue, eventhough it's a highly debatable one! But let's discuss another thing. Sharpness is just only one of many factors that contribute to productivity. What about flexibility, adaptability, stamina, enthusiasm, immunity for dirty work, hunger for success, overconfidence/braveness etc. etc. The only thing where young guns are worse is experience :) But experience is a huuuge factor! That's why I said that young developers are better in technical problem solving but not in project work. There is a difference between solving an isolated technical puzzle and getting the software out the door.


Dave> In every other profession on earth, common sense prevails.

Of course! That's why it's necessary to have the balance between the raw power of youth and crystallized wisdom of experience. You want to have a blend of both at your disposal!

Davidson
Thursday, March 04, 2004

Old mainframe experience is still useful. I don't mean in the syntax sense, but in the experience of developing business systems. In OOP we have the GOF who identified patterns, I noticed the same sort of thing at a much higher level when I first started in IT in the mid 80s. In most business software, and I don't mind ultra-configurable shrink wrap stuff, you will see only a limited set of program types being used, although the business logic changes.

The business logic is domain specific but experience in IT can often transcend these things, so I have worked at a new job and been introduced to the new/old system, often my reaction after looking at it is that I have seen this system before in a previous job, its just that the details change.

I have been lucky in that I have kept my skills up-to-date-ish, but if I were in a hiring position I'd hire mainframe lags and train them in C++/Java/whatever since I know that their experience is worth a lot.

I probably haven't expressed myself well. Sorry for that.

whattimeisiteccles
Thursday, March 04, 2004

>> "Nobody argued with the sharpness issue, even though it's a highly debatable one!"

You can debate all you like - but that doesn't change reality.  The evidence is out there.  People don't lose mental acuity until senility, illness or unhealthy lifestyle (read drunkenness).

>> "You honestly think brilliant breakthroughs are the result of nothing more than random thoughts over time?  That genius is an illusion produced by luck?"

These kids aren't putting forth random theories; they're obviously educated people.  They just might not be super-intelligent people.  Two factors:
1. There are many more grad students than established researchers.
2. Established researches have to be very protective of their reputations.
Thus, kids have complete freedom to suggest any crazy idea that they bump into in a middle of the night bull session.  Think of two groups on a shooting range.  There's one large group free to shoot as many times as they like, and one smaller group with a dearth of bullets.  It proves nothing if the first group scores more bulls eyes.  That's kind of why researchers demand silly things like scientific samples and stuff.

>> "Maybe the reason why young people make more discoveries is because when they're older, they're spending time with their family, basking in the discoveries they've made when they were young, explaining to other people what those discoveries where, etc. Lots of distractions."

Exactly correct.  This is well documented in the research.  Older people are just as capable as younger people; any discrepancy in performance can be traced back to other factors.

What's frightens me is that, in a forum of supposed computer SCIENTISTS, there's not much appeal to empirical evidence - just a bunch of "Ooh, some old guy I work with likes C!", and "Youth has an certain magical, and indefinable raw power!"  Well, ya know what?  My lucky astrology mood ring says that the pyramid power is on the older developers' side, so, by the power of Isis we win!!!

Dave
Thursday, March 04, 2004

>> any discrepancy in performance can be traced back to other factors.

If I'm going to hire someone, why should I care WHY someone performs poorly? Your statement comes off as "Old guys are just as capable of performing, they just choose not to". Which isn't a very inspiring way to put across your case!

Anyway, as I've said before, you don't hire people as a demographic, you hire them as individuals. Whether more experienced people in general are better developers doesn't matter. Whether older people in general have other priorities in life doesn't matter. People are not a sum of the statistics of their demographics.

What matters is the indivual you hire is the best for the job! I think Joel's statement of wanting to get people young is silly and unfounded superstition. Particuarly since I think one attribute good developers have is that they don't become dilbertised and remember how to do things properly despite being forced to do things poorly in previous jobs. However I think it's equally foolish to across the board endorse older developers as being superior.

To quote Steven Jay Gould, "the median is not the message"! There are usage greater variances within subgroups than between the various subgroups when taken as a whole.

Sum Dum Gai
Thursday, March 04, 2004

there are usually, not there are usage. Gah, this forum needs a grammar checker. I know, I know, in the old days they taught grammar in schools. ;)

Sum Dum Gai
Thursday, March 04, 2004

>> any discrepancy in performance can be traced back to other factors.

>If I'm going to hire someone, why should I care WHY someone performs poorly? Your statement comes off as "Old guys are just as capable of performing, they just choose not to". Which isn't a very inspiring way to put across your case!

Well, maybe the more you work as a programmer the more you get bored with it? You know, there are theories that you have to change your occupation every 7 years in order to stay hungry and interested. You simply loose the lust, the motivation, you become mechanical, you don't put your heart and soul into it. It's not a passion anymore, just a job. Maybe you are not firing on all cylinders not because you are not capable of it but because you don't have so much reasons for it? I don't know...

Davidson
Thursday, March 04, 2004

+++"... No, because experience alone is a poor litmus for a programmer's actual ability. ..."

true. but it's cost that is turning out to be the key driver in the market. the topic is about *outsourcing*.  +++

actually, the topic in this particular thread was hiring strategies for acquiring the best programmers.  Granted, the market is focused on cost (as always), but there are the blessed few who realize that the short term savings of outsourcing usually don't outweigh the long term maintenance and logistic costs, even (and perhaps especially) for internal software.

muppet from electric-chipmunk
Thursday, March 04, 2004

Dave, your last post exhibits exactly the sort of attitude problem most shops have with senior citizen programmers.  ;)

muppet from electric-chipmunk
Thursday, March 04, 2004

It has been interesting to read the various opinions in this rant fest.  The problem of age discrimination comes up often on JoS discussions.  It is hard to be sure that the concerns are valid.  It is somewhat depressing to read posts from individuals who do hiring and state that they are biased against older or experienced (and thus necessarily older) developers.

It was particulary disconcerting to read that Joel, who hires people who are "smart and get things done" is one who prefers to hire the less experienced.

I have read through Joel's articles on software development and hiring developers and think that he has a lot of good ideas.  They generally coorespond to what I've learned through many years of experience in a variety of working environments.  But he would prefer not to hire someone like me.  I wonder if he would even hire someone like himself, especially after having worked at Juno?

mackinac
Thursday, March 04, 2004

I have to confess that I mostly just like to get the old-timers worked up.  =]

muppet from electric-chipmunk
Thursday, March 04, 2004



>> "However I think it's equally foolish to across the board endorse older developers as being superior."

I'm certainly not arguing for age discrimination favoring older developers.  I'm simply arguing AGAINST age discrimination altogether.  With a great deal of statistical certainty, I believe we can say we are throwing out star players because of a nonsensical mythology that seems to pervade our industry in particular.

Here's my own anecdotal story.  The most amazing software engineer I ever met was a guy who was a lecturer for an undergrad class I had.  He was about sixty, worked in software engineering most of his career, and he recently went back to school for his PhD at CMU.  He was a crusty old bastard who insisted on strict coding standards, and insisted on us justifying every coding decision we made.  He was a pragmatic programmer extraordinaire, although I didn't know it at the time.  I just thought he was a jerk. 

I took an internship at his company - a startup that created testing & analysis software for the Department of Transportation in New York.  And I still thought he was just a huge bastard.  I thought to myself, and complained to the other young guys, that the fool was just wasting a lot of our damn time with stupid standards, and design meetings, and documentation, and research into best engineering practices, and unit testing, and code reviews etc.

It wasn't until I got my first real job at another, more typical, start-up that I realized what an amazing gift that old coot gave me.  Oh my God, the hours of time I spent working through spaghetti code just to change a single stupid input!  The light bulb finally went off!  This is why that bastard insisted on all the nonsense he insisted on!

I can't possibly disagree more with Joel's initial assertion more.  You can't possibly understand what good engineering practices buy you until you spend a couple of years tangled up in rancid spaghetti code.  That old dude died in a car wreck before I could ever thank him, so I've always thought I'd do the ol' "pay it forward" thing, and try my best to mentor others.  Oh, well, according to Joel, my experience is detrimental useless!

Dave
Thursday, March 04, 2004

Dave,

Way to completely miss the point and wrap up emotion into your "empirical" argument.

No one is arguing that good engineering process is a bad thing, or that all old developers are poor developers.  I think that the initial assertion was that older, more experienced developers have to be approached with caution due to the statistical likelihood that their experience was gained at one of the many "Dilbert" companies that abound in this country.  That's the sort of experience that's detrimental, and it's very common.

Also, you suggest in your post that young developers are ignorant of good coding practice, design standards, essentially that they have no concept of a Software Development Life Cycle.  This is bigotted and discriminatory on *your* part.

muppet from electric-chipmunk
Thursday, March 04, 2004

Personally, were I in a hiring position (God forbid), I'd be more inclined to shy away from college educated programmers than older ones.  Especially those who majored in Comp Sci.

Self taught programmers tend to be more flexible, more motivated (MUST.  PROVE.  MYSELF.) and more willing to learn new technologies/tools when it's called for.

muppet from electric-chipmunk
Thursday, March 04, 2004

Dave, since you admirably tried pushing this thread toward scientific reasoning, perhaps you could post references to some of these studies you mention.  I'd be curious to read them.  I'm most interested in the populations over which these studies were performed.

I mean, if we're talking mental acuity, a study of the persistence of mental acuity for average brains might not help much, given the average is so weak.  I'd bet there are studies that show average physical stamina can be maintained well into middle age, but as Michael Jordan showed us, at the high end you surely have a very different situation.  That your average mouth breather can maintain the same level of shoe-tying capacity until his seventies tells us nothing certain about whether a Gauss or a Fermat can maintain his level of brilliance until his seventies.

veal
Thursday, March 04, 2004

Dave, you attribute far too much to "good engineering practices".  Most people employed in this field write complex tangles of bad code, independent of any process, practice, or experience.  Sharp programmers write nice, clean, understandable code regardless of whether they follow any particular "engineering practice" or just wing it.  It's talent that differentiates the two, not process.

Experience reminds you what things to think about.  Talent determines whether those thoughts are treasure or garbage.

veal
Thursday, March 04, 2004

Back to the whole distraction concept - having been through both sides of it - I completely agree.

A really smart person as a kid can get totally sidetracked by things like dating, school bills, rent, marriage, mortgage, kids.  (For me, pretty much in that order.)  It's a right pain to be one hundred percent focused on obscure high level stuff when other things are a priority too.

Someone fresh out of college has less of those concerns just yet.

People got annoyed at one job when I told them, "Use it or lose it.  That's why I'm losing my mind."  My fault for accepting a position that didn't use my skills.

Aaron F Stanton
Thursday, March 04, 2004

When I was younger I was more productive because:
- There wasn't a JoS discussion board to distract me.
- There wasn't even an Internet
- I worked in a nice quiet office

C
Thursday, March 04, 2004

>> "Sharp programmers write nice, clean, understandable code regardless of whether they follow any particular "engineering practice" or just wing it.  It's talent that differentiates the two, not process."

Honestly, this post is so retarded that I've gotta believe you're trolling.  Either that, or you're an idiot newbie. 

It takes a lifetime to hone a craft - whether it is carpentry, or masonry, or software development.  It takes years to master the language of design patterns - and to learn to think in an ever expanding catalog of design patterns.  It takes years to familiarize oneself with the hundreds of tools, languages, IDEs, platforms, APIs, etc. that a journeyman developer needs as part of his toolkit.  It takes years to scratch the surface of knowing all the algorithms & associated data structures that distinguish a master from a goofball kid.  It takes years to work at enough shops to simply get the flavor of what's out there.  Can a goofy kid, fresh out of school, know what it's like to work for an IT department, a shop making engineering software heavy on scientific computing, a shop creating tutoring software heavy on natural language processing, and a shop creating web services for consumption by multiple enterprises.  These are all completely, radically different worlds!

Grow up, man.  Writing a bubblesort routine with nice variable names and clear comments doesn't mean you're creating software.  Jeez!  I'm at least smart enough to know that I don't know anything.

Dave
Thursday, March 04, 2004

Dave> It takes a lifetime to hone a craft - whether it is carpentry, or masonry, or software development.

I read somewhere that in most of the non-trivial professions it takes about 10 years of field experience to become an expert. There were a few examples including software, sport, and even Beatles (they were playing together for about 10 years before their worldwide breakthrough happened). I wonder if there are any scientific articles on that topic...

Davidson
Thursday, March 04, 2004

"it takes about 10 years of field experience to become an expert."

I've heard that as well.  Interesting that according to Joel it also takes about 10 years for software to be considered mature.

No coincidence that it takes about 4 years as an undergrad plus (for many) 6 years of grad school to get a PhD, at least in the US educational system.

Aaron F Stanton
Thursday, March 04, 2004

+++It takes years to familiarize oneself with the hundreds of tools, languages, IDEs, platforms, APIs, etc. that a journeyman developer needs as part of his toolkit. +++


BZZZT.  The tools, languages, and IDEs that you spend 'years' honing and perfecting for your toolkit will be obsolete by the time you've mastered them, as you've insisted is necessary to good development.  The truth is, unless you're a production support shop, "real" development is being done with technologies that are 2 or 3 years old at most.  Having pre-learned patterns that worked for those technologies' predecessors can be more of a liability than a boon.  There's a lot to be said for a fresh perspective on a new technology, instead of the stale old "This looks just like something I used to do in COBOL".

I've worked with COBOL programmers who went WAY out of their way to make Perl programs behave like they "should", meaning, behave as if they were COBOL applications.  Some even went so far as to COMBINE THE PERL APPS WITH .BAT FILES in order to get the behavior flow that they were used to and comfortable with.

In this industry, a new technology comes out every 6 months, and is leaped upon by the majority of the market.  15 years of development experience in C buys you very very little when you're coding mod_perl or Java webservices and interfacing to your .NET client via SOAP.  Yes, you will have a handle on data structures and pointers and some methodology, but the sad truth that I'm willing to bet keeps you up at night is that those methodologies do not apply when half the rules have been changed.  Code is no longer structured the way it once was.  There are older guys on my team now who just can't figure out why the hell anybody would ever want to use OO code, period.


v, kudos on the shoe-tying remark :)

muppet from electric-chipmunk
Thursday, March 04, 2004

Unfortunately, software changes so rapidly honing the craft isn't like more stable industries.

There are, in my mind, two categories of development skills.  The first is tools such as Java, Jsp, .NET, Perl, whatnot.  Short lived skills, specific in purpose, constantly in need of update.

The second are long lived, more general skills, such as  design patterns, writing skills, presentation, customer awareness (use cases, ability to interview customers), test awareness (writing easily testable code), etc.  Basically, the various lifecycle skills and domain knowledge.

Both are important.  Anyone can pick up the first set fairly easily if they have any aptitude in the industry.  The second set of skills take time to hone and also often depend on good interaction abilities.  How can you explain your design unless you've learned how to communicate in more than one way (as people learn in different ways)?

Curmudgeons fail to keep skill set 1 active, newbies don't have the experience for skill set 2.

If only youth mattered, at what age do we have the cutoff?  Only employ eager 8 year olds? 15? 21? 25? 30? 35?

For a long lifecycle product, I'd rather have a 50 year old that's shown he's kept up with the times/tools and has a wealth of history solving tough problems, than a 20 year old that only knows the current tools.

On the flip side, if I'm developing a prototype to get venture capital, I might want a 20 year old who will work 80 hours a week writing a throw-away prototype.  The long term doesn't matter in that case.

Chris Kessel
Thursday, March 04, 2004

+++There are, in my mind, two categories of development skills.  The first is tools such as Java, Jsp, .NET, Perl, whatnot.  Short lived skills, specific in purpose, constantly in need of update.+++

I haven't read your entire post yet but I have to comment here... Perl is a short lived skill?  Are you insane?

muppet from electric-chipmunk
Thursday, March 04, 2004

sorry to break this reply up.  Last one, I promise:

+++Curmudgeons fail to keep skill set 1 active, newbies don't have the experience for skill set 2. +++

Some "newbies" are naturals at process and writing very testable code.  Granted, most aren't.

Not to toot my own horn, but I've been coding for a big fat 4 years, and I'm self taught out of O'Reilly and Wrox books, solely.  My code (and I've been told this by experienced technical management time and again) is cleaner than most of the veterans I've worked with (I hesitate to say 'all') and is written with testing in mind (something you get very used to when you code for the web, since you're executing your stuff on remote systems 99% of the time).  I've lost count of all the code I've had to riddle with debug statements simply because a developer chose not to do ANY error trapping at all, let alone put any comments anywhere.

My point (as I've rambled a bit) is that age-gained experience is NOT the only way to be good (or excellent) at process.

muppet from electric-chipmunk
Thursday, March 04, 2004

Yes, Perl is relatively short lived.  COBOL is mostly dead for any new development, Perl will be one day as well.  However, languages do tend to live much longer than tools for languages.

Perl will be replaced (or, more likely morph) such that Perl skills today won't be much of a leg up for someone using Perl in 5 years.

"...some people are naturals..."

We're largely not talking about "naturals" at anything, sine if we were then age is irrelevant.  You don't lose natural ability.  So, we're talking about the less than god-like who aren't born with innate software sk1llz, in which case it takes time to learn what's good, what's bad, and *why* so you can learn how to adapt as projects start, mature, and eventually die.

"...haven't read your full post yet..."

Ahh...youth, rushing off to make their voice heard before actually understanding the totality of the issue.

You're a troll chipmunk, but a fun troll.

Chris Kessel
Thursday, March 04, 2004

Perl will be about as short lived as COBOL (note that COBOL is still used all over the place).

I wouldn't consider any technology with a ten year run to be short-lived.

Granted, you're right that process and methodology skills are *mostly* cumulative with age.  Still, *some* of the methodology is itself defined by your tools, which change from year to year.

muppet from electric-chipmunk
Thursday, March 04, 2004

Dave wrote, "It takes a lifetime to hone a craft - whether it is carpentry, or masonry, or software development."

It's true that we all get better over time with experience.  I'd prefer to work with the 45-year-old Bjarne Stroustrup, for example, over the 20-year-old Bjarne.  What you seem to ignore is that the people who become grand masters typically began ahead of the average.  I'd also prefer the 20-year-old Bjarne to 97% of the people employed in this industry.  Sure, kids make mistakes and visit blind alleys they'll one day know to avoid, but the really talented ones are still better than most others of any age.  I wouldn't want to tell that to a sharp 20-year-old, but it's a fact.  That's true because the average is currently so abysmal.


And he wrote, "It takes years to master the language of design patterns - and to learn to think in an ever expanding catalog of design patterns."

Knowing many of the good design patterns well can eliminate a lot of fumbling, but it's by no means required knowledge.  Hell, even the GoF pattern catalog is a mere distillation of good solutions that the gang found often in their own code and other good code they studied.  A master will have studied them and know when to apply them, but even a truly talented kid can do pretty well without knowing them. Does your experience really tell you the average bumbler will not bumble while knowing them?


And, "It takes years to familiarize oneself with the hundreds of tools, languages, IDEs, platforms, APIs, etc. that a journeyman developer needs as part of his toolkit."

A good programmer need only know the single platform, language, and API they're working with to use it well.  While breadth is nice and lends useful insight, do you think that rare quality of innate programming talent cannot help a Java GUI programmer more than having detailed knowledge of writing Tuxedo transactions in C with embedded SQL, or knowing one's way around the Smalltalk class browser?


And, "It takes years to scratch the surface of knowing all the algorithms & associated data structures that distinguish a master from a goofball kid."

Funny, I learned perhaps half the fundamental algorithms and data structures I regularly use during a one-semester CS class.  The rest came easily as I needed them.  Modern class libraries almost take care of that for you, provided you know just enough to choose well.  Profiling reveals when you chose poorly -- an easy problem to resolve.  Again, knowledge and experience is clearly an asset.  But can memorizing every data structure ever invented overcome a lack of talent?


And finally, "It takes years to work at enough shops to simply get the flavor of what's out there.  Can a goofy kid, fresh out of school, know what it's like to work for an IT department, a shop making engineering software heavy on scientific computing, a shop creating tutoring software heavy on natural language processing, and a shop creating web services for consumption by multiple enterprises.  These are all completely, radically different worlds!"

Exactly how would knowing, say, what it's like to work in a scientific computing lab help, say, a programmer at Fog Creek put a spell checking into a CityDesk editor window?  Would this knowledge be more valuable than raw aptitude for programming?

veal
Thursday, March 04, 2004

not to mention, around 99.9% of good-practice and methodology is just good old fashioned common sense.  Young people with no common sense don't tend to grow up to be people with oodles of it.

If someone has to tell you that commenting and error trapping are pretty neat ideas, then you should probably be filling potholes or similiar.

muppet from electric-chipmunk
Thursday, March 04, 2004

On the other hand...

Muppet, your posts are now tending to drift more toward positing that experience is often a liability, probably as a reaction to Dave's posts.  I disagree with that strongly too.

You say "There are older guys on my team now who just can't figure out why the hell anybody would ever want to use OO code, period."  That isn't because they're older.  That's just who those particular people are.  I caution you not to extrapolate your experiences with them to other older programmers.

Experience is, without a doubt, an asset.  But experience cannot overcome a lack of talent, and age does not always grant taste either.

veal
Thursday, March 04, 2004

Experience absolutely can be a liability if it causes an otherwise very talented individual to rely on it like a crutch and refuse to learn "new and exciting" ways of doing things.

Granted, this has more to do with the person than the sum of his/her experience.

muppet from electric-chipmunk
Thursday, March 04, 2004

As you say, that has more to due with the person.  If someone is prone to crutch along then their age hardly matters, they're not going to be proactive workers in the first place.

Hiring veterans typically means you know what you're going to get, or should if you do your homework as an interviewer.  Have they used new languages, or tools in the last couple jobs?  Gotten any certifications or additional education over the years? 

Hiring youth is more like drafting a player.  Might be great, might suck, there's no history to really tell how they'll react.  No real way to tell how well the guy fits in a big project (or small project, or NASA level criticality project, or whatever your environment is).

Many contractors are older than average.  Why?  They've got the breadth to work in many environments, work with many different types of people, and many types of tools.

Chris Kessel
Thursday, March 04, 2004

+++Many contractors are older than average.  Why? +++

Because development shops won't hire them.  ;)

muppet from electric-chipmunk
Thursday, March 04, 2004

"Because development shops won't hire them."

and then they wind up paying consulting fees instead of salaries...which are higher, again?  I honestly forget.

Aaron F Stanton
Thursday, March 04, 2004

>>> Because development shops won't hire them.  ;)  <<<

This is what has happened to me.  It has a lot of nice features.  The hourly rate is almost twice my past salary as an employee (not here).  I do have to pay everything: health insurance, vacation, self-employment tax, etc.  I haven't worked out a comparative value, but it is nice to have a choice of health plans, amount of vacation, etc.

If pay were the only consideration, I 'd prefer contracting.  But contractors are second class citizens if they work on site.  You get a desk in a corner of a lab that they won't give you a key to.  Don't come in too early or you might not find someone to let you in to your desk.

mackinac
Thursday, March 04, 2004

Veal is getting the point. Bjarne is simply a better developer than average at any age. That's what I meant when I said that the deviation within sub-groups is greater than the deviation between them.

Experience can play a part, but you have to have the talent to make use of that experience to start with. If you just don't have the aptitude, no amount of experience can fix it.

If Iived to 1000, I'd still never be able to play guitar like Hendrix did in his 20s. All the experience in the world, all the time spent honing my craft, would no doubt make me a somewhat better player, but I'd never match Hendrix.

Improvement is only relative to your former state. If one person started out being able to write 1 line of code a day, and they double their productivity over my lifetime, it's still only 2 lines of code a day. Perhaps a more talented individual started out writing 10 lines of code a day!

As they say, you can't polish a turd.

So Dave, I expect that all of us will improve our skills, learn new things, with age. The problem is the hiring decision is never between 20 year old person X and 50 year old person X. It's between 20 year old person X and 50 year old person Y. You have to judge them by their current merits, and if the 20 year old happens to be more naturally talented, it may just be that they're a better hire than the 50 year old.

I disagree with the bias against hiring older people. I also completely disagree with the tactics older people are trying to use to work against it. You're attacking the wrong problem. Don't sell older people as being better: sell yourself as being better!

As far as the idea of technologies going out of fashion. Bid deal I say. A good developer can see the forest for the trees, and can use their transferable skills no matter what tools they're presented with. Although they'll certainly have personal preferences, they're perfectly capable of getting the job done in whatever language and platform. The fundamentals don't change.

Sum Dum Gai
Thursday, March 04, 2004

"The fundamentals don't change."

That's precisely the point and why I pointed out there's short and long term skills. In ANY professional job, it takes time to ingrain the fundamentals, to become unconsciously competent. 

All this discussion also ignores team dynamics and none of this is new.  It goes back to Frederick Brooks "surgical team" concept and 2nd system effect (experience), Peopleware's teamicide, and others.

People love sports analogies, even geeks :).  Most male atheletes have their best years (barring injury) around 28-32.  Males peak physically at 17-20.  The difference is experience.  Yes, physically not as talented at 30, but they've got the experience to make the most of their abilities.

Not knowing *anything* else, just knowing you've got a 20 year old developer with no track record or a 50 year old with a track record of 27 major product releases, which do you want leading your team?

Chipmunk might want the untested 20 year old, but I'd rather have someone that's proven they know how to get a job done, a job with bit $$$ on the line. *Then* hire the promising 20 year old and assign him the 50 year old as a mentor for a couple projects, just like most industries do (electrical, medical, legal, etc).  The 20 year old might be more talented, but needs time and experience to make the most of that talent.  I want him on my team, just not making the decisions at age 20.

There are also not many god-like people.  Intelligence isn't a flat line from 50IQ-200IQ, but a bell curve.  The bulk of most software organizations are going to be smart, but not god-like folks.  The difference in developer productivity is as much as 10:1, but the difference in organizational productivity drops to 4:1 (e.g. Company X is 4 times as productive as company Y).

Then factor in personality traits like confidence and assertivness and your god-like person could be anywhere from a wallflower to an egomaniac.  Finding that perfect god-like engineer is like finding the holy grail.

Organizational productivity is due to good/bad management.  Knowing how to get the most out of even a talented group requires understanding how to pull together a diverse set of personalities and skills.  Sadly, the software industry doesn't have many good managers.

Chris Kessel
Friday, March 05, 2004

+++Not knowing *anything* else, just knowing you've got a 20 year old developer with no track record or a 50 year old with a track record of 27 major product releases, which do you want leading your team?+++

Describe the nightmare hiring scenario in which that would be the ONLY information that you'd have to go on??!

If we're going to debate on impossible fictional events, then I'd rather have a purple elephant as my Morale Manager because hey, who doesn't love purple elephants?

muppet from electric-chipmunk
Friday, March 05, 2004

You're right, you'd know more.  I'm actually thinking more of the "all other variables being the same" scenario, not "you only know 1 piece of information".

Chris Kessel
Friday, March 05, 2004

All other elements being the same, except that one guy is 30 years older with ingrained habits that I may have to coax him to unlearn, and the 20 year old hasn't got any experience with product releases at all?  I think I'd hire a new headhunter, because he's giving me crap options.

muppet from electric-chipmunk
Friday, March 05, 2004

You've completely avoided the question and inserted conditions that wasn't present in the original question.

Stop the dancing about the issue like, well, a chipmunk.  Most of your arguments have been "god-like 20 year old vs. the grumpy set-in-his-ways 50 year old".

That's not even close to an even comparison.  If that's what you find in your resume stack, then as you say, find a better headhunter.

In the meantime, getting back to actually debating an apples-apples comparison... 

Assuming each is competent in their field:
Would you hire a 20 year old or 50 year old architect to redesign your home?

Would you hire a 20 year old or 50 year old surgeon to do surgery on your spine?

Would you hire a 20 year old or 50 year old lawyer to argue your murder case in court?

Would you hire a 20 year old or 50 year old to coach your multi-million dollar football team?

Would you hire a 20 year old or 50 year developer old to build your multi-million dollar business critical software?

Experience matters in every industry that takes brains.  Software takes brains.

Chris Kessel
Friday, March 05, 2004

+++Assuming each is competent in their field:+++

assuming that each is competent in their field, with all other considerations made equal (in your quasi-fictional happy world we're now debating in), I guess I'd flip a coin.

muppet from electric-chipmunk
Friday, March 05, 2004

trolling aside, if we're comparing neuro-surgery to software development, well, that's hardly apples to apples, as you have insisted we stick to.

Obviously experience is important in neurosurgery (but then, so is a steady hand), but the field has a far different dynamic than software development.

A 20 year old competent, "right-thinking" coder is a much more valuable asset, in my opinion, than a 50 year old "seen-it-all" coder who has his own ideas about what my product should look like.

by "right-thinking" I mean, does he organize his thoughts well, does he take downstream workflows into consideration in his coding, does he write for legibility and modularity, and so on.

muppet from electric-chipmunk
Friday, March 05, 2004

The goal is to understand if experience matters.  My quasi-happy world sets up a basis for argument. 

Your quasi-unhappy world where all 20-year olds are godlike and all 50 year olds are stuck in their ways is no more realistic, but sets up an impossible situation for discussion.

But, you answered the question, you'd flip a coin.  So, in your world, experience has ZERO effect.  I obviously don't agree with that, but at least you answered.

I'd also assume that you've never asked, and will never ask, anyone for advice?  Since, clearly, experience doesn't matter, there'd be no value in it.  Just flip a coin when you're unsure.

Chris Kessel
Friday, March 05, 2004

+++But, you answered the question, you'd flip a coin.  So, in your world, experience has ZERO effect.  I obviously don't agree with that, but at least you answered.+++

You used "competence" as your metric.  I'll take competence over experience.

muppet from electric-chipmunk
Friday, March 05, 2004

Also, just to note:  in your quasi-fictional happy world, you're assuming that all 20 year old developers are green, and all 50 year old coders are uber-experienced.  So, given that, I guess we're both making bigotted assumptions.

muppet from electric-chipmunk
Friday, March 05, 2004

Again, you've thrown in a new condition, compentence "over" experience.  The question was given two equally competent people, would you prefer one with experience or not?  You said no, flip a coin.

Brain surgeon A has all the same degrees, certifications, medical staff, but has only done 1 actual surgery.  It was flawless.

Surgeon B has the same things, but 70 surgeries, largely successful, a couple had unexpected complications though and the patient died.

Both are equally technically competent, surgeon A might even be a bit more physically gifted.  Surgeon B however has a much better chance of dealing with things that crop up that deviate from that competency.

You can have surgeon A.  I'll take B every time because if something goes wrong, A is an unknown, he might not be able to save me.  B won't get rattled, might have seen it before, and can avoid the worst case scenario.
 

Chris Kessel
Friday, March 05, 2004

It's bigotted to assume a 50 year old is inflexible and can't learn.

It's not bigotted to assume a 50 year has worked in the industry for 30 years and the 20 year old hardly at all.  That's simply time lived, not an assumed personality trait.

I'm not anywhere near 50 myself :), but the vast age difference in these examples makes the dichotomy more obvious.

Chris Kessel
Friday, March 05, 2004

"Assuming each is competent in their field:
Would you hire a 20 year old or 50 year old architect to redesign your home?"

BTW, why take 20 vs 50? Let's take 28 vs 50. I suppose 28 is young enough to be called young :)

So let's take a competent educated young (28) developer with 5-6 years of experience versus competent educated old developer with 25-27 years of experience.

Who of these two will be the better performer on your project? Who will work heroically for 40 hours in a row when needed? Who will save your ass when it will be burning? :)

Davidson
Friday, March 05, 2004

+++Again, you've thrown in a new condition, compentence "over" experience.  The question was given two equally competent people, would you prefer one with experience or not?  You said no, flip a coin.+++

This isn't a new condition.  You asked me to choose based solely on competence since "All else was equal".  If all else is equal, then so too is experience, unless you ASSUME that a 50 yr old is more experienced IN A SPECIFIC FIELD which is again, bigotted.

Given that I work with doctors often, and that I happen to know that they're notorious for not updating their skillsets/knowlege, I personally would go with Surgeon A because I know he wouldn't use leeches.  ;)

I understand your desire to create a controlled, sterile, scenario for your argument, but frankly, that sort of theoretical discussion belongs in a college lecture hall, and not in the real world.

Have I mentioned that I think a college education in computer science is also detrimental to programmers?  ;)

muppet from electric-chipmunk
Friday, March 05, 2004

+++Who of these two will be the better performer on your project? Who will work heroically for 40 hours in a row when needed? Who will save your ass when it will be burning? :) +++

In my experience, the young guy will do the hero work because after an 8 hour shift, the older guy has to go home to his wife in time for their Metamucil over Matlock.

;)

muppet from electric-chipmunk
Friday, March 05, 2004

"Have I mentioned that I think a college education in computer science is also detrimental to programmers?  ;)"

Uhuh?! How would you be able to justify that??

Davidson
Friday, March 05, 2004

+++Uhuh?! How would you be able to justify that?? +++

In my (very very short, I'm only 27 after all ;) ) experience, it's the Comp Sci guys who are in programming mostly because they "heard it was gonna be the big thing" and treat programming as their job and nothing else.

Then there's the guys who took up coding at home because they WANT to program, because they have a desire to learn all there is, because they had an urgent desire to "build" something meaningful and learned all the tools to do it.

The latter are the guys who will religiously update their skillset, read up on the latest RFC's and have a half dozen ideas for solving any particular problem, including the neat new technique they read about last night on slashdot.

The former tend (TEND I say!) to stick to the tools (thought patterns) they learned in college for good or for ill, are NOT going to sit at home reading RFC's or change.log's for Perl (or what have you) over the weekend, and in general aren't usually genuinely self-motivated when it comes to software development.  They do it because it pays the bills.

muppet from electric-chipmunk
Friday, March 05, 2004

And Chris, for someone who advocates life-experience as the holy grail of the software industry, you sure hammer away on "empirical" data over insight gained from life-experience when it comes to deciding who's best for your team.  ;)

If you reject experience in one instance as biased, then can't you also see that experience in a field can cause one to be biased in their practice of that field (ie, single- or closed-minded when it comes to problem solving) ?

muppet from electric-chipmunk
Friday, March 05, 2004

Bleah, don't ask, I've met people like that as well.  The argument is that it teaches you things that make you a worse programmer, teaches you to think in ways detrimental to actually getting things done.

I don't buy it personally.  Software, computers in general, would have made no advances without research that trickled its way into curriculum and then into the workplace.  Average research->industry trickle is something like 15 years for practices.  Which is why patterns, discussed many years ago, have only in the last 5 years become a well-known tool.

With no education, no one would learn patterns, no one would learn about studies on programmer productivity studies, architecture studies, work environment, etc, etc.  All knowledge would be in isolate pockets in specific companies, many people rediscovering the same things other groups already knew.

If we argue that education provides no value to software development, then we argue that software will NEVER EVER be developed any better than it is right now.  And right now it's mostly crap.  Maybe that's true, but I can't bring myself to believe it.  I think for my own sanity, I have to believe that as in industry we'll improve the way we develop. 

Otherwise the multi-million line projects to guard fusion reactors, space stations, missions to mars, none of those will come to pass or at least not without drastic loss of life as we work out the bugs.

Chris Kessel
Friday, March 05, 2004

+++If you reject experience in one instance as biased, then can't you also see that experience in a field can cause one to be biased in their practice of that field (ie, single- or closed-minded when it comes to problem solving) ?+++

*sigh*, these are different issues.  You repeatedly mix personality traits (curmugeon, can't/won't learn) with the experience of learning how and why to apply your skills.

Yes, age can bias you towards outdated solutions.  In many industries you are forced to take "continuing education" to stay current, to help avoid that bias.  Legal, medical, insurance, all require continuing education.

Thus, and I said it before, if your 50 year old has proven he's adapted over time and learned new skills, then they're unlikely to be biased towards one solution they learned 20 years ago.

A 20 year old, knowing only 1 tool (or a small set), is biased towards the little he currently knows.  He doesn't have the breadth of mental tools to pick from and the knowledge of the circumstances in which they apply.

Life-experience versus empirical-evidence isn't a dichotomy, but a complement.  What are best practices?  Typicaly life experiences that have then gone through studies to prove (or disprove in some cases) that certain techniques have value.

Chris Kessel
Friday, March 05, 2004

+++If we argue that education provides no value to software development, then we argue that software will NEVER EVER be developed any better than it is right now.  And right now it's mostly crap.  Maybe that's true, but I can't bring myself to believe it.  I think for my own sanity, I have to believe that as in industry we'll improve the way we develop.  +++

I never said that *education* provides no value to software development.  I said that Comp Sci degrees are usually detrimental.  Maybe it's more accurate to say that most people who program "because they want to" learned on their own (very possibly using some of the very same resources as the kids in Comp Sci had).

I'm much more impressed with a guy who absorbed all the knowlege he could because of his own internal impetus for development than with a guy who's good at memorizing theory (but not necessarily ever applying it or even knowing HOW to apply it.)

muppet from electric-chipmunk
Friday, March 05, 2004

+++A 20 year old, knowing only 1 tool (or a small set), is biased towards the little he currently knows.  He doesn't have the breadth of mental tools to pick from and the knowledge of the circumstances in which they apply.+++

Another example of your own bigotted assumptions.  I know many 20 year olds who started developing software when they were 9, and may know just as many (or more) tools than your 50 year old uber-programmer has ever heard of.

My point with life experience was that you hail it in one instance (experience in development), and condemn it in another.  You are arguing that a hiring manager should not apply his own life experience in dealing with software team compositions when it comes to hiring folks, but rather should use *only* those metrics which are quantifiable on a resume.  This would be a foolish practice indeed.

The issues are not so different as you assert.

muppet from electric-chipmunk
Friday, March 05, 2004

I'll certainly agree there chipmunk.  Many comp-sci programs are overly theoretical.  This has also been studied :), and in the last 5 years curriculum has started to adapt and have "research" and "professional" tracks.  Particularly in Masters programs.

But, it also exists in undergrad.  Many schools are now offering more software engineering courses that emphasize good design, teams, code, how to do reviews, etc.  If you're interviewing a new graduate, ask about those things, find out. 

I'm not a big "program on my own time" kind of guy.  I'm a puzzle geek rather than a tech geek, but it's the puzzle element that brought me into computers.  I like solving problems, figuring out designs, understanding why somethign will and won't work.  I love seeing the finish product match what I wanted it to be.  There has to be somethign to solve to excite me.  Just picking up Perl and going "yea, another scripting language, whoohoo", doesn't do it for me.  Now...if I have something I need to solve and I need a good scripting language...there's motivation!

I don't tend to dig into new tools until I have a need, but I try to stay aware of what's available so I don't fall into the trap of only knowing 5 year old tools.

Chris Kessel
Friday, March 05, 2004

You don't "develop" software when you're 9, you hack.  I know, I hacked some though not quite that young.  You "develop" with teams of people, for customers (paying or not) that have real needs.

And by your own statement, you wouldn't want something that hacked from age 9.  They'd be too set in their ways from their long experience.

I picked 20 and 50 as relatively raw and experienced.  I suppose we should instead say "1 year experience versus 30 years".

Chris Kessel
Friday, March 05, 2004

+++My point with life experience was that you hail it in one instance (experience in development), and condemn it in another+++

I condemned life experience?  Where?

+++ ...only things on a resume...+++

I said that? Where? 

If you're going to invent my points for me, I'm at a serious disadvantage.

Chris Kessel
Friday, March 05, 2004

+++I condemned life experience?  Where?+++

When you state that one shouldn't hire with a bias (re: programmer's age and likelihood to be a curmudgeon).  Basically it sounds as though you're against hiring using any criteria short of quantifiable data on a resume.  Your assertion seems to be that if someone seems like a curmudgeon to me, as a hiring manager, then I'm being discriminatory;  that should base my decision *solely* upon the fact that they had their name on a lot of finished products at Company Y.

muppet from electric-chipmunk
Friday, March 05, 2004

+++You are arguing that a hiring manager should not apply his own life experience in dealing with software team compositions when it comes to hiring folks, but rather should use *only* those metrics which are quantifiable on a resume.  This would be a foolish practice indeed.+++

So...if you your life experience all Blacks were crappy programmers, you wouldn't hire blacks?

Or women?

Or those over 40?

Do you intend to hire solely based on your discriminatory personal experience?

Chris Kessel
Friday, March 05, 2004

+++Do you intend to hire solely based on your discriminatory personal experience? +++

Absolutely not.  However, you seem to be insisting that someone's score-card is the only acceptable criteria.  I would hope that the contents of an interview (with an ad-hoc analysis of the applicant's personality and frank character) would all be rolled up into a decision to hire.

Would I refuse to hire black women if historically, black women hired by my company had been horrible programmers?  No, absolutely not, but I might go over their resumes a little more carefully, and I might have some more targetted questions to ask in an interview, based on what has historically been a problem with that demographic.

muppet from electric-chipmunk
Friday, March 05, 2004

+++Your assertion seems to be that if someone seems like a curmudgeon to me, as a hiring manager, then I'm being discriminatory;+++

Ah, you've thrown in a new variable.  You've actually talked with the fellow and have a good feel that he's not going to fit in?

Well, then of course, move on to a new candiate.  His *personality* is something that won't work.  Not interviewing him at all because he's older, that's discriminatory.  Not all older people have that personality, and in my experience most don't, though experiences vary.

Your entire argument for youth is based on your perception that all people over 27 years of age (or some arbitrary number) are going to be curmudgeons.

Chris Kessel
Friday, March 05, 2004

+++Your entire argument for youth is based on your perception that all people over 27 years of age (or some arbitrary number) are going to be curmudgeons. +++

Where in the world did I say anything like that?

I thought that we were arguing trends, here.  As Joel stated, he's less likely to hire an older programmer because of X, Y, and Z.  Does that mean he'll NEVER hire an older programmer?  My guess would be that's not the case, but I'll bet he'd be more careful about thoroughly analyzing the candidate.

I never stated that I'd never, ever hire an older developer to work on my team.  I've argued that older guys (girls?) *tend* to be like X.

This is no more discriminatory than your auto insurance company charging you a higher rate for living in the city.

muppet from electric-chipmunk
Friday, March 05, 2004

+++ most older programmers (most in my personal experience) have poor attitudes+++
+++Having pre-learned patterns that worked for those technologies' predecessors can be more of a liability than a boon+++

Actually, you're right, you didn't really state "old guys are curmugeons" specifically, just sort of leaned that way :).

Chris Kessel
Friday, March 05, 2004

muppett writes: >>>In my (very very short, I'm only 27 after all ;) ) experience,<<<

You're already half way to 54.  Any thoughts about what you might be doing 27 years from now?

Go in to management?  For a die-hard technical person like myself that would be unpleasant even for the money.  Maybe applying to law school would be a good idea.

Don't depend on just keeping up your technical skills.  Hiring managers will just see the gray hair and bifocals and figure you have too much experience.

Joel has the right idea.  He can apply age bias in his hiring, but he owns the company and doesn't have to worry about himself.

mackinac
Friday, March 05, 2004

>>>I know many 20 year olds who started developing software when they were 9, and may know just as many (or more) tools than your 50 year old uber-programmer has ever heard of.<<<

The 20 year old has a bit of an advantage.  Back in 1963, when the 50 year old was 9, the closest thing to a PC was the Digital PDP-8.  At $18,000 each (1963 dollars), not many parents bought one so their kids could learn programming at home.

mackinac
Friday, March 05, 2004

+++(most in my personal experience)+++

+++ ... can be ... +++

Chris, where in those statements do you find the absolutes that you've charged me with?  ;)

muppet from electric-chipmunk
Friday, March 05, 2004

As I said, I didn't :).

Chris Kessel
Friday, March 05, 2004

mackinac,

I'm hoping that by then I'll have an M.D., which is where I wanted to go in the first place.  (very very long story ;) )

When I dropped out of high school, I had a 4.0 GPA in largely AP classes.  I was all set to go ivy-league until one day I decided that my funding (largely from my family) had too many strings attached.

I sure showed them ;)

muppet from electric-chipmunk
Friday, March 05, 2004

>>>I never stated that I'd never, ever hire an older developer to work on my team.  I've argued that older guys (girls?) *tend* to be like X.

This is no more discriminatory than your auto insurance company charging you a higher rate for living in the city. <<<

There is at least one significant difference.  The insurance companies make objective measurements of the statistics.  The rates are not based on the impressions that the company CEO got when he visited the big city.

One thing I have learned from years of experience interacting with people (not just computers) is that it is easy to attribute a characteristic or tendency with a certain group of people, especially those different from oneself.  But most such characterizations turn out to be not very accurate.

mackinac
Friday, March 05, 2004

I do notice that I am getting somewhat curmudgeonly as I get older.  It's a reaction to the prejudice targetted at older people.  Any reasonably observant person would notice that there is bigotry aimed at older people.  It turns out it is worse and happens a lot sooner than I expected.

C
Friday, March 05, 2004

C, how much sooner :-)  How old are you?

anon
Friday, March 05, 2004

"In my (very very short, I'm only 27 after all ;) ) experience, it's the Comp Sci guys who are in programming mostly because they "heard it was gonna be the big thing" and treat programming as their job and nothing else.

Then there's the guys who took up coding at home because they WANT to program, because they have a desire to learn all there is, because they had an urgent desire to "build" something meaningful and learned all the tools to do it."


Well, didn't you think that there actually people out there who are both passionate and academic about their profession?

I can assure you with 100% that going through a formal education will lift you immensely. No amount of slashdot reading can cover up a decent course in, say, Discrete Mathematics. And how are you going to estimate the performance of your algorithms without, say, Probability Theory? Come on, I don't even want to continue on this!! Go to university while it's not too late! :) And believe me, it is possible to both go to the college and hang out at slashdot :)


A word from the Master (a quote from Dijkstra):

"Teaching to unexpecting youngsters the effective use of formal methods is one of the joys of life because it's so extremely rewarding. Within a few months, they find their way into a new world with a justified degree of confidence that is radically novel for them; within a few months, their concept of intellectual culture has acquired a radically new dimension."

Davidson
Friday, March 05, 2004

>>>Would I refuse to hire black women if historically, black women hired by my company had been horrible programmers?  No, absolutely not, but I might go over their resumes a little more carefully, and I might have some more targetted questions to ask in an interview, based on what has historically been a problem with that demographic. <<<

This attitude is where there is a problem.  Any decent developer job opening is going to have a hundred applicants.  None are going to be perfect, but you'll probably find numerous competant people.  If you look hard enough you can find some reason to reject almost anyone.

Say you find ten technically qualified applicants, one of which belongs to the suspect group and you have to select one from the group.  Does that person have a 1 in 10 chance of getting hired?  It doesn't sound like it.  If you apply more scrutiny to that person, then you increase the probability of finding something you don't like.

If there are a lot of openings, then some members of suspect groups (ethnicity, age, whatever) may get hired.  But even a little more scrutiny will mean that their chances are much worse.  They may always hear that "You have an impressive resume, but we found someone who is a better match to our organizations needs."

mackinac
Friday, March 05, 2004

>>> I'm hoping that by then I'll have an M.D.,  <<<

Probably a good choice.  You'll make more money than the typical developer or SWE, have working conditions more appropriate to the work, and can work in your chosen profession until retirement (which can be when you want to).

Not without its drawbacks.  As noted in another thread on JoS you are really working for the insurance companies (not patients, if you are in US) and if we end up with some form of national health insurance you'll be a government worker.

But in medicine experience counts.  There is a limit to what a textbook can tell you about how a disease or injury presents itself in a particular patient.

mackinac
Friday, March 05, 2004

Davidson -

"The former tend (TEND I say!) ..."

I'm not making generalizations, but you're debating as if I am.

muppet from electric-chipmunk
Friday, March 05, 2004

"And how are you going to estimate the performance of your algorithms without, say, Probability Theory?"

Do you think that being college educated is the only way to understand Probability?  Do you think that anyone who lacks a college education is necessarily ignorant?

muppet from electric-chipmunk
Friday, March 05, 2004

"tend" is a generalization. If I say people that have chipmunk as a posting alias "tend" to be crappy programmers, then I'm generalizing.

If I said 100% of the people I had personally met with chipmunk as an alias were crappy programmers, I'd be stating a fact (assuming I had met such and they were crappy).  This fact however is based on such a small sample set that I have no grounds from which to state a generalizations about chipmunks as a whole.

Chris Kessel
Friday, March 05, 2004

I disagree, I don't think "tend" is a generalization.  I think use of the word "tend" is an explicit declaration of awareness that not *everyone* in a class of people can be described by X.

Otherwise, rather than "...tend to be..." I'd use "...are..."

muppet from electric-chipmunk
Friday, March 05, 2004

So, as long as there is one counter example, you claim you can use "tend" as an escape clause from discrimination?

"All <ethnic> tend to be lazy".  No, hey, I didn't say all, I said *tend*. No bias there.

"All women tend to be <xyz>".  Nope, can't claim I'm sexist, I'm admitting there's one woman somewhere that's not <xyz>.

I'm being particularly harsh to make the point obvious.  Now, if you said <foo> tends to be <bar> because studies show an 85% correlation, well then you've got some ground to stand on for your generalization.

I can say experience tends to matter, as backed up by years of estimation research with the Cocomo model and the associated Cocomo adjustment factors due to personnel.

Chris Kessel
Friday, March 05, 2004

Muppet> Do you think that being college educated is the only way to understand Probability?  Do you think that anyone who lacks a college education is necessarily ignorant?

Of course, you can learn Probability yourself. And a bunch of other stuff which is prerequisites for Probablity :) Yes, you can learn a lot on your own but there are more effective ways to accomplish that, you know :)

The younger you are the more effective and easier to accomplish is the education process. If you don't go and get a proper education now, you will never do it.

Davidson
Saturday, March 06, 2004

And you call this a profession?

Let's see.
Leave university at 22
Get crap because of "inexperience" till about 27-28
Have a few years of 80 hour weeks because "you the man"
From 34 onwards get crap because "too old and inflexible"
At 39 if you haven't transitioned into management by now, well,  as far as  this "profession" is concerned you are a freak that should have been put to pasture years ago.

Just me (Sir to you)
Monday, March 08, 2004

One argument I might accept against the older worker is this: with a newbies, you only have grades, maybe a grad project, and interview skills to judge them -- you take your chances, and maybe a few of them are actually brilliant. With anyone else (5 years, 10 years, 40 years experience, doesn't matter) you're most likely getting an escapee or a reject, neither being a very good prospect. If you really want a good worker, you've got to steal him or her from the competion.

It's got nothing to do with with the worker's experience being detrimental. It's the hiring manager's experience that's detrimental -- all he's getting for prospects are bad examples.

Chipmunk, for a hot shot who is super productive, you sure spend a lot of time on this thread. You must be multi-tasking to do that. Let me ask you: at 4 years experience, are you better or worse than you were a year ago with 3 years? If you agree you are getting better now, at what point do you predict your productivity, mental acuteness, attitude, aptitude, arrogance, or whatever other advantages you have, will drop off a cliff? Or did it already happen when you started spending all your time on this thread?

If you've got an answer, don't expect me to read it. I've got better things to do, like being a productive elder worker.

Over 50 and still leaning
Tuesday, March 09, 2004

hehehe

I'm sorry that so many have become so defensive.  I think perhaps that reflects on how secure you are in your own abilities.

All that I've argued in this thread is that experience CAN be and often IS more of a liability than an asset, not that it necessarily is.  For all of you who took it that way, why did you take it that way?

It seems to me that maybe you doubt your abilities sufficiently to classify *yourself* in the "liability" category, where I've put no one specific and certainly not everybody.

muppet from electric-chipmunk
Tuesday, March 09, 2004

Ok, I couldn't find the delete button on the threads -- not because I mistyped competition, but for the unnecessary  and hurtful put-down in the latter part of my previous comment. Let me try to redeem myself by saying there are some valid points all around.

I believe experience matters -- not in YEARS, but the RIGHT experience for the job. Youth can be fatally, unwisely clever;  experience has better judgment, as long as it continues to adapt to new tools. The new tools change the language, the business requirements are different for each project, but the principle of the message stays the same. A person can be stuck at any age, but it just sticks out more when they are stuck on OLD skills.

But my bottom line is, whatever is said here, I'd guess there must still be lots of prejudice out there if there's so much discussion of it here. Where it exists, it is unfair to everyone on both sides. It stinks, and does real damage. It will be hard to cope with when faced with a change of jobs. Jobs are scarce for all of us, it doesn't help to fight over them. Starting a new career flipping burgers (or the current equivalent offering of software jobs) isn't an option when your existence is based on the assumption of an $80K+ income that no longer exists. On the one hand, reduced income demands working until your 90 years old, and on the other hand, the prejudice demands you retire before your 40.

I'd like to see a rational alternative. Don't tell me to train for a new career -- all the good ones are going overseas unless you have another 6 years of no income to spare, and then you are still faced with the same @#!& age prejudice in another field. It doesn't solve anything.

Over 50 and still leaning
Tuesday, March 09, 2004

oh I agree with you, we're all screwed.  Nobody's debating that.

I'm currently making 55K a year to be a SENIOR programmer, in CONNECTICUT (where cost of living is second only to New York).  And I'm not likely to go higher any time soon.  Retraining isn't a good option because:

a) I haven't got the time to devote to school, I have a career and a daughter.

b) I can't afford to go to school on my salary ;)

However, it increasingly seems that retraining is the ONLY option that will be available to me.  If you've got better (realistic) ideas, I'll be grateful to hear them.

muppet from electric-chipmunk
Tuesday, March 09, 2004

$55K as a senior programmer in an expensive place like Connecticut?

Either you're not really senior, or you're allowing yourself to be ripped off.

NoName
Monday, March 15, 2004

I'm allowing myself to be ripped off as I'm coming off of a 6 month layoff, and my resume could use some bolstering.

muppet from electric-chipmunk
Monday, March 15, 2004

Muppet said:

'A 20 year old competent, "right-thinking" coder is a much more valuable asset, in my opinion, than a 50 year old "seen-it-all" coder who has his own ideas about what my product should look like.'

I think we hit the core thread.

Muppet thinks people older than he can't possibly be as smart as he.  It's the "old farts" bias and has been around forever.

Be careful muppet.  You too will one day be an old-fart, and no matter how current your talents, some "young buck" will dismiss you for being old.

kermit
Monday, April 12, 2004

*  Recent Topics

*  Fog Creek Home