Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

If the geezer with 10 years of C++ experience showed a capacity to rapidly learn a new language / framework, I'd hire him every time. Those 10 years of C++ experience taught a lot in terms of general understanding of programming, best practices, how to "think" like a programmer, etc. (or at least one would hope; it varies, of course). That is far more important than a few years using an extremely high-level language.

I think about it this way: I am supremely confident that I could know all I need to know about Ruby/Rails to do just about anything within a few months of working on an honest-to-god project. I'm equally confident I wouldn't know a fraction of C++ in that time. As our tools continue to become higher-level and more acutely focused, they become easier and easier to grok. The learning curve of a language with C++'s history vs. a new-shit-on-the-block web framework? Forget about it. You can write a blog in 10 minutes, remember? ;)



I'm that "geezer". Coded in C and C++ for over a decade, and now I'm working in the magical world of Rails, where I get to watch 20-somethings rediscover the value of old ideas the hard way. (Given the average comment thread on Hacker News, and you'd be excused for wondering why anyone ever used compiled languages or static typing. Silly dinosaurs!)

That said, while I appreciate your sentiment, I know in my heart that the author is right. All of my friends from college have moved out of programming. Many have left the industry completely -- and we're not even that old! The bottom line is that there's little or no cost advantage to hiring an older coder, when I have t-shirts that are older than the most popular development environments.

Every once in a while, some young geek chimes into these conversations with the observation that one needs only "keep up with technology" to stay relevant in the industry. But even ignoring the fact that "keeping up" is usually easier said than done, the economics just don't work out. My friends who went to medical school are finishing their residencies and starting in private practice; my friends who went to law school are making partner. In most industries, you're just beginning your career when you're in your early 30s. In software, you're already old enough to be a conversation topic.


Rightly or wrongly, the impression people get from a a 40+ programmer is that it is odd for him to still be doing this job and subconsciously he comes across as unsuccessful because he hasn't 'moved up the ladder'. I think this is the major impediment career wise for the older crowd.

It is like being overqualified for a job: You have all the skills needed yet your motivation and personality is questioned.

I realize that good companies recognize talent, and that überhackers with brand name projects behind them will always be in demand, but sadly the world is made up of different realities.


That said, while I appreciate your sentiment, I know in my heart that the author is right.

Even the "keep up with technology" people know in their hearts that these articles are correct. Everyone knows programmers have a half-life, they just are in disagreement about when it kicks in. Nearly everyone would be surprised to discover a 60 year old programmer who was still gainfully employed. 50 is really pushing it, 40 is pushing it, and 35 is starting to push it. In contrast, nobody would think it was weird to see a 40, 50 or even 60 year old doctor or lawyer.


It's a bit early for these comments. There aren't that many programmers in their 50s because there wasn't as much need for programmers in their twenties, 30 years ago. Demand for doctors has been more steady.

That's half the story, but it's a big part of it.

The other half is that it's an area with gradual drift out & little drift in.

That half needs some explaining but it seems like more of a young man's game then it is. It's easy to get behind. If you're out for 2 years, it's daunting to get back in. The opposite is true for some domain (like medicine). You get very little drift in to the field (more programmers become HR people or sales people then the other way around). It's a first career, not a second.


It depends. You could be out of Unix or C or Oracle for 2 years and come back. It's only "front-end" technologies like Flash, Rails, PHP, AJAX that suffer from the rapid churn and the latest thing when you come back didn't even exist when you left.


I wouldn't really know personally, but my reasoning was that not only technology moves, you forget or lose the feel.


Raising my hand. Been programming for 43 years, still going strong. Hopefully, I am done with C++, but who can tell.


My grandfather was programming for a similar length of time before he retired. He made his last money maintaining mainframe assembler and Cobol programs, though. (He jokingly described himself as a classical philologist for computer languages.)


I remember job ads looking for mainframe programmers of many stripes to maintain vintage systems, as many cobol and assembly and jcl professionals had retired. There is still a lot of it out there.


I can't completely buy it, only because I'm sure there are still companies or projects out there who need somebody with a decade's worth of low-level programming experience. Okay, maybe you can't make tons of money doing Rails CRUD apps because a trained seal could do that, but a trained seal couldn't write complicated C++ code.

My point, I suppose, is that your experience must still count for something within certain domains. Right? Or am I wrong on that, too?


Sure, depth of experience counts for something. The problem is that the deeper you go, the less of an ecosystem there is to support you.


Damn straight! The outfit I work for builds medical instrumentation and you can bet your butt that experience counts a huge amount. It's also getting harder to find people with recent C++ development on their resume.

I think you'll find that in industries where safety & reliability is critical, experience is always a great benefit for the applicant.


My friends who went to medical school are finishing their residencies and starting in private practice; my friends who went to law school are making partner. In most industries, you're just beginning your career when you're in your early 30s

I wonder how much this is to do with the relative newness of programming as a profession. Medicine and law have had a very long time to develop systems to train the young, then identify and reward the knowledgable and talented. Perhaps in a few decades 20-something and 30-something programmers will be regarded in much the same way as their law and medicine practising counterparts.


"How long will people continue believing in the myth of the 15-year-old hacker genius while simultaneously decrying the unreliability of software before the cognitive dissonance finally cracks?" -Dave Herman (http://calculist.blogspot.com/2005/12/12-weeks-with-geeks.ht...)

Also, programmers who have been working for >30 years (who started before the mid-late 70s) didn't have the option of learning to program at home, on a PC. PCs caused the number of new, but not potentially good, programmers entering the job market to spike.


The key is to make the algorithms and mathematics, not the languages, your tools. Some things never change.


The key is to get someone to pay you in proportion to the cost of obtaining that knowledge.


Bingo. I remember being an undergrad watching all the other majors play frisbee while we suffered. "That's ok", I remember thinking "this has to pay off. I mean, why else would we be doing this and not enjoying life? Wait until we graduate, then we'll see whos living it up!"

A dot com crash and several cube jobs later, those same folk are living in better homes and driving luxury suvs while I am pondering how I can escape the hell that is a modern day software cubicle job....Guess the joke really is on us.


Exactly. I was hired on as a Principal Engineer at a Rails shop despite having literally about 3 hours of experience using Rails. But, I'd worked with the rest of the senior technical staff before and they knew that just didn't matter. Sure enough, a couple months later I was submitting patches to the framework.

The other thing about new technologies in general, and Rails in particular, is that 2 or 3 years of experience doesn't really mean much because the evolution is so fast. There's lots of Rails lore out there on the web which is completely out of date, and if you're not willing and able to dive into the code yourself and design your own experiments you're going to make completely incorrect decisions about how to design your app and write your code.


Everything you say is true, but you are leaving out 2 major factors that are brought up in the article:

1. The "geezer" with 10 years of C++ probably wants a lot more money than the guy straight out of college. If the company both needs that expertise and can afford the premium then they will definitely go with him, but if money is an issue they may be happy to take the younger guy for lower pay.

2. The guy with 10 years of C++ may be more qualified than the hiring manager. If the manager is focused on the needs of the company of course this is no issue, but if that manager is some middle management person in a large organization who is worried more about his little fiefdom then the company as a whole, he is likely to avoid any candidate that might overshadow him.


You'd hire her, I'm sure, but would you pay her 70% more than the kid out of college? Because in reality you probably won't get 70% more value out of the experienced candidate.


Because in reality you probably won't get 70% more value out of the experienced candidate.

I was a fresh graduate once. I remember my productivity less as "60% of that of a twenty-year veteran" and more as "It is a miracle that they allowed me into the room for a purpose other than to empty wastebaskets, to say nothing of permitting my code in shipping products".


For that matter, I don't think I had 60% of my current productivity as recently as 2-3 years ago. I can still see my first commit at the day job in the repository. That code is an offense against God. It took me two months to get working the first time and then another two years of squashing periodic bug reports. (Unit tests? What is a unit test? Is that something you do with Subperversion?)

My product's code, particularly the parts of it which were laid down earliest, is so bad in some points that I wouldn't pollute a repository with it if I were rewriting today. Oh, God, the print logic. I can quote one line out of that file by memory:

// Abandon all hope ye who enter here.


On the other hand, Google's interns are producing... http://googledocs.blogspot.com/2009/05/spotlight-on-develope...

I know a developer who was learning two new programming languages and started writing serious production code within three weeks of starting his first job post graduation. He took over maintenance of a complex application and rewrote it in a new language. He managed to double his salary 18 months into the job. There risk in hiring someone unproven, but you can buy that down quickly.


The point isn't that they produced something shiny, but the quality of the code that backs it up. The link you presented did not link to any source code, but to a marketing blog. The quality might be horrible, but they shipped it.


If you are not 3x as productive 15 years after graduation as you where when you just graduated you are probably doing it wrong. The only advantage to employing young people is their willingness to work insane hours, but that pales in comparison to experience.


Sorry. I'm coming up on 15 years, and I am not 3x more productive than the better young developers I've hired. I just don't think this sentiment is valid.


better young developers I've hired that's not what I said. Are You ~3x as productive Now than when You started? It's not a question of typing speed or syntax, it's a question of what you can get done in a 1 month. And how much damage you will do in that same month.

One of the better examples of this is helping to debug someones program. Now I frequently hear, I was trying to do X, it almost works, but it's also doing Y, and I will say ok you made a mistake in this area. It's not just understanding code, but also understanding the typical mistakes we make. Tracing down an off by 1 error is something everyone learns, but they don't teach it in school.


I might be 3x better. I am not 3x more productive. I do much more than just code now, though.


Young developers can be, and often are, highly productive but software development is more nuanced than just raw lines of code. Sensible design is both very difficult and very important and I don't think anybody gets very good at it with less than 10 years of experience.

The first 100K lines or so are easy and somebody with talent who is fresh out of school is going to get to the finish line at least as fast as a 10 year veteran. The real test is the next 100K lines of code which the experienced designer is going to breeze through while the novice is about to learn an important lesson: Writing large programs is much harder than writing small ones.


So write smaller programs. Use a higher level language.


You're missing the point, I think. Higher-level languages just reduce the number of lines before you start to hit the maintainability wall from poor design. So, while maybe it's >100K lines of C that's where it typically happens, it might only be 10K or 20K lines of Ruby.


Perhaps. Though I'd rather deal with a messy 10K lines than a messy 100K. And having less code helps you keep it clean.

In a higher level language you get a lot of good design for free. For example nobody has to worry about GoTo-spaghetti-code any longer.


Second reply: Fail faster.


A few year's real commercial experience is often enough to at least double someone's productivity, often much more. Why? Familiarity with all the things that aren't pure coding. Understanding requirements/domain knowledge. This is the big one, if you are working in field X and you know the terminology, the business and so on, you can find out what people need and solve their problems with no messing around. Just to pick an example I am familiar with, banking, in pretty much every programming/IT job ad it will say "must have previous banking experience".

Plus there's experience with the toolchain. Experience with the codebase. Knowing how to play "the game" of meetings and reports.


Is it equivalent to say that I'd pay a fresh college grad who hasn't done anything but RoR 70% less? Because I'd totally do that.


No.

Suppose you pay a fresh college grad 50k. 70% more is 85k. But 70% less than 85k is 25.5k.

So you would definitely pay the experienced guy 70% more.


If the geezer with 10 years of C++ experience ..

I know this is just an example, but 10 years is nothing. Some of us got into this stuff out of high school.


Good lord, I have twenty years of C++ experience.

Where did the time go?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: