Hacker News new | comments | show | ask | jobs | submit login
Why You Should Hire an Old Programmer (joshondesign.com)
105 points by joshmarinacci 5 hours ago | hide | past | web | 71 comments | favorite





Reason to hire a young programmer based on the confession from CTO: we like college grads because we can drive them hard and pay them minimal salaries. The only thing is they burn out pretty quickly. And yes they also lamented the quality of their software and how releases were buggy and delayed. Not sure they saw a connection there...

To attract the candidates they optimized non-salary benefits they thought college kids would like such sports tickets, beer nights etc.

The bottom line is companies know exactly what they are doing and just officially​ claim some culture fit thing.

Same with hiring women, minorities,etc.

Even with open space offices. They say it's because they want people to collaborate but more often than not they want to save money and monitor people to see if the are "working".


Low quality - clearly not driving hard enough and not buying enough beer!

I think programmers should reframe the problem. If cognitive decline is real, why would anyone hire anybody over 40? Yet there are plenty managers, politicians, doctors, lawyers, salespeople, engineers, etc. who are over 40.

If you want a culture where people retire at 40, go for it. But please don't pretend that programmers are "special" in that the decline in their skills is worse than decline in skills of anybody else.


Cognitive decline is real but you have to balance it with the increase in experience.

Yea, I feel the cognitive decline is a kind of an excuse, to mask the expense of experienced programmers. Only in the tech industry is this an issue.

No one would complain about a 63yo brain surgeon, who according to some IT HR people would have cognitive decline, but has somehow picked up skills to be a master surgeon.


One very good reason we've had issues hiring some: they don't exist on the job market.

The author defines "old" as someone in their 40s. I don't make much of an effort to determine the age of applicants (beyond having a vague idea from the dates listed, and the face on Skype), but I'd say less than 1% of applicants to positions I've put up have been "old". Those that do apply tend to get an offer.

I suspect once someone is at that stage in their development career, they've either moved into management, into a comfortable stable long term job, or find jobs easily through their network, whether remote or onsite.

In other words, they no longer apply for jobs, and you need to hunt them from their comfortable position, which will cost you a lot of money and effort. This may be why many prominent names in the Valley (the most recent that comes to my mind is Jason Lemkin) advise spending a large chunk of your time as CEO recruiting.


I would _never_ hire this candidate, based on seeing this.

So - the author says that he has "developed some good communication skills". Great! Moving on, let's look at his linkedin page. Quotes from past jobs: "even after our idiot (now ex) CEO canceled the platform.", "wonky JavaEE stuff.".

So, as a hiring manager, from this post + linkedin, I now know that this guy: 1) can reach large audiences, 2) trashes past jobs and colleagues publicly. And thus, I would be terrified of hiring the author, as there seems a 50% chance that this will end with my employers being trashed in the same way. That's just not worth it.

OP: Come on, give yourself the chance to be hired by removing that from linkedin.


This is indeed basic psychology [1]: talking bad about other people reflects poorly on _you_, not just the people you're talking about.

https://en.wikipedia.org/wiki/Emotional_contagion


Quoting a previous reply to this thread which was deleted (so I'll omit the commenter's name):

> I don't think it's so bad. Sometimes, you work with idiots.

Just because a person thinks coworkers are idiots doesn't mean the person should pipe up about it. It's one of those communication skills that a person with a ton of experience is expected to learn.


When talking with young programmers I too often think "well, you are doing that wrong, been there, done that". They don't want to listen. A couple of months later they notice that the gray beard ones were right. From a company perspective, that's just too late, as the money loss is not recoverable.

There is nothing wrong with being a young one with no experience. There is so much wrong when a company has only a bunch of young programmers and no experienced one who lead them.


Conversely I find that a number of the old(er) programmers I've worked with are incredibly stubborn and bigoted. They refuse to see anything from another persons perspective especially if that person is young. As well refusing to keep up with 'modern' technologies and paradigms because "that's not how I'm used to doing it". It's a lot of the "I've been round the block a few times I know what I'm doing" bullshit attitude.

But obviously that's a generalisation. Just like your comment is.


Yup. I've seen 55+ year old programmers write what was essentially a message queue persisted in a database table, processed by a cron job. We frequently had problems with duplicate processing of messages, due to multiple cron jobs running at once.

I've personally argued against a key-value store schema in SQL Server and was in favor of a flat-table design. In our case, there were records of different 'types', and each type may have a number of fields always be null. Looking back, I'd probably do something like this:

Entity

   common attribute 1
   common attribute 2
   etc
Entity_Type1

   entity_id fk references Entity,
   type1_attribute 1,
   etc
He was certain that the flat-table design would take up more space since it would 'have to store every attribute every time'. Most of these were varchars, so (looking back) that was straight up false. Not only that, but in a key-value schema you have to store the name of the 'column' (key)... every time. I was unable to articulate the harms of key-value schemas when it comes to queryability...even though our existing system was filled to the brim with 'unions' due to a key-value schema. I lost this argument.

Each of these developers refused to use git, in favor of visual source safe. I know.

All of the business logic was in stored procedures. I've seen a stored procedure with triple nested cursors spanning 2000 lines. Our 'senior' developer would take weeks to make changes to this thing.

I've lost count of the times I've been steamrolled in discussions. I'm not sure if it's my age or if I'm just lacking that much socially. When you lose an argument over key-value schemas of all things it makes you really question if you know what you're doing...


In my experience, growing older, I've found both of these generalizations to be true in myself. There are plenty of times that I've watched junior developers make literally the exact same mistakes I made 10 years ago. At the same time, I've learned that technology has continued to move on and things that were wrong 10 years ago may not be wrong today.

I remember when I started out that I'd scour every line of code for memory leaks and optimize the hell out of it. Today we've got more memory, faster machines, and the code doesn't need to be quite as tight.

Mentorship goes both ways. I help newer devs about processes and patterns. They help me with new technology and trends. I think it works well but it requires patience on everyone's parts.


"that's not how I'm used to doing it"

To be fair - I'm not sure how that is age related. e.g. I've had very strong reactions from some inexperienced developers who literally only had knowledge of one way of doing things to the possibility that another option might be possible and better.


Yep, pattern bias happens to a lot of people in a lot of age groups in a lot of professions. One of the consequences of having a massive pattern matching machine for the human CPU.

It's irritating in programmers because we can write prototypes to prove out our theories. It is really irritating in the fuzzy areas (like government and organization grant readers).


It definitely happens in lots of other types of jobs, too. It's not just programming.

I'm interested in why it happens to some people, but not others. You'll see people who are set in their ways by their mid to late 20s, and others who seem to keep an open mind perpetually.


> They don't want to listen

Hire older programmers because they don't make sweeping generalizations.


How do older programmers deal with coding interviews from companies like facebook / google? i feel like those advantage people who just finished their algorithms class, or have time to practice specifically for it.

Well enough, apparently. I had to go through this at Facebook pretty recently. I was 51 at the time, and there were a half dozen guys of similar age in my subsequent bootcamp class. (It's interesting that my age cohort was all guys even though the class overall seemed pretty balanced, but that's another topic.) Two things definitely helped with this.

(1) I've always been a bit of an algorithms guy. I've met many people who were better at debugging, a few who were better at systems design or straight-out coding, but if you need someone to pick the exact right algorithm and tweak it a bit to suit a particular situation then I'm all over it.

(2) The interviewers were obviously well trained. The problems were well chosen and presented, and I was allowed to think through things my own way at my own pace. The followup questions clearly indicated that the interviewers were looking at more than just whether I could solve this particular problem - how I broke it down and handled edge cases, how I handled changing requirements, testability, communication, and so on. Having written before about how such interviews are usually an exercise in ego and a total waste of time (or worse), I was pleasantly surprised.

I think a lot of older programmers do avoid such interviews. They'd never admit fear is a factor, but it is. I'll admit I hesitated before going through it myself, but then I realized that even if I "failed" it didn't diminish me. It just meant there was a difference of opinion about what mattered or made someone a good fit for a job. I can live with that.


How do older programmers deal with coding interviews from companies like facebook / google?

Badly. The unfortunate truth is that if you've hit 40+ without having built up enough expertise and contacts to bypass those types of interviews then finding a programming job is going to be really hard.


> if you've hit 40+ without having built up enough expertise and contacts to bypass those types of interviews then finding a programming job is going to be really hard.

This I think is true in most professional fields and doesn't answer the question posed.

The interview-fail of the software industry is all about knowledge gaps:

- the knowledge gap of most practitioners in this field of the most basic fundamental findings, constructs, etc. of their field;

- the knowledge gap of discerning actual skills based on presented CV credentials;

- the knowledge gap of the interviewers themselves -- who are of course paid members of the same under-educated industry -- resorting to popular trends as substitute for the ability to distinguish between capable and incapable candidates;

When an arts and crafts "industry" [has] pretensions to being "engineering" or "science", this is what you get. Throw in a healthy dose of age discrimination, and voila.


Older programmers can do just fine in those algorithm tests, if they have been programming recently at their day jobs, and not PM/managerial work. Years of 8 hours of programming per day is actually good practice. They might have to brush up on Big O notation. :)

I personally wouldn't target those companies. They tend to employ on a permanant basis and the contract market is a bigger payer.

Also after a few years in the game you tend to get targetted by recruiters as you may have specialised into certain areas. i.e. finance.

So for example, I don't normally look for work, it normally finds me.


Could you give some examples of where you first got your contracts (outside of personal connections)? The contract market seems great (I'm in it right now), but finding decent positions seems pretty difficult without a pre-existing large network.

Also, a lot of the sites that feature contract work ask for way too many details, and are basically a race to the bottom on price, sometimes at the expense of quality, and I don't feel panicked enough yet to join that race.


Don't want to generalize but as far as I have seen; they don't. As a 6th point in his list could be; connections. I (42 y/o) know people; I can get programmers to follow me if I move company which is a plus. But I also know investors, potential clients, C*O's and hiring managers. People recommend you or know you via their network.

> I can get programmers to follow me if I move company which is a plus.

It's at best a 'neutral' because when you inevitably leave again you'll take all those people with you potentially leaving the company floundering.


You could read it that way indeed; I meant it like; I know a lot of coders who will join me if they are looking for something new.

And unlike a lot of people it seems, I don't really enjoy moving to another company or taking people if they enjoy what they do; it would be that they would ask me first if I have something.


Counterpoint: Because these companies place so much emphasis on your actual performance at coding during interviews, they can be better for older programmers because they are not hiring based on how you look but on what you can do.

2 reasons why you will OR won't be hired as an old programmer:

1- "programmer" is the entry level in a software/hardware company. Rising stars move up in the ranks over the years and take more responsibilities. Manager, sr. manager, director, VP, etc. still a programmer at 40?

2- If you're still programmer at 40, you might really like it! We're looking for programmers and need age/exp diversity in our group. You are rare my friend and valuable.


I don't disagree with anything stated here, but how much of this actually is a function of age?

I feel like a young programmer could aquire all of these traits also, because they're less about age and more about being able to learn from experiences. You can choose to have more experiences to become the kind of person the article talks about.

Or is this a survivorship bias thing? The old programmers are more likely to be this way because the people who would be old programmers who are not this way aren't programmers anymore?


> because they're less about age and more about being able to learn from experiences

Typically after you learn from experiences and gain knowledge you age. I'd question someone that is young and thinks they know the world.

If being able to acquire all he knowledge/experience while young were true, everyone would peak at 25 and not get any better.

There is a certain point some people get where they _refuse_ to learn more and are "set in their ways" and that becomes detrimental to a younger/fresh idea.

I doubt anyone would advocate age quotas for hiring but having a mix of experience/knowledge with fresh ideas is probably ideal. At least, it feels ideal in our team which has ranged from high 40s to low 20s.


For most programmers in their 40's, at least in my experience, we've been working in the industry since at least our mid-20's, if not earlier. Very few older programmers I know started learning to code in their 30's. Most started in their teens.

So, yeah, a talented young programmer could have accumulated enough experience to acquire these traits. But it's more likely to be found in us old farts.

Agree with your survivorship idea too. There's been a few that have changed course along the way.


Uh, isn't that rather much the point? Once a young person learns all this stuff from experience, they've become an old person.

But you can gain experience without necessarily becoming old at the same time. They're correlated, but not causal.

Experience takes time. More or less, depending on several factors (willingness to learn and improve, complexity of the subject, ...). But by definition, if you gain experience, you just got older than before.

You cannot magically learn everything out of sheer willpower.

Additionally, a few things are impossible to learn without time: the "Judgement" section in the article. You can certainly theoretically understand the meaning of it, but to experience it and have a deep, intimate understanding of it you have to go through the process of writing something and supporting it.

So it's not a matter of correlation / causation, it's a matter of the two concepts being two sides of the same coin.


I enjoy your attempt to use "it's not the years it's the mileage" but your assertion that there is some way to gain "experience" without "time" doesn't make a lot of sense.

This guy assumes that old programmers are not super enthusiast and hard worker but they have experience, while young ones are enthusiast, hard worker and motivated but they know nothing, that's not a very rigorous way to prove something ...

All that is just nonsense !


Be old dev doesn't mean that you know how to write code. I worked with devs with twenty years of experience, and I love it, and I learnt A LOT from them.

On the other hand, I worked with old devs too, and they did a lot of spaghetti code, they didn't make a module and a lot of things are weird for them. Like async/await/yield.

I think that it's not an old programmer, it's about the attitude that they had during his professional career and the attitude that they have now. With a lot of experience and the right attitude, I agree, it's a perk in the team!


To be honest, as a middle aged folk I find it impossible to relate with ping pong culture and open space offices. On the other hand, cubicles here are too often signal of brick & mortar ways to intend business, which ultimately means losing value. That's why I think older folks like me should really get into contracting or external consulting. As an alternative, do with finding a job at utilities or other non-cyclic ventures, they always seem eager to listen to juvenile-but-not-disruptive folks to innovate just a bit, not too much, not too fast.

If age is not a good indicator of someone being a bad hire, then it can't be a good indicator of someone being a good hire either.

Consider smartness as "what you can do with what you know," while experience is "what you know"--then, what follows is that having more experience makes up for not being as clever.

    Able to make good choices = Intellect * Experience
Moreover, employers can _try_ to assess intelligence with whiteboard interviews...but the easier factor to evaluate is experience. It's right there on the resume!

This is usually delineated by wisdom vs intelligence. Intelligence is raw horsepower, and wisdom is the ability to make good decisions.

In the context of older developers, I don't think you can really assume wisdom has been an outcome of all of those years of experience. Wisdom grows with a certain affinity for introspection and self-correction, and not everyone has those traits.


Yeah, except 10 years at certain companies could teach you less than 6months to 1 year at one company that's actually doing it right.

I hesitate to try and prescribe an answer for the "how employers should find good employees" question, because it's so difficult, but I imagine the ideal hiring process would:

- Allow candidates a choice on how they want to be tested (take home thing, online code test, whiteboard, whatever else)

- Ask better questions at the abstraction level that would show experience. For example, if you want to know whether someone has experience, give them an architectural diagram (or process diagram) of your current project/workflow/whatever, and ask them how they would improve it (and if they've ever been through the steps they suggest themselves/how they would roll it out).

There was an excellent post on HN a while back detailing what a specific company (whose job is doing interviews, I can't for the life of me remember what company it was), learned from doing thousands and thousands of interviews.

Also I'm not super good at math, but in the equation you posted wouldn't the intellect variable be pretty much equal to experience, and you could make up for one with the other? Or maybe you're implying that the scales for each multiplier are different (like intelligence might only go 1 to 10 but experience might go 1-100?)? I agree with what you're getting at, basically that someone who has seen lot but isn't as clever will often make better choices than someone that's very clever, but completely green.


Agreed. I remember being in my early 20s, watching my more experienced colleagues, and realizing this. I had had a different (incorrect) mental model: I had thought intellect was as good as experience, so Ability = Intellect + Experience. I was wrong.

as an old programmer I think it would be better if the author said 'I know this, because I hired one.'

Even better. 'I tried to hire one but someone else made a more compeitive offer.'

If you're trying to get hired please always include your location in your communications so that you don't get rejected out of hand for not appearing to be 'close' and/or waste peoples time.

Is this post not promoting age discrimination?

Isn't age discrimination illegal?

Why would discriminating against younger people be any more fair or legal than against against older?

I expect discriminating by amount of relevant experience is fair, but that's not the same as age.


> I expect discriminating by amount of relevant experience is fair, but that's not the same as age.

As someone who started coding at age 9, I agree. :-)

It's not about hiring someone in their 40s per se, but rather about recognizing the value of 20 years' experience. Age alone doesn't impart wisdom.


People under 40 are not a protected group under Federal law. People over 40 are.

https://en.wikipedia.org/wiki/Employment_discrimination_law_...


Are employers so dumb that they would hire on the basis you're suggesting without considering the arguments put forward in the piece? Young and old have, perhaps, on average, different characteristics worthy of note if you're hiring someone. Is all!

I know more this year than I did a year ago.

I will know more next year than I do today.

This will never stop.


My grandmother knows less today than she did ten years ago.

Most things in life are like Gaussian distribution. After a peak there is long decline. What matters is how long to the peak and how high it is.

We are talking of ordinary folks in their forties and fifties, not senescent folks in nursing homes.

Then we shouldn't say "never".

Somewhat related: is oldgeekjobs.com still going? I can't tell from looking at the posts if it's really active.

I posted an ad there and had no applications in the period the ad was up.

It could be that our job ad was bad. However, even at the low posting price, I'm not going to bother again. It's a shame because it is exactly the format I wish all the other job boards would adopt.


I think, outside of Hollywood. The Tech industry in general is one of the most ageist.

I like it. Of course, I'm an older programmer. But still.

The problem with Old Programmers, is not their work. Thats solid. Its the fact that they have mortgages, pensions, health issues, etc. This costs employers money. And employers HATE giving money because they feel like since you are getting a meager salary they are already doing you a giant favor.

Its a management cultural issue, not an older programmer issue really.


s/old/experienced

You might want to add to the list that you are required to by law if they are equally qualified.

Being sweet-talked into raping the world for other peoples awesome profits comes easier when you're 20. The real problem is the fucked up priorities of most companies these days; older coders are more likely to call bullshit and demand a fair share of the cake.

the article is interesting yet based. Most notably, it's clearly written by an old programmer.

So clearly that the author explicitly states that he is one: "I know this, because I am one."

If an attorney were building an age discrimination case against a person (or entity, per jacquesm below) involved in the rejection of a younger candidate, posts like this are among the evidence I suspect would be used to point to a discriminatory mindset. That said, I'm not a lawyer.

If someone were to be making hiring decisions, posts like this discovered during the course of casual googling would oblige the person with a robust basis not to hire. Heck, at least one firm on my CV has instructed me to regard discriminatory language involving suspect classification, age included, as grounds to reject.


(1) You don't make legal cases against people involved in a hiring rejection, you make a case against a company.

(2) If you are making hiring decisions the appearance of random blog posts should not and will not give you any legal basis not to hire. Legality is encoded in the law, not in blogposts, especially not in blogposts by random passers by. If you were using this as a reason not to hire the person writing the blog post then you might get some mileage out of it but it could also easily backfire.


> (1) You don't make legal cases against people involved in a hiring rejection, you make a case against a company.

Entirely true. In my defense, I'm not a lawyer. Technically also in my defense: the United States has a bad habit of calling corporations people.

> (2) If you are making hiring decisions the appearance of random blog posts should not and will not give you any legal basis not to hire. Legality is encoded in the law, not in blogposts, especially not in blogposts by random passers by. If you were using this as a reason not to hire the person writing the blog post then you might get some mileage out of it but it could also easily backfire.

This may be true in the Netherlands, but in many states in the US, quite a number of things can be used as grounds to not hire, with the notable exception of anything involving suspect classification (https://en.wikipedia.org/wiki/Suspect_classification). My understanding is that if someone is likely to cause the firm to be responsible for illegal conduct e.g. age discrimination, for many firms, that's a sufficient basis not to hire.

I'd love to be corrected, though.


> if someone is likely to cause the firm to be responsible for illegal conduct

HR policies are what takes care of that, if an individual is able to make the company engage in illegal behavior you have bigger problems in the oversight department. Hiring comes with a bunch of rules, this person should not be able to transcend those rules by their lonesome.


We're not at all in disagreement, but even after an enforcement action is taken within the firm, if the illegal act has already taken place, you'll still find lawyers willing to go after the firm.

Policies don't physically prohibit certain conduct; they merely provide a framework of consequences to discourage it. That's also why policies exist on when not to hire someone: to minimize the risk of the new hire acting in violation of policies.




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact

Search: