What's the Shelf Life of a Programmer? 388
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.'"
Young people thinking they know everything? (Score:5, Funny)
This has never happened before
Re:Young people thinking they know everything? (Score:5, Insightful)
It becomes a problem when the older person can't land a job as a result.
Re:Young people thinking they know everything? (Score:5, Insightful)
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
Re:Young people thinking they know everything? (Score:5, Insightful)
Re:Young people thinking they know everything? (Score:5, Insightful)
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.
Re:Young people thinking they know everything? (Score:5, Interesting)
Re: (Score:3)
I'm sure that's based on real data.
Re:Young people thinking they know everything? (Score:4, Insightful)
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
Re:Young people thinking they know everything? (Score:5, Insightful)
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:Young people thinking they know everything? (Score:5, Interesting)
Re:Young people thinking they know everything? (Score:5, Insightful)
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.
Re:Young people thinking they know everything? (Score:5, Interesting)
Re:Young people thinking they know everything? (Score:4, Interesting)
New Godwin's Law Required (Score:2)
Re: (Score:2)
The whole "that will be obsolete or irrelevant in 1.7 years" makes it pretty clear to me that the poster shares the "new-fangled" opinion.
Re:Young people thinking they know everything? (Score:5, Funny)
Re:Young people thinking they know everything? (Score:5, Insightful)
But what is "staying up to date"? (Score:5, Interesting)
Part of the problem is younger programmers who assume they're better because they put in a lot of effort to learn the latest GUI or DB libraries, and they know the intricate specifications of six trendy programming languages off the top of their head, and they can configure four different Linux web servers on auto-pilot. See, they're always keeping up to date!
Older and wiser programmers know that usually, to a first approximation, a GUI library is a GUI library and a programming language is a programming language and a web server is a web server. They're just tools, and while some are better than others, it's what you build with those tools that ultimately matters.
Of course, they also know when and how to check out the specifics and decide which tools are right for a given job, but they don't waste time on that until they have a need for it, which makes them less buzzword compliant in the eyes of the newbies (but a lot more productive).
When a tool isn't just a rehash of numerous similar tools before it, it's usually the older and more experienced folks who came up with the industry-moving developments, but the newbie programmers who are buzzword aggregators always trying to improve a resume and the naive managers who hire based on buzzwords don't notice that sort of thing. They don't care that someone older could build an efficient database schema that answers the important questions in an instant, or an easy-to-use GUI that customers love, or a robust concurrent server that doesn't crash and make you look like idiots in front of those same customers. Do you have at least 7 years of experience with C# 5?
Of course some older programmers really do slow down, stop learning, and coast along. It might be getting stuck in a rut and not bothering to do anything about it. It might be a matter of changing priorities, family commitments becoming more demanding and the like.
But the thing that really divides the good older programmers, IME, is whether or not they know how to take advantage of their greater understanding and better transferrable skills. If you're still playing resume buzzword bingo at 40, you're doing it wrong, not least because it implies you still look for jobs by spamming resumes like a college grad. You should be landing a good position through your network contacts before it's even advertised, transferring from wage slave to freelancer/contractor/consultant arrangements, starting your own business so you're on the other side of the desk, or otherwise avoiding being a victim of ignorance.
In short, an older developer who knows what they're doing has a more-or-less indefinite shelf life, as long as they don't play games with young, dumb people who don't understand why. As a bonus, avoiding those games is an excellent filter for avoiding crappy jobs, poor working conditions, incompetent colleagues, and low pay. :-)
Re:But what is "staying up to date"? (Score:5, Interesting)
And I'm vastly enjoying when the sharp, young programmers have their exciting new idea, and I ask them about a specific issue with the approach. They google, check the top few links, and respond with some trite answer. Then I get to walk them back to the thread and walk them through the *REST* of the thread, and to the real answer, which I *wrote* 10 years ago.
This happens to me at least once every six months: it's a tremendous advantage in the open source world when you caught the open source project early and helped bring in lessons hard-won over the last 20 years, such as not inventing yet another replacement for "make" or inventing a new value for "successful" operations.
Re:Young people thinking they know everything? (Score:5, Funny)
Exactly. It's just like all these old guys in their 30s and 40s or even 50s who learned C and C++ and are currently unemployed, because nobody uses C and/or C++ anymore and these old geezers didn't bother learning CoffeeScript, Clojure, Haskell, GO, and HTML5 which has ubiquitously replaced C/C++ all across the industry.
It was a nice ride for those fat-cat geezers, for the five or ten years that C/C++ was used in the industry. It's just such a shame everyone has moved on and everything in the industry runs on Ruby and Chrome OS, now. Gosh.
It depends... (Score:5, Funny)
Have you kept them out of the sun and filled them with preservatives such as redbull?
Shelf life is far longer that way.
Older workers require that old zest for the new (Score:5, Insightful)
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.
Re:Older workers require that old zest for the new (Score:5, Insightful)
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.
Re:Older workers require that old zest for the new (Score:5, Insightful)
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
Re:Older workers require that old zest for the new (Score:5, Interesting)
>The battle cry to unionize programmers is such a thing -- it says "I expect to be useless in the near future, an obstacle to progress of any kind, and I require collective bargaining to hold onto what I can't by skill and effort alone".
I call bullshit. You know why ? Because I first heard that battlecry on slashdot when I first started reading it, back at my first helldesk job during college in 1998.
See your disparaging view of collective bargaining is a big giveaway that you're letting your political/economic views prevent you from rationally interpreting the evidence before you.
The real truth is more like this - why is wallmart cheaper than the Mom and Pop store ? Because they can buy in bulk. They buy large amounts, so they get cheaper prices, so they can sell cheaper. That's EFFICIENCY.
Bulk always works out more efficient if you can manage it.
It works on EVERY level of the economy. For consumers collective-purchasing companies are an old and established system that works in the same way. You join an organisation, get a membership card and shops charge you less. Not because YOU are special to the shop - but because the shop has a deal with the purchasing company - "we will offer your members discounts" - the purchasing company can get those deals because it has a LOT of members - which is attractive to the store.
That's collective bargaining's core efficiency boost on two separate levels.
It ALSO works for employees. One employee has limited ability to truly negotiate his terms -hell even for executives most companies have fixed payscales (and this is true even in countries where unions aren't legal disproving the common gripe of blaming it ON unions). Why ? Because it's CHEAPER for the company. Having one standard "fill-in-the-blanks" contract means a LOT less money spent on lawyers. Simply refusing to hire ANYBODY who doesn't go along with the stock-standard contract and it's rules is a major saving on administrative costs (companies may be wrong about this but most consider it unlikely that any individual employees could bring SO MUCH value as to justify the massive cost increase and STILL be profitable to hire).
But it DOES make sense for the company to negotiate with ALL the employees. All the employees together have a bargaining power no single employee can have - AND it's in the companies interest to do it this way because it means they keep the savings of "form agreements".
Bulk agreements are ALWAYS more cost efficient. When a single entity can afford to do so, they score - but even wallmart can only get bulk deals because they have a LOT of customers.
Bulk is only FEASIBLE when you have lots of people acting collectively.
Collectively bargaining is the epitome of capitalist efficiency and every attempt to paint it otherwise is china-style state/crony capitalism in disguise. This is just as true for employees as it is for consumer-power organisations or bulk-stores.
If I Only Had a Brain (Score:5, Interesting)
Why is it that young developers imagine that older programmers can't program in a modern environment?
Although I'm fighting anecdote with anecdote, I've never seen this happen. The only people I and my young coworkers assume can't program in a modern environment are people who have shown that they're unable to program at all.
Re:If I Only Had a Brain (Score:4, Insightful)
Re:If I Only Had a Brain (Score:5, Funny)
Honestly, that's so insulting to the profession. Can't we just call them "assholes" or "douchebags" like every other profession?
Linus is over the hill, (Score:5, Insightful)
There is something to be said for being comfortable with not knowing everything.
Whatever (Score:5, Interesting)
I learn better today, than I did at 25.
Back then, I just knew how to do stuff.
Now, I also know WHY it works. Right down to the bone.
My years of experience and nonstop training (self-training, when my company didn't want to foot the bill) has paid off in a big way.
However, I have absolutely no illusions at all that I'd have much of a chance in the job market.
In the day of the "brogrammer," there's no room for gray hair. I'd have to start my own company (something that I'm quite prepared to do).
I get paid to manage younger programmers. I code for fun.
Re:Whatever (Score:5, Interesting)
I turn 49 in three weeks, and I still love programming. It remains my work, hobby, and passion. I think my ability to crank out awesome code leveled off when I was about 30, and since then I've had to settle for enjoying mentoring the next generation rather than soaking up knowledge like a sponge. At one point, I looked around and realized there wasn't anyone left to learn from, at least not anyone who I was capable of emulating, and that many people were looking at me to help them. I started a company back in 2000, and continue to work in the position I created for myself, and I am still having a great time.
However, I agree... If I had to go find a new job as a programmer, my age would be an issue. I intend to stick with my company as long as they need me, but after that, I'll probably start another one. I haven't become a stronger programmer with time, but the experience I've gained working in startups has made me a better entrepreneur.
Re:Whatever (Score:5, Insightful)
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.
Seniority != management (Score:5, Insightful)
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...
Re: (Score:3)
Yeah it's well known that geeks are unable to learn anything new.[/sarcasm]
Please notice that I didn't say a developer couldn't become a manager. I'm merely saying that management is a different profession, and moving into management should not be an expected or required transition equated with seniority. A geek might also become a Michelin-starred chef, a world class concert pianist or a breeder of champion race horses, but we don't expect any of those changes in career just because they started out writing code.
Generalization (Score:5, Insightful)
Re:Generalization (Score:4, Insightful)
That's exactly the way you disprove a generalization.
Re: (Score:2)
Re: (Score:3)
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.
This is the difference between good coders and bad coders, no matter the age (well, except for the retire part). This is a career whose first mandate is constant learning and refreshing of skills. If an organization finds itself with older programmers and technicians who haven't learned anything new, that's a sign of bad management, and a waste of human capital. One of the things that led me to leave consulting for a steady job 20 years ago was the huge cost for training to stay up to date. Since then, my e
Your so naive grasshopper (Score:5, Insightful)
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.
Ageism etc (Score:5, Interesting)
hostile to older workers.
Hostile to expensive workers. Combine with the notorious inability to evaluate programmer productivity, and ...
how grandpa can't understand iPhones, Linux, or the cloud
I'm technically old enough to be a grandpa, in fact in the inner city I'd almost certainly be one by now (its a cultural thing, "my people" tend to get married a bit older, vs some cultures its all about the teenage/highschool pregnancy, etc) The funny part is despite my apparently grandfatherly age I've been there the whole time for all three examples, and that's not even all that unusual. Great grandma might have some issues, but not my generation.
Now pick a fad that I am the wrong age for social reasons, that I intentionally skipped because I thought it was dumb, like SMS text messaging, or twitter, or myspace, then you've possibly got a point...
At the ripe old age of 38... (Score:3)
Re: (Score:2, Funny)
Re: (Score:2)
Re: (Score:3)
Re: (Score:3)
They don't know the difference between C and C++ ...
Ask them what *similarities* between C and C++ are, that'll get them puzzled.
Thank G-d I don't do much programming any longer (Score:3)
I've been in IT for 33+ years, mostly as a zOS Systems Programmer. A little assembler language programming now and then though. There are several programmers in my age bracket still programming full time though, but they've had to reinvent themselves several times over the years.
Data Structures and algorithms (Score:5, Insightful)
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.
Re:Data Structures and algorithms (Score:4, Interesting)
Re:Data Structures and algorithms (Score:5, Interesting)
Ah, There is the difference, just as you might say that a novelist is a craftsman rather than an artist. There is a level of understanding and experience that transforms the craft to an art. If you only think of it as a craft then for you it is a craft and will always be a craft, but as the best engineering is invisible, the same is said for an artfully crafted program, with all the considerations and degrees of freedom handled, with the flow natural and maintainable. As there is an art to poetry which is just words and sentences pieced together , there is an art to programming as well. In the construction world there are carpenters, builders and architects. The architects are the artists at the top. The craft is below. It is much easier to do the art when you have wide ranging control. So not all environments allow the practice of that art. I hope at some time in the future you have that opportunity.
Re:Data Structures and algorithms (Score:4, Interesting)
In the construction world there are carpenters, builders and architects. The architects are the artists at the top. The craft is below.
If you're designing the Sydney Opera, you're creating a work of art. If you're doing the n'th residential house so it'll blend in with the neighborhood and comply with all the regulatory standards but otherwise little boxes all the same (cue Weeds theme) then you're doing a craft. Like with houses, there's a lot more craftsmanship than artwork to be done. Don't get me wrong, there's a lot of skill that goes into making it well but unless you consider every highly skilled worker to be an artist there's not much art. Particularly in software I have the impression it's much more about making sure all the i's are dotted and t's crossed because the computer has zero tolerance for sloppiness. That kind of rigidity is hardly what most people associate with art.
Just keep learning and you'll be fine (Score:4, Informative)
mathematicians (Score:3)
There's a similar thought process in mathematics. Many really amazing mathematicians died young (Srinivasa Ramanujan, for instance), "and therefore any old mathematician can't possibly be a good one." Well...that's a load of crap. The truth is, mathematicians of all ages contribute importantly to mathematics. CS probably faces a similar thought process because computational technology is still very new. (It wasn't long ago that algorithms were primarily researched as a mathematical curiosity.)
Re: (Score:3)
Particularly more in mathematics since even the fields medal can't be handed to anyone over 40 years of age.
Teaching tricks to old apes (Score:5, Insightful)
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.
What I've seen (Score:5, Interesting)
I'm of the younger generation, but I've worked with all the age groups at some point or other on multiple occasions, and what I've found is... older devs tend to be more encompassing, think their approaches through, and have the jist of how to tackle a wider range of techniques / fixes (experience). Younger devs tend to be faster coders, better out-of-the-box thinkers, and more motivated to do the work (typically, comes from having something to prove), as well as try various approaches at solving a problem. There are high & low programmers in all age groups, I've met people 40+ who rattle code off methodically without external references, and those that can't rewrite a render method. A lot of "newer" code is "older" code optimized, all AJAX is is javascript more or less, insanely complicated javascript at that. A lot of big wig types find it easier to deal with somebody that is more their peer also. Another thing that comes to mind is "culture", bringing a 20-something year old into a team of 50 year olds has some serious cons to consider. There's a ton more factors, but there's a reason age isn't listed on resumes, and that's because it's the shoe that fits that you'll wear.
Re: (Score:3)
Don't confuse out-of-the-box with "more willing to employ the fad language/framework in fashion".
FTFY. (I my memory serves, the French people use to spell it "du jour"... unless you wanted to use "de jure"; like in "the officially stated - by law - framework")
Perception is reality (Score:3, Interesting)
Whether or not there is an avalanche of contradictory evidence, most people will remain true to their beliefs and will ignore and deny facts that don't agree with them until they die.
This is a human failing. And it is pointless to blame humans for being human. It's hard if not impossible to change the thinking of a single person. Now imagine the scale of impossiblity it would be to change the thinking of the whole human species?
Pretty darned impossible. So what do you do about it? Well? Sometimes there simply NOTHING you can do about it. Unfortunately, the economy no longer makes "retirement" an option for everyone. And if you don't have it, you're destined to end up somewhere miserable in your twilight years hoping for death to take you when you're sleeping. Why? Because there is simply no chance of changing the world of people and their ideas that older people are incapable. Best hope is comfortable retirement if you can... ...and people need to start planning for their retirement in their 20s these days. And are 20-somethings thinking about retirement in their immortal years of adulthood? No. What about 30s? Yeah, sometimes, but often times not... they are thinking of buying bigger and better things all the time for the most part. And 40s? Oh crap... now it's definitely time to think about retirement and if you're not making a lot of money to invest in your retirement, then you are either going to have to put almost all of your extra cash in there (that's money after paying your bills and buying food on a tight budget) until that fateful day arrives when you simply can't get any more work... and then... ...then? ...Then hope that a bunch of wallstreet assholes don't tank your retirement with ponzi schemes. This is what happened to a lot of people with the economic crash.
TL;DR?
You can't change the world. Change what you do in it and hope for the best.
Quite the opposite... (Score:5, Insightful)
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.
Re:Quite the opposite... (Score:5, Insightful)
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".
Productive? (Score:4, Insightful)
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.
Re: (Score:3)
They are good as long... (Score:2)
...as you leave them in the wrapper, but once the seal on the shrink-wrap is broken they start to decay within seconds.
Examples (Score:2)
Citing a few counter-examples doesn't disprove claims about a general trend.
Re: (Score:3)
They do when no proof is offered for the opposing position.
I've seen no evidence that this "general trend" or even the "agism" apparently so prevalent in IT even exists.
Sweeping generalizations (Score:4, Interesting)
Since everyone is putting forth their sweeping generalizations, here's mine:
From the late 90's up until 2008-2010, there were two camps: the old school and the web crowd. But now the old school is learning web, and the web crowd is finally learning OO, design patterns, etc. So now everyone's the same.
TL;FA (Score:3)
What is the shell life of a dentist ? (Score:2)
Re:What is the shell life of a dentist ? (Score:4, Funny)
Do you know what is the shell life of a dentist ?
Same as a programmer: 3-5 days unless watered. 3-5 weeks unless fed.
Shelf life of a programmer? (Score:2)
Roughly the same as the stuff they eat. I think some of my ramen will last until the 2038 Problem hits.
Old programmers are like old wine (Score:5, Funny)
Old programmers are like old wine; we have no shelf life. As we age, we get better. We also get more expensive. If you pour us into the new wineskin of long hours, low pay, and other kinds of abuse, we burst your bubble and leak out. Put us in the old wineskins, preserve us with reasonable working hours, pay us well, and we'll reward you with the best patches you have ever seen. Keep away the patches coming from new wine, or you'll tear your garment and your hair. After trying us, you'll too say "truly, the old is better", and then continue "however, our shareholders demand higher profits this quarter and prefer 'cheaper'".
Re: (Score:3)
Unfortunately management says "we just want to get drunk, hang over we'll deal with tomorrow and after the first glass it all tastes the same anyways."
That's why the vintage wines stay on the shelf while the younger ones fly out the door.
software patterns don't change (Score:2)
Re:software patterns don't change (Score:4, Interesting)
I'm 62 and earn my living as a software engineer. I entered the field at 52 after getting tired of doing chemistry (PhD) - learned a bit of PHP and SQL to get the foot in the door and now have picked up Java, Python and C++.
Experience is one thing, but having a sound background in math is what makes for a really long career in technical fields, and can be used to enter into many others.
Compared to software patterns math is far more durable and broadly applicable.
A better question: (Score:2, Interesting)
One reason comes to mind .. ego! (Score:5, Insightful)
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.
Re: (Score:2)
Problem of interviewing (Score:3)
Young and old (Score:3)
Comments by an old programmer (Score:4, Interesting)
Frustrations of being an old programmer:
Javascript is at last a decent object-oriented programming language, but much of the Javascript out there is miserably written by people who have no clue. Much of it is cut and pasted from older bad Javascript, with special cases for different browsers. Even worse are front ends to convert Java or something else into obfuscated Javascript.
C should have died decades ago. The problem is that all of the replacements were worse. Modula tanked because Wirth and DEC botched the marketing. Ada tanked because it was too verbose. All the languages with garbage collection are unsuitable for low-level work. The C++ committee went off into template la-la land and became irrelevant. So we still have buffer overflows, security breaches, and crashes all over the place because the key language of the infrastructure sucks. Treating arrays as pointers was a horrible mistake.
HTML browsers should have required, from the beginning, that the opening and closing brackets balance. Instead, we now have HTML5, with clearly defined semantics for broken HTML. Have you ever seen what has to go into an HTML 5 parser to make that work?
Machine learning is great, but the notation of the field sucks. Most of what's going on is better visualized geometrically.
Microsoft says the future of programming is adding trivial little "apps" to a Microsoft-provided core and being paid peanuts for them. Apple insists they get to monopolize anything worth doing, and others can only develop "apps" in areas Apple can't profit from. Not a good future.
System administration is a blue-collar job, like electricians. But without unions.
Re: (Score:3)
The only people who dismiss C++ templates as being in "la-la land" are those who don't understand templates.
That's not the problem. The problem is that C++ templates are a reasonably decent template system being abused as a compile-time programming language. Templates are a set of rewrite rules, and just because a term-rewriting system can be made Turing-complete doesn't mean that's a good way to code. A decade of misplaced effort has gone into making the C++ template system work as a compile-time programming language.
Compile-time programming has a long history, mostly bad. PL/1 had a compile-time language. The
Re:Comments by an old programmer (Score:4, Informative)
What about the Go language as a replacement to C?
Go is primarily intended for writing server-side web applications that need to go fast. This is a huge market and a crucial part of Google's business. But it's a garbage-collected language. It's not suitable for writing the garbage collector itself, or for embedded applications. It's not a language you can use down at the bottom. Go itself is implemented in C, not Go.
Erlang can be used down at the bottom on bare metal, but is not popular outside the telecom area.
Renew! Renew! (Score:5, Insightful)
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.
new tricks (Score:4, Interesting)
It has nothing to do with the attitudes of younger workers. I work in a field where the oldest workers are treated with the most respect because experience, insight and wisdom are highly regarded. The youngest are most likely to treat the oldest with deference.
It just so happens that like most industries, there is consolidation in the IT industry, and that means more power to fewer companies. Since those companies no longer see the communities in which they reside as having any value beyond the tax benefits they are willing to grant the company, they have no problem cutting the oldest workers loose because they tend to have been around longer and make a few dollars more than their younger counterparts. Since they worry about age discrimination suits, they just can't say, "Get lost, old man," they create a hostile work environment, hoping for attrition.
This is one reason you are seeing such a concerted attack by businesses on workplace rules and civil rights laws. Those "age discrimination" rules are part of what they call "stifling over-regulation", along with minimum wages, child labor laws and environmental regulations.
Left to their own devices, these companies would be more than happy to see the US turn into one big Foxconn dormitory.
Re:5 Years (Score:5, Funny)
Five.
Even frozen, no more than a year. Eat them before then, certainly before 5 years go by. Otherwise you might get sick.
Re: (Score:2)
Even frozen, no more than a year. Eat them before then, certainly before 5 years go by. Otherwise you might get sick.
That's why I keep my blessed tinning kit handy.
Re: (Score:3)
Five.
Even frozen, no more than a year. Eat them before then, certainly before 5 years go by. Otherwise you might get sick.
Ulch! That meat was tainted!
Re:Depends (Score:5, Funny)
Depends on the programmer!
Bah. Continence has nothing to do with being a good programmer.
Re: (Score:2)
Depends on the programmer!
Bah. Continence has nothing to do with being a good programmer.
Disagree. My manager has told me countless times that if I'm really committed to my work, I wouldn't be taking bathroom breaks.
Re:Depends (Score:5, Funny)
Re: (Score:3)
Depends on the programmer!
Depends on what metric we're using to determine shelf life. If we are throwing them out when they start to smell, their shelf life isn't very long at all.
Re: (Score:3, Insightful)
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 ha
Re:What is there to dispute? (Score:4, Interesting)
I think this is perhaps the biggest thing, and might explain what made my dad finally burn out (at 50).
People keep re-inventing the wheel, with the same shortcomings as the previous iterations, only with 10x the code.
Back in the day it used to be possible to actually know the code, both the code of your development team as well as the code of the tools you used to produce a product.
But today? The sheer breadth of a codebase combined with it's usually short life on-market (See every version of mono producted, and every version of java past... 1.4?) has caused it to reach a point where it's senseless to put in the time to learn the cornercases and undocumented features of a library, tool, or codebase, and rather to just work around the current issue and ignore the rest because 'it'll either get fixed when it's a glaring problem, or it'll get fixed in the next version of tool X I was using.' Only half the time when one of the bugs gets fixed a new one pops up in some existing code, or a workaround for a no-solved bug. And then the mess starts all over again. Only in 2 years time it won't matter because either the dev staff has been laid off, or you're being told to do it in .)
While it's not to say none of this happened in the past (Because it assuredly did!), the amount of different code any one person was likely to run into in a few years of development was generally less than it might be today, although the odds of any one person being overspecialized or underspecialized in a group of languages is probably about the same.
People need to look into spending less time reinventing the hammer, and more time on consolidating the numerous nails that have been produced as a result of hammer-mania. Perhaps then people can get back to focusing on good development practices and educating themselves on new platforms and tools.
Re:What is there to dispute? (Score:4, Insightful)
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)
Things that are truly unique and may have a place:
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.
Re:What is there to dispute? (Score:5, Insightful)
Re:What is there to dispute? (Score:5, Interesting)
As an over 40 programmer with more than 20 years experience, I find your post offensive on a number of grounds.
I have a smart phone. More than one kind actually, and I've developed software for most of them over the years. Thank you.
I know from experience that solving problems requires that you understand what needs to be done first. I know that those who jump in without enough information end up working many times as hard as they need to. Sometimes you can get lucky and hack your way into a solution, but more often than not it will cost you dearly to maintain. You apparently don't get that.
I've programed in Java and I fully believe that it is a valuable tool for the problems it is suited for. I also know that many software developers leave school not knowing any other tool so Java gets used places where it doesn't belong. Good programers have developed many tools over the years and knows the limitations and proper applications for each. You are a one trick pony good for only one thing, but you THINK you know everything. Smart guys listen to the old farts and try to learn from others mistakes.
I've been doing Linux since you had to compile kernels to fit on a floppy, and back when getting X-Windows started involved actually editing text configuration files. I doubt guys like you know anything about this now that installing Linux is hitting return a few times. You can thank guys like me for making your life easier. You are welcome!
You may be some hot shot with computers (although I doubt it) but I've seen your kind come and go. I clean up the mess they leave, not because I'm smarter, faster or some hot shot computer guy myself, but because I can and will learn. Your kind won't stop and listen, won't learn something from the prattling on about all the past failures (and some successes) I've lived though. You haven't done anything of importance yet but you refuse to listen so you can avoid the same mistakes I made when I was your age.
You sir, need to read "The Mythical Man Month" and think about how software development hasn't really changed all that much. Sure, we may be coding Java and not assembly or JCL but at its core, the really hard part about software development hasn't changed all that much. Yea, I started coding procedurally in C back when K&R where still writing their book, but now doing Object Oriented in Java and C++ is really not that different. I've done waterfall development and now Agile in an effort to "revolutionize software development" but experience proves to me that there is no silver bullet. The hard parts of software development remain the same. But you would already know that if you'd listen to us old farts from time to time.
Go ahead hot shot. Dive in and beat yourself to death. We've seen this kind of thing before, heck, some of us had the same attitude and already made the mistakes you are going to make. We will just stand here and wait for you to come to your senses and start asking for help. Until then, good luck.
Re: (Score:3)
Very well said.
I've been down the same road as you. Although I've moved on to management, I still write Android apps in my spare time. I use Java for that, not because it's such a great language--it's pretty crude actually--but because that's pretty much what you have to write in if you're doing Android. Yes I know there are other choices, but not...really.
Now I'm literally training young hot-shots to be better programmers. Most of my effort with the brighter ones is setting boundaries. They tend to be
Re: (Score:3)
Java gets used places where it doesn't belong
When I got my degree, C was the primary language. Then Perl 4 came along and suddenly I could access system libs much faster than before. Then I realised the weak typing in Perl would never make it a mainstream language for business purposes. Perl is not to blame but crappy programmers that refuse to read manuals are. Then I switched to the OO paradigm and Java -learning OO the right way takes time. Initially the absence of regular expressions in Java was the only thing preventing m
Re: (Score:3)
You had disks?
Re: 79 6f 75 20 68 61 64 20 74 65 78 74 3f 0a (Score:3)
Re:follow the money (Score:5, Insightful)