Forgot your password?
typodupeerror
Programming IT

What's the Shelf Life of a Programmer? 388

Posted by samzenpus
from the ending-the-game dept.
Esther Schindler writes "Why is it that young developers imagine that older programmers can't program in a modern environment? Too many of us of a 'certain age' are facing an IT work environment that is hostile to older workers. Lately, Steven Vaughan-Nichols has been been noticing that the old meme about how grandpa can't understand iPhones, Linux, or the cloud is showing up more often even as it's becoming increasingly irrelevant. The truth is: Many older developers are every bit as good as young programmers, and he cites plenty of example of still-relevant geeks to prove it. And he writes, 'Sadly, while that should have put an end to the idea that long hours are a fact of IT life, this remnant of our factory-line past lingers both in high tech and in other industries. But what really matters is who's productive and who's not.'"
This discussion has been archived. No new comments can be posted.

What's the Shelf Life of a Programmer?

Comments Filter:
  • by Synerg1y (2169962) on Monday November 05, 2012 @05:48PM (#41887425)

    It becomes a problem when the older person can't land a job as a result.

  • by gtall (79522) on Monday November 05, 2012 @05:51PM (#41887453)

    Older workers, regardless of the industry, come in (err....well, broadly) two flavors, those that are open to new tech, ideas, whatever, and those that are adamant they stay within their old niche. The latter is, in some sense, understandable. That niche is one that has rewarded them in the past. The problem is that it may not reward them in the future.

    The ones that are open to new ideas also fall into the trap of glomming onto the latest whizzy technology to come down the pipe. That will result in no sense of perspective.

    What is needed is a happy mix: developers who will evaluate new tech and adopt given experience, and who will also keep past tech that still has the right punch.

    This necessarily weighs older developers more than younger, you cannot teach experience. I say developer because programmer is too, what, blinkered. If you are good at development, you know your industry. If you are good programmer, it is hard to say what you are good at. Programs do something, and that something is not in a vacuum. To be a good developer, you must understand much more than being a good programmer.

  • by tempest69 (572798) on Monday November 05, 2012 @05:52PM (#41887461) Journal
    And I'd bet if asked if he REALLY understood Linux, he'd be saying nope.
    There is something to be said for being comfortable with not knowing everything.
  • Generalization (Score:5, Insightful)

    by Verdatum (1257828) on Monday November 05, 2012 @05:52PM (#41887469)
    You cannot disprove a generalization by way of counterexample. Certainly, lots of old programmers are wonderful. They read the latest developments and new paradigms, and work to understand whether they are appropriate or not, and they have lots of experience that lets the quickly detect problems or avoid paths that will become future problems...But lots of them also just get burnt out. They haven't learned a thing since college, and/or they just want to put in their hours and go home until they are able to retire. Until someone does a survey that compares age and software development apptitude (which would be a really hard thing to do well), it's a valid archetype to watch out for. I fully expect I'll have to prove I'm one of those exceptions to the "rule" when I get to be an old coder.
  • by Anonymous Coward on Monday November 05, 2012 @05:52PM (#41887473)

    But what really matters is who's productive and who's not.

    Your so naive grasshopper. Management is taught that a good manager is one who is able to manipulate their subordinates to make themselves look good. Old timers are much harder to manipulate because they typically have too much experience in this area.

  • by Anonymous Coward on Monday November 05, 2012 @05:55PM (#41887503)

    Older workers want more pay, don't want to work all nighters every other thursday, don't want mandatory 90 hour weeks, don't want to mess with all these new fangled thingies that will be obsolete or irrelevant in 1.7 years, etc etc

  • by StillNeedMoreCoffee (123989) on Monday November 05, 2012 @05:56PM (#41887511)

    After working for 40 years in IT and 27 years teaching CS at Northwestern part time I would say that a lot of the young programmers don't have a real sense of programming. They feel that knowing a particular framework is programming, or using a particular package is programming. But the deep programming comes from the Data Structures and algorithms used and the patterns used. There is an art to programming much of which comes with time, experience and study. So you may not be fashionable if you don't have all the latest acronyms on your resume but if you don't know the DS and Alg. you are just window dressing.

  • by Kergan (780543) on Monday November 05, 2012 @05:57PM (#41887533)

    Youngsters with magic coder fingers are far in between. I'll take a coder with 20+ years of experience over a half dozen near-rookies any day, thank you very much. The senior will typically be cheaper, much faster, and will invariably produce much less bugs.

  • by Ami Ganguli (921) on Monday November 05, 2012 @06:00PM (#41887571) Homepage

    I find younger programmers don't know how computers actually work. They've never used assembler or C for anything. They can't use SQL properly. They don't have the range of experience that lets you attack a problem from all angles and find the best solution.

    That's not to say that I use assembler or C for anything nowadays, but the understanding I gained way-back-when gives me a feel for what's actually happening behind the scenes when write in Javascript, Python, etc. And the addiction to application frameworks among young programmers seems to have inhibited their ability to come up with creative solutions to unique problems. They just apply their favourite framework to everything, regardless of how well it actually fits the problem.

    Sorry for the rant, but the lack of technical breadth in younger developers is a real pet peeve of mine. I guess part of the reason I get annoyed by it is that experience isn't given that much weight in hiring decisions, so you have inexperienced people in roles of responsibility that they're not ready for. Us old farts who do know better end up having to deal with with the mess afterwards.

  • Productive? (Score:4, Insightful)

    by Anonymous Coward on Monday November 05, 2012 @06:01PM (#41887583)

    Productivity is hard to measure. Salaries, however, are very easy. When you can get 3 24yos for the price of one 40yo, good luck convincing an MBA the latter is the better choice, all else be damned.

  • by Intrepid imaginaut (1970940) on Monday November 05, 2012 @06:02PM (#41887601)

    Older workers, regardless of the industry, come in (err....well, broadly) two flavors, those that are open to new tech, ideas, whatever, and those that are adamant they stay within their old niche. The latter is, in some sense, understandable. That niche is one that has rewarded them in the past. The problem is that it may not reward them in the future.

    The ones that are open to new ideas also fall into the trap of glomming onto the latest whizzy technology to come down the pipe. That will result in no sense of perspective.

    I fail to see how this applies uniquely to older developers, younger ones are just as prone to the same behaviour. I always laugh when I see these stories though, I mean what, twenty years is a long time? Blink and its gone, the young hotshots will inevitably become the older programmers, and a hell of a lot sooner than they think.

  • by OhSoLaMeow (2536022) on Monday November 05, 2012 @06:02PM (#41887609)
    Younger workers want the same thing.
  • by Anonymous Coward on Monday November 05, 2012 @06:03PM (#41887615)

    Older workers want more pay, don't want to work all nighters every other thursday, don't want mandatory 90 hour weeks, don't want to mess with all these new fangled thingies that will be obsolete or irrelevant in 1.7 years, etc etc

    These are older workers who have clearly learned that working all nighters every other thursday and mandating 90 hour weeks is counterproductive.

  • Re:Generalization (Score:4, Insightful)

    by darkwing_bmf (178021) on Monday November 05, 2012 @06:16PM (#41887721)

    You cannot disprove a generalization by way of counterexample.

    That's exactly the way you disprove a generalization.

  • by AK Marc (707885) on Monday November 05, 2012 @06:20PM (#41887777)
    No, they don't. They want pay and opportunity. The older workers have seen plenty of people burn out, and want to avoid that.

    Many of the consulting firms (IT and accounting) will work their workers until one breaks down, then hires a whole new group, fresh out of college, as you can't use someone from a team that was worked until someone broke. They know next time, it might be them. But before that, they think they and all their peers are invulnerable, and they are gaining work experience and other such things less relevant to the older crowd.
  • by Anonymous Coward on Monday November 05, 2012 @06:21PM (#41887781)

    Every programmer or IT "pro" over 40 is worthless. Never met one that jumped in and solved any problems.

    As an over-40 engineer I'll confess that I'm less than enthusiastic about solving problems that involve new APIs, new but obscure language features, etc. I suppose It's all the boring boilerplate that I just can't get past anymore. I mentally recoil at the thought of having to trudge through pages of documentation just to get at the little piece of information I need to go forward.

    When I was younger I had no problem memorizing some silly function call's bizarre name or learning the odd syntax of a new language to get something done. It was exciting and I didn't mind. But now I just don't have the time to master the 100th variation of someone's system or library that accomplishes the same thing as 100 other systems or libraries.

    Solving problems still excites me, though I admit they're problems solved by using older systems, tools, and languages. Solving problems never gets old.

    One day after HTML is dead and gone (it might, really!), or after the desktop dies and in replaced by a tablet (possibly not an iPad!), you might find yourself confronted by a new system that does everything the old systems did (though better).

    And you'll be asking yourself, "do I really have to relearn all this crap again?"

  • by johnlcallaway (165670) on Monday November 05, 2012 @06:23PM (#41887793)
    I am 53, been in computers since I was 18 years old, cutting my teeth on a TRS-80 at home and HP mini's at the college I dropped out after one semester. I've had jobs writing assembler, COBOL, C++, FORTRAN, perl, Java and who knows how many proprietary or niche programing languages. On HP, Burroughs, Tandem, IBMs and Windows boxes. Reading ISAM files at first, switching it up to Oracle, Sybase, Informix and even a few Access database. Even wrote a COBOL program that did communication via RS-232 ports. Spent 5 years as a system administrator/manager because of my Unix skills, learning Linux from a floppy disk install and dual partitioning. Spent time on HP, Burroughs, IBM, NCR, Sun and Windows computers. Even spent a year programming a phone system with my phone admin got himself fired. I sincerely doubt that I've been left behind.

    But I have known several developers that have gotten left behind. For some of them, it's just because they got stuck in a rut and didn't try to learn anything new or take on new assignments in new tech. Others just wouldn't speak up and let their boss know they were getting bored with what they were working on and would like to work on something new. Happened to me once, I got passed over because my boss didn't know I was interested and I vowed to never let it happen again. If someone is willing to sit at their desk and only code in COBOL or Java or C++ or C# all day, in a few years they will look around and notice things have changed and they didn't keep up. If they wait too long, they may not be able to catch up.

    But there is one batch of old IT people that are the worst -- the old programmer who absolutely refuses to learn anything new because "programs today just aren't elegant' or "these new programmers and their fancy languages today use way too many resources to get something done!". They have all kinds of reasons to not learn something new, but it all comes down to they think they know the best way to do things, and expect everyone else to change to their way instead of giving new things a chance. (My personal opinion is that many of them are just to insecure to admit they don't know something.)

    Whatever the opportunity that comes up for me, you can bet that I'll dig in and learn anything new that I have to. My boss told me that the reasons she hired me was I was the only person she interviewed that basically said "I may not know it, but I can figure it out". Today's tech changes too fast, and people who rely on the excuse "But I don't know how to program in XYZ" or "But I don't know how a firewall works" will surely see their usefulness decline.

    Just like so many old programmers before them.
  • by jythie (914043) on Monday November 05, 2012 @06:24PM (#41887795)
    Eh, I have seen it in brogrammer environments. It isn't just older workers though, anyone who did not learn the exact development culture snapshot that was in when they were in school 'can't program'. It ends up impacting older ones the most though since they did learn at a different time and have used multiple methods over the years.
  • by Esther Schindler (16185) <esther@bitranch.com> on Monday November 05, 2012 @06:28PM (#41887829) Homepage
    There are two kinds of fool. One says, "This is old, and therefore good." And one says, "This is new, and therefore better." --Dean Inge
  • by kestasjk (933987) * on Monday November 05, 2012 @06:35PM (#41887931) Homepage
    I'm a 25 year old, I use SQL all day and used C for my personal projects and as part of my computer science course. (And not just hello world, but UNIX threading / network programming / signalling and network stack emulation.)

    I also work with a 38 year old who is a much better coder than myself, not in all ways but certainly in all but a few niche areas, and a 42 year old who does fit the stereotype of old people being afraid of new technologies (but who will readily learn if he wants to).
    That's our dev team; a 25 year old, 38 year old and 42 year old.

    Basically these stereotypes are just bullshit. I cringe just as much hearing about how "younger programmers can't do this" as when I hear how "older programmers can't do that".
  • Re:Whatever (Score:5, Insightful)

    by jxander (2605655) on Monday November 05, 2012 @06:53PM (#41888105)

    Nestled down at the bottom of your post is the real answer to this conundrum

    I get paid to manage younger programmers.

    By the time you've reached a position of seniority, you should be prepared to manage. Even if you're not officially a "manager" you're still the top dog and need to act like it. If you can wrangle a dozen whipper-snappers and keep them diligently coding, your value to the company far exceeds your own code output

    Also, if anyone has 30 years experience in *any* field, coding or otherwise, you'd damned sure better be moving up and managing. If someone has been around for 30 years, and isn't taking charge... well, they're not going to be around much longer.

    All that to say, sounds like you're doing it quite right Mr. ios. Keep it up, and hopefully show the next generation how to age well and keep productive.

  • Renew! Renew! (Score:5, Insightful)

    by Weaselmancer (533834) on Monday November 05, 2012 @07:27PM (#41888423)

    Ok age jokes aside, honestly I worry just as much about younger programmers. They have less of an idea where it all comes from. Not many graduates these days are coding in assembly. Or even C anymore which is pretty much the mother language to all other languages.

    Drivers and other down-to-the-metal stuff aren't written in Java. Yes, I know that with Google you can find me an experimental counterexample. I know that. But the system you are using right now? It'll all be assembly, C and maybe a little C++. And you're most likely not using a browser written in Java or Python or C#.

    You know, some years ago I considered going back to college and getting a CompSci degree. When they said that Java was their main language I decided not to. I like Java, write in it, and I plan to get whatever Oracle is calling the SCJP this week someday soon. I'm not dismissive of any of the new technologies. I like them. They are great at the problems they are designed to solve.

    But there is something to be said for writing assembly and manually turning on an MMU unit, just once. You can know about computers, or you can know computers. We're missing something by shifting the educational focus to the higher level languages.

  • by Gr8Apes (679165) on Monday November 05, 2012 @08:02PM (#41888747)

    Heck, I'll comment as myself. Here's the real scoop - "programmers" under 30 (Yes, it's quoted, most of them can't program the equivalent of the way out of a wet paper bag) will work dirt cheap, talk the latest lingo, and wow - that sounds really cool! Latest buzzwords, systems, what not.

    Experienced programmers (those with more than 10 years experience) have already seen 2 iterations of those latest buzzwords, systems, and what not, and realize that it's much more productive and the chance of success is much higher by using established, known, and relatively debugged systems instead of those latest iterations that reinvent the wheel.

    The Wheel, reinvented (and buggy)

    • .NET (Java wannabe)
    • Maven (ant, but much worse)
    • Gradle (maven, but worse)
    • Grails (nice idea - several libraries already do this)
    • Ruby (Perl, version x.0, which itself is a crappy solution for enterprise anything)
    • ADA (have you looked at this?)
    • ...

    Things that are truly unique and may have a place:

    • LISP (yep, even after all these years, LISP may still offer some decent inspiration)
    • SmallTalk (it'll never be a main language, but it's a good one)
    • ... insert your fave here

    Then there's the special list of things that went off the deep end, and in this arena, C++ is the most notable failure. It has failed to produce not because of lack of capabilities, but more because it started out as a promising well constructed language, but when scaling was added for ever larger projects, bad decisions were made which doomed it's ability to be written or maintained. LISP is another, in that it's too flexible, and only under a dictatorship would it be feasible to write long term software systems in LISP.

    So I'm prepared to lose kharma because I'm sure I've offended every mod out there in one way or the other, both by what I've said and what's implied by what I've left out. C'est la vie.

  • by aztracker1 (702135) on Monday November 05, 2012 @08:05PM (#41888779) Homepage
    I've seen it go both ways.. I'm pushing 40, and do a pretty good job keeping up, and being aware of new ideas, concepts and tools... on the flip side, I had a coworker that was a couple years older absolutely resistant to any new tools, techniques or change in general... Then again, I've seen plenty of younger developers who are relatively fresh from college who can't think their way through, under or around a given problem.
  • by aztracker1 (702135) on Monday November 05, 2012 @08:32PM (#41889041) Homepage
    Which is why I think there should be a pay floor of 125K/year on H1-B visa workers.. if there's nobody here to fill that job, it must require someone special, which means the pay should be that much higher or more.
  • by Anonymous Brave Guy (457657) on Monday November 05, 2012 @09:57PM (#41889769)

    By the time you've reached a position of seniority, you should be prepared to manage.

    Why?

    Skilled and experienced people can contribute in both technical leadership and training/mentoring roles, to the extent that they aren't really part of the same thing anyway, without getting involved at all in "management" in the common senses of project management, product management, being someone's "manager", and the like.

    Moreover, being a good manager in any of those senses has very little to do with technical competence. Being good at the job and being good at managing people who do the job are no more the same thing than being a world class athlete and being a world class athletics coach.

    A false equation of seniority and management is one of the biggest dumb ideas holding back our industry, and it needs to die. Unfortunately, as long as we keep promoting geeks with no aptitude for management into management roles, they won't understand what's going wrong well enough to stop it happening...

  • by Sun (104778) <shachar@shemesh.biz> on Tuesday November 06, 2012 @12:31AM (#41890541) Homepage

    Blink and its gone, the young hotshots will inevitably become the older programmers, and a hell of a lot sooner than they think.

    Not so. The burn rate for programmers is very high. Not a lot of people who programmed while young are still as motivated to do so at 45, not to say 55. Then you get unmotivated workers, which is, as you know, a real problem.

    Yes, those who manage to maintain their interest are, usually, a gold mine.

    Shachar

  • by Anonymous Coward on Tuesday November 06, 2012 @03:46AM (#41891305)

    Honest comments are good ones. I agree with some of what you said, but I have to disagree about C# being a Java want to be. Full disclosure, I used to work for Microsoft, but I currently work at a startup using mostly Java and Python. I've written code in just about every major language, and a few not so major ones, started on assembler, C, and Lisp. I have to say that C# is one of the best languages is at this point Java would love to be everything that C# now is.

    Of course C# was heavily inspired by Java, but it had the benefit of hindsight to learn from a lot of mistakes, not to mention IMO a better group of people behind it as far as language design is concerned. It has evolved quite nicely. I used .NET since the alpha framework internally at MS, and now that I'm using Java I miss it so much. I've tried to get my team to compromise and start doing some things in Scala, but so far I get a lot of resistance particularly from the older Java devs about using it. Anyway, I feel like I've been knee capped and shot in the face when coming from C# to Java, even with various good third-party libs like guava. It's just not the same as having some obviously useful things in a statically typed language baked in - examples: LINQ and expression trees, better meta-programming, better Generics, helpful keywords like default, lambdas, better collection initialization, better default async libs, etc.

    As for Smalltalk, if we're on the subject of karama burn, I love it and I think it's a shame that things happened the way they did. It deserves to be a top language for rapid development and for web applications. Modern Smalltalk is great and a joy to work in. I worked in Gemstone Smalltalk as well as Squeak and Pharoh quite a bit. All feel liberating compared to anything else object-oriented. I feel no other language is so clear to me. It reads like a book, and keeps it simple.

    The old geezers love it because they know you don't need all this crap like in Java and C# if your language and standard libs are designed well. I can't stand the Ruby hype because after using Smalltalk, you feel like Ruby is the idiot cousin that doesn't quite get it. And of course the VM concept is absolutely brilliant and opens so many possibilities. If only they would solve multi-threading a bit better and have slightly nicer UIs in some of the dev environments. Even the source control is nicer (but needs polish in terms of usability) - object oriented source control. As Smalltalkers love to say, "Files, how quaint."

  • by AmiMoJo (196126) * <{ten.3dlrow} {ta} {ojom}> on Tuesday November 06, 2012 @07:55AM (#41892279) Homepage

    I am a fairly old-school programming, writing C and assembler for micros with 4KB of RAM. Across the room from me are the desktop guys who do everything C# and .NET with SQL databases and some PHP or ASP scripting for web stuff, which is presumably what you were talking about when you said "toytown programming languages".

    I have immense respect for those guys because while they might not understand the depths of the compiler like I do (C# doesn't even have include files!) they write some really complex and usable applications that are extremely flexible. The stuff they do is every bit as complex as what you or I do, just on a different level that allows them to get the job done in a tenth of the time it would take doing it the traditional way.

    The net may have been built in the low level code guys like us wrote, but no one would use it if it wasn't for guys like them writing all the web apps and making complex stuff work seamlessly.

  • by JasterBobaMereel (1102861) on Tuesday November 06, 2012 @08:50AM (#41892719)

    Younger workers have not yet learned that long hours cause burn out that will not get them advancement, older workers have learnt that the people who do long hours are not the ones who get advancement anyway ...

    Each new batch of younger workers are also the ones that make the same mistakes over and over that the older ones have learnt to avoid ...experience is useful in being efficient

Hackers of the world, unite!

Working...