"Logan's Run" Syndrome In Programming
Ian Lamont writes "InfoWorld has an interesting analysis of the reasons behind the relative dearth of programmers over the age of 40. While some people may assume that the recession has provided a handy cover for age discrimination, a closer look suggests that it's the nature of IT itself to push its elderly workers out, in what the article describes as a 'Logan's Run'-like marketplace. A bunch of factors are listed as reasons, including management's misunderstanding of the ways in which developers work: 'Any developer can tell you that not all C or PHP or Java programmers are created equal; some are vastly more productive or creative. However, unless or until there is a way to explicitly demonstrate the productivity differential between a good programmer and a mediocre one, inexperienced or nontechnical hiring managers tend to look at resumes with an eye for youth, under the "more bang for the buck" theory. Cheaper young 'uns will work longer hours and produce more code. The very concept of viewing experience as an asset for raising productivity is a non-factor — much to the detriment of the developer workplace.'"
Elderly?!?!? I'm 41, you insensitive clod!
Eventually people do tend to get promoted beyond programming positions.
I have no idea if I'm an outlier, but with a blind preference for intellectual depth, rigor, and creativity, I tend to see what I figured was normal: more experienced candidates often come out ahead. Not always, but often. More experience unsurpisingly equals more age. The best are often bringing decades of experience, MA or PhD level credentials, and the ineffable things that come from having been there and done that in a lot of different trenches. They often cost more (though not all that much more), and they're worth it.
I know the corporate world at large has this patrician idea about pay related to seniority - whereas I come from the pay-for-value mindset. There is a good observation in the article about older folks making more and therefore being victims of cost cutting. I'm sure this happens as well, but in my world the observation is meaningless. A senior software engineer will get a good salary - more than enough to support an upper middle-class lifestyle (albeit not at the level of an attorney or an anesthesiologist), regardless of their age. If they ask for too much, they will be unemployed; if they tire of unemployment, they bring their compensation demands back in line with their value. I find most people have a very good grasp of the labor market, especially with the advent of widely available salary suvery data.
I have a couple of friends in their 50's who joke about becoming obsolete. I associate this with actually getting tired of keeping up with an industry that reinvintents itself so often, and therefore, not keeping up. There's a trap there, too: a kind of local maxima where, for a while, being an expert in Cobol or IBM mainframes is not only easier than learning Java, but will pay more and more, as you become more and more rare. Until one day you look for your next job and it just... isn't there.
Historically IT has suffered from a lack of technical depth at the top. Companies wanted wise old hands with management experience in charge, even if those wise old hands needed an assistant to print their emails every day (true story, multiple companies). As the next generation rises through the ranks, you will have more middle management, SVP, and ultimately COO, CEO, etc types that have real first-hand knowledge of technology. Eventually the corporate world will lose some of its notortious and costly blindness towards talent, and both hiring and strategy will become more objective and less bullshit-driven.
Tired of Political Trolls? Opt Out!
When my last boss was 20 years younger than me, I changed professions... I'm not that old...
Shoes for Industry. Shoes for the Dead.
Congratulations, Ian Lamont! From now on, whenever I see a resume with the name "I. Lamont" on it, it's going straight to the trash.
Not only are younger coders generally cheaper, they also generally are more into the "new technologies" -- as a programmer gets older, it becomes almost a second job to keep up with the new technology as it comes out, and at some point I suspect that many just decide it's easier to get off the carousel and go find something else to do.
As an example, if you've been coding in COBOL for 20 years, Java can be an awkward language to learn. However, many new grads in the last 10 years learned Java as their first language. As such, even though the senior coder probably would perform better in the long run (due to more experience with designing efficient algorithms and more knowledge of internal business processes), management would likely hire a couple of recent grads rather than pay to have our COBOL programmer trained in Java.
Modding "-1, Troll" is not a proper response if you disagree with me. Try reason.
As others have already noted, the career path of technical people often moves beyond "just programming" at some point. By the time folks have reached 40, they've (hopefully) got a good sense of how to make good decisions about what products and features to develop and how, not just how to write efficient code.
While some of the technical leaders in my area do write some code, the bulk of what they are needed for is making decisions about what we ought to be doing, and providing guidance for the younger programmers or ensuring quality communication with other lead developers.
The nature of programming has changed. When 40+ year olds were going to college or studying, OOP was in its infancy, and even functional programming was more about clever algorithms on limited hardware, where optimization mattered, rather than programming interfaces and patching together APIs with a zillion features, connecting with some database somewhere else, etc.
http://www.beanleafpress.com
And it's present in many industries/areas. No one wants anyone over 40 for rock, screen writers are ignored if they're over 40, since "They don't know what it's like to be a kid."
The list goes on.
In programming, I think it's foolish. People are getting caught up on the techniques, and not the theories. Unfortunately, techniques become quickly dated, and irrelevant, while theory always will be useful
..........FULL STOP.
The summary says that it's not merely age discrimination, then goes on to say that they hire younger workers because they are cheaper, without bothering to account for experience.
That is age discrimination.
What a horrible, stupid summary.
I graduated with a degree in CS and working in IT for 7 days. It didn't take long to see the handwriting on the wall. Left and went back to school for pharmacy. A few years later and I can get hired on anywhere in an instant.
IT is a dead-end.
I'm in my mid-40s and my buddy at work is in his 50s. We run circles around little whipper snappers from R&D and standards to best practices, hands down programming, etc. To actually find someone young that has a real CompSci degree (MBA and MIS doesn't count), real experience or even a fundamental understanding of OOP, RDBMS design, security, static code analysis, etc. is far and few between. Keep on hiring cheap labour (Ranjit and Chad from Tech & Talk) and we'll keep on debugging and fixing their code!
the problem with having older programmers like myself is that they are fully tired of being jerked around
by incompetent management. if you've worked in 20 shops, and run a few yourself, you're alot less
likely to happily pull an all nighter to try to get the release out the door. you understand
that this all could have been taken care of months ago, and you went to some pains to point that
out then.
the other kind of older programmer has just given up. they know better, but they understand
that bitching isn't going to solve anything and they need the health insurance. they look alot
less capable then they are because they just agree with everything and try to get out the door
by 5.
younger programmers dont know any better, they will believe whatever you say
TFA is written by a girl!
The problem is not about Age: is about Money. You having X years of experience you want X amount of money. Managers think that they can replace that with somebody cheaper (Why you can get somebody that have experience and can produce good code better than 3 when we can get 10 from India making 15,000 a year and no benefits)
Sorry Boys and Girls we ALL are in the same boat.
P.S In the defense of Indian programmers they are in the same bad position (I think even worst than ours). Having X amount of years of experience = job moved to China. So 14,000 is OK with me and you do not have any recourse.
Please remember that is not the corporations where the problem lies. Is the rich people that benefit from the corporations (hey they have a very expensive life )
Cheers
Caitlin
Not all programmers get promoted. It's a pyramid scheme. Most will get dumped to find work elsewhere, losing seniority in the process and quite possibly having to find work in a different field.
Upper management/nonprogrammers haven't a clue about the valuable experience the older programmers have. Management follows the younger programmers as they tilt at windmills.
Kids today have it easy -- context sensitive development environments, online documentation, etc. etc.
Why, when I was your age, we had to chisel bluestone megaliths using only hand tools, and then haul those four-ton stones into a circular pattern, just to calculate date() ...!
-kgj
Across every industry I've been involved in, a good piece of advice from an old business mentor has held true:
When you pay an expert $100 an hour, you're not paying them for the hour. You're paying them for the years of experience they have plus an hour of their time.
This also dovetailed well with what a mechanic told me when I was trying to lowball him: "When you pay peanuts, all you get is monkey business."
Yes, fresh inexperienced developers aren't always gonna do things the best way but I've seen a fair amount of dogmatic older developers who insist on using old archaic non-type safe methods and languages just because "that's the way they've done it for 20 years". Sometimes is takes fresh minds to mix up the status quo and provide better solutions using newer and better technologies.
So suck it up, Grandpa.
I was once "fired" because I was the "old hand" in a department that had a sudden influx of developers over ten years junior to me. Yes, I sued and won based on age discrimination. From my standpoint, managers hire younger workers because they'll work longer hours for less pay, and are less likely to have the "encumbrace" of families to keep them from working OT, or that call them away because someone's home sick, or has to be run to an appointment. Also, the boss usually prefers people his own age who'll go drinking at Bennigans every night with him.
Lifeclocks are a lie! You can't renew! There is no sanctuary!
I am 40 years old.
I was a programmer.
I'm now a manager of programmers and analysts.
Though there are still a few people my age and older doing programming, most move on to either management or line-operation positions. That is how it seems to have always been. Yeah, I can still code and even review my staff's work on occasion, I find it more worthwhile to direct the team.
Could I get a new job in programming? Probably not. When I hire, I tend to look for recent college grads who can be molded (warped?) in my methods and processes. My manager (who's 67) thinks the same way.
The Kai's Semi-Updated Website Thingy
The article is utter crap. People look for experience first. In fact, I'd say new college grads are discriminated against.
-B
Ash and Hickory, straight-grained and true, make excellent bludgeons, dandy for the cudgeling of vegetarians.
Is the younger generation of programmers really that arrogant to think that older programmers don't know and learn new languages and coding trends? it is my experience that the best coders out there are those over 40. Not only are they on top of technologies that are current, but they understand why those technologies came to be and what they helped to improve. Many of them learned on the job, in a budding industry.
Just a few days ago there was a post right here on Slashdot asking how easy it was to cheat in CS. Based on the forum discussions, a significant number of students today get programming degrees and can't produce a lick of decent code.
This is NOT to say that there is not an abundance of exceptional young talent, there is, and they deserve good work and decent pay, but this is in defense of those who helped pave the way.
Life takes interesting turns, but the most interest is when you're off the beaten path.
I'm 59, and have been programming professionally since I was 20. The two best things for my employment are:
1) Young, inexperienced programmers.
2) "Experienced" Indian programmers.
Why is that? Because they both fuck up constantly, and thus give me lots to fix.
Young and inexperienced programmers are a delight to work with. It's great to see them come into a project all cocksure, only to be crushed by the demands of the real world. They'll spent countless hours putting together shitty software, which will always fail. Then management calls me in, and I fix their code. Mostly this means rewriting it all from scratch. Regardless, I make about four times what they do. Then again, I deliver working code.
"Experienced" Indian programmers and "software architects" are the next best thing. They're like the young and inexperienced programmers, but their fuckups are much, much bigger. That means the customer's desperation is much greater, and I can make more money. What's best about these guys is that they often haven't produced even a line of code. They just spew out UML diagram after UML diagram. I look at the diagrams, talk to the users, and it becomes obvious what should be done. I sit down, implement the software, satisfy the customer, and collect my money.
If you read this article and are thinking about your career, then you are young. If you are thinking about a naked Jennifer Agutter, then you are old.
Let's face it, a lot of the code being written doesn't require 20ish years of programming experience to do correctly. Obviously, there are exceptions, but more often than not there are other aspects of software development that benefit more from that much time in the industry than simply doing all the code monkey work. If you're being paid the type of salary you should be paid after being in the industry that long, employers are going to want to get something out of you that they can't get out of someone with much less experience.
So, if you want to be writing code at 40, be able to write code that (most) people who are 20 or 30 aren't able to or be willing to work for the same salary you did at 20 or 30. It's really as simple as that.
Steal my band's record! Seriously,
There is a third kind of older programmer: disillusioned with crappy management but still wanting to do development, they strike out on their own. They either go freelance as some sort of contractor/consultant, or found their own company and bring in other people to do the business side of things while they stay technical.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
I was once young enough to work 16 hour days. Now I know better. That is the entirety of the "problem".
Literalism isn't a form of humor, it's you being irritating.
As stated elsewhere, one cause is probably just burning out and moving on to something else. Or moving to the position of manager who's making those hiring decisions. Or, if you're actually good at software engineering, moving into consulting.
ftm, if you're a great developer w/ lots of experience, you probably also have a pretty wide network. The last 16+ years of my career, CV's have been just a formality (if required at all), cuz I already knew the hiring manager.
007: "Who are you?"
Pussy: "My name is Pussy Galore."
007: "I must be dreaming..."
... you should have finished the Perl script that does your job / earns your living. Unless you promoted yourself to management, in which case I pity you, fool.
"I love my job, but I hate talking to people like you" (Freddie Mercury)
I never tell my age to anyone at a job. I've seen great 50 year old developers squeezed out because a business major thinks they can't be current, "since they learned on a punch card machine".
While an anecdote, at 2 places I have worked, there is a perception (I can't say if it is true or not) that older (particularly mainframe) programmers are unable or unwilling to transfer their skills to the client/server or web platforms, and that they are unwilling or unable to learn newer languages/design patterns. Again, I can't say in a generalizable way if this is more-or-less "true" or not, but I think the perception is harmful to the older class of workers whose technology is being phased out in a lot of enterprises (and industry sectors.) For some programmers, there is also a tendency to "self-select" for specialization based on a particular tool chain or language preference. I know I could be a Java programmer, but I am so unfamiliar with the API that I'd be fairly ineffective until I got up to speed. I don't think many workplaces tend to frequently lower performance goals for this sort of learning curve making programmers avoid developing a broad skill set and focus narrowly. IT also tends to differentiate between web programmers, mainframe gurus, DBAs, server managers, etc. causing a further territoriality and specialization. I would also argue that the rapid pace of obsolescence makes programmers particularly vulnerable to this perception (or reality). In industries where the skill set is more static, or there are minor incremental changes or a large number of legacy installations (such as in HVAC repair or general construction) there is less of a degree of specialization and rapid skill set changes.
Forgive my spelling from time to time. I'm often posting during short breaks.
here's a trap there, too: a kind of local maxima where, for a while, being an expert in Cobol or IBM mainframes is not only easier than learning Java, but will pay more and more, as you become more and more rare.
Why they are paying a Cobol programmer more is for two basic reasons.
1. Not many Cobol programmers around.
2. Paying you for the opportunity you will NOT take getting into a more modern language. They are paying you more because it will be harder for you to find work later on.
If you are clever/lucky enough to be able to transition anyway, then more power to you. But deriving maximum benefits from timing the switch to a more modern language is not likely for average guys like me.
http://www.maxineudall.com/2010/02/should-economists-be-sued-for-malpractice.html
and if you push them all out youll find yourself tripling indirectly their salary as you employ independent business consultants to troubleshoot some of the most malignant and complex problems in computer programming to which solutions are only gleaned once one has become seasoned and experienced with writing millions upon millions of lines of code. the triangle is civilization: fast, cheap, good.
Good people go to bed earlier.
How are any of these generalizations any different than any other industry? There is age discrimination by some in both directions. Older workers simply take tired old ideas and repackaged them as something new. Younger workers think their ideas are actually new and expend a lot of effort reinventing things they are not old enough to know already existed. The cycle is nearly complete. Cloud computing is a repackaged version of centralized mainframe computing. Actual advances in industry are much more gradual than people like to believe.
Right? Why's everyone laughing?
"Have you ever thought about just turning off the TV, sitting down with your kids, and hitting them?"
The phases of programming (and lots of other things) are:
- Disgruntled
- Jaded
- Bitter
- Postal
- Indifferent
The Systems Development Life Cycle can be thusly described:
- Wild Enthusiam
- Beffudlement
- The Disaster
- The Search for the Guilty
- The Punishment of the Innocent
- The Promotion of the Uninvolved
(yes - 45 year old programmer who is now a pointy haired bossman)
Brawndo: It's what plants crave!
Good workers are promoted out of their jobs and forced into management positions, this is a problem.
Further it still seems that coders are accounted on the number of lines they produce instead of the quality and thoroughness.
You can see this in things like 500MB of crap that is mandatory with a driver installment of your HP scanner.
It is very hard for managers to see the quality of coders that just want to keep growing scales inside their programming jobs, while making artificial caps on these scales and forcing people that want to grow further to do managerial work instead of what they really like to do and be good at. Often people that are forced up do their managerial work not really good because their hart is not in that.
I know a decent amount of HTML, but that's about it as far as my programming knowledge is concerned. I'm looking to get into a programming language as a hobby, with no plans to pursue it as a profession. What would you all recommend I look at? I've gotten conflicting opinions on Ruby, PHP, C#...what would you suggest (again, just as a hobby) and why? Thanks for the time.
Living With a Nerd
Approaching the age of 40 at break neck speeds, I am going to find out how true it is that there are no old coders.
But frankly, I don't think it is going to be a huge issue unless 40 turns out to be a really magical number. I have had no problems before. Granted, junior positions are no longer open to me, but then, why would I want to?
I have found that at least in Holland there is a real shortage of good web developers, people who can not just put up a website but maintain it and worse, debug somebody elses mess. There are tons of LAMP developers it seems, and yet companies can't find them. But you got to be able to deliver, how many of the programmers who complain they can't find a job really just aren't any good?
In fact in an interview Backbase, an small but international developer said in "De Pers" that they were so desperate for experienced developers they had put a freeze on hiring juniors because they did not have the people to train/lead them.
Yes, some companies might prefer to hire someone young, but these tend to be the grindhouses of the industry, were they churn out project after project with no quality for a low low price. You all know them, the companies that do government IT. If you IT department still insists you run IE6, then you got one of them.
But there are countless more companies that do try to work for their money were experience and maturity are needed to keep the enthusiasm of the younger developers in line. There has to be someone who can actually debug a third party app if the shit hits the fan and do it without constant hand holding. There is in development and certainly web-development a lot of grunt work that is really a waste to put a senior on, but I have seen what junior's today are 'capable' of. Or rather not capable. It is the parts of a project that go beyond the "teach yourself X in 24 hours" books or even school. It is the years of experience encountering all kind of problems that turn a junior into a senior.
A smart company therefor has both kinds, the juniors for the grind work and to bring in new ideas, the seniors to keep it all running smoothly.
And if your company ain't smart enough for that? Move on as fast as possible.
BUT I just re-read the summary AND the article and there is a problem. The article is about IT-workers while the summary is about programmers. I have started to notice that there is a difference to the point that developers really aren't part of IT at all. I always thought we were, but others disagree.
So, is the article about how their are no old help-desk jockey's? And could this be because there is a job for senior dev's but not for senior printer unjammers? Just what is IT? A 60+ senior developer is a respectable position, if you are 60+ and still have to install new PC's you screwed up and a kid can do your job cheaper.
In conclusion, I am not all that worried. Any company not willing to hire a 40+ developer with over 2 decades experience on countless successful projects, I wouldn't want to work for anyway.
MMO Quests are like orgasms:
You may solo them, I prefer them in a group.
Its in the energy industry where many of the developers have domain-knowledge degrees like geology. The management attempted offshoring a few years ago. But it was an utter failure due to the lack of domain-knowledge developers. China and India college training is too specialized.
I've seen similar issues in vertical industries like aerospace, utilities, oil companies which are not attractive to recent college graduates. Boomer dominate. This is becoming an issue as boomers retire. But I call it "job security".
I'd say the only drawback is you dont see people putting in more than 50-hour weeks at the most. This would be suicide for a gamer or F/X company.
"Cheaper young 'uns will work longer hours and produce more code."
It's not necessarily useful. Some young 'uns produce pure drivel.
Perhaps we should raise the age for which the older IT pros are sent to carousel.
Take them both. One is a junior, he might know his own tiny little environment, but everything else is going to suck, while the experienced guy can pick up a new language in a flash and in the meantime keep the young guy from making to many basic mistakes.
MMO Quests are like orgasms:
You may solo them, I prefer them in a group.
I tell ya, hauling a four-ton obelisk upright using rope and logs and manual labor gives new meaning to the word "rollover" ....
-kgj
Companies are hiring people that haven't learned anything new in 20 years because of their "experience" given that they're willing to work for the same price offered to anybody else. Assuming the work hasn't already been sent to India/China/Russia it's all about cost because hiring managers know that they don't know how to figure out which applicant is better and they simply lean towards "experience" because they've always thought that meant something in their career paths plus it simply means older and frankly more controllable if they may have families and therefore are less likely to pick up and force them to restart again.
I recently read Peopleware, where they said that in their coding war games experience had no correlation with performance. If experience costs more and has no benefit in development, why would a firm be willing to pay more for it? (Caveat: Maybe experience has beneficial effects outside of raw development.)
Is that what that glowing thing in my palm has been trying to tell me the last 8 years?
"To those who are overly cautious, everything is impossible. "
I know a decent amount of HTML, but that's about it as far as my programming knowledge is concerned. I'm looking to get into a programming language as a hobby, with no plans to pursue it as a profession. What would you all recommend I look at? I've gotten conflicting opinions on Ruby, PHP, C#...what would you suggest (again, just as a hobby) and why? Thanks for the time.
PowerPC or MIPS assembly. After that, you'll understand what a computer does.
Then Common Lisp or Scheme. After that, you'll understand what a programming language does.
Then Perl. After that, you'll understand the alternatives.
Then C, and you can write some real code.
I've had this sig for three days.
The summary says that it's not merely age discrimination, then goes on to say that they hire younger workers because they are cheaper, without bothering to account for experience. That is age discrimination.
That is not age discrimination. Younger workers are hired because they are cheaper, not because they are younger. If two people cost the same and the older of the two was better-qualified, but the younger was hired anyway, that is age discrimination. I can see why you would be confused, since younger people tend to also cost less.
Unfortunately, programming experience doesn't linearly scale with code quality. Eventually, the gain in code quality tapers off, and the more-experienced higher-salaried employee is not worth paying extra for. There are exceptions ... some people are just phenomenal developers and are hard to replace ... but this article is not about them.
Yes, I had to get into management because of this. And here, I find that most of management have absolutely no clue of reasons behind what they do. They simply ape what they see people doing that seem to know what they are doing. And most programmers I have seen lately are also apeing and making noises like something they saw on youtube or found on google. All the buzzwords and none of the ability.
in teh igloo, floating on an icesheet in the atlantic, preferably drifting to France -- Tokyo style.
Two years seems to be the developer half-life in most shops. By that point if you're worse than average they've canned you, and if you're better than average your responsibilities have grown to the point that you're spending as much or more time dealing with cross-team organizational bullshit as you are doing what you actually love (writing code) and hence wanting to quit. :) The thing is, I think every gig has problems, and often they're the same tedious set of problems, but people jump in the hopes that maybe, maybe the grass will actually be greener THIS time. (After a decade or two of corporate culture, further, it's all too likely that the truly idiosyncratic individuals will have accumulated enough capital and enough disgust with the system that they give it all the finger and go run a bar just to pick one prominent example.)
The other direct motivator that comes to mind is money. All too many shops hire you at a rate that approximates more-or-less-if-you're-lucky Market Rate for your skills and so forth, then want to give you sub-10% raises for ever and ever thereafter. Ergo it's easier to ramp your salary in tune with your experience by jumping periodically. This is perhaps most prevalent in the first ten years of a programming career as there are big deltas at roughly two and five and seven-ten years of experience as you start to [potentially] hop up the org chart some from junior to regular to senior dev.
So in short I think that getting fed up with a given situation and taking steps to change it for (hopefully, maybe not, probably not... but hopefully) the better is both normal and healthy. Or are you of the opinion that backing the same crappy horse for years is the best way to go through life?
News for Geeks in Austin, TX
Really, I work less and do more. And that whole "in the groove" thing the summary mentions? Just don't bother me no more. I answer the phone, deal with e-mail, help juniors with problems, monitor several projects and mediors and debug stuff nobody else can figure out all while drinking coffee and without working insane hours and no longer needing to study night and day to keep up-to-date.
One of the best things you can learn? Use your juniors to keep up-to-date, if it is important enough, they will figure it all out, you then learn from them, ridicule them a bit for the mistakes and oversights they made then promote then ones that made the least and voila, senior/CTO salaries for a few hours work a day.
Really, I am never impressed when someone works overtime. 8 hours is more then enough to do a decent job, why do you need 16? Any boss that wants lots of overtime is doing the old IBM method of paying programmers by the line.
MMO Quests are like orgasms:
You may solo them, I prefer them in a group.
The entire article is based on "rebutting" an unfounded premise: that something "pushes out" programmers older than 40.
This has not been proven by the article.
It makes an unfounded assumption, and then rambles on with more unfounded principles and guesses.
The writer (if not the editor) should be "encouraged" not to submit any more articles there.
data point: I have a degree in CS. I started my career as a programmer.
I dont *want to* be a programmer any more. (and I made that decision when I was 30, let alone 40)
Not because I'm no good at it: i'm actually a damn good programmer (*cough*). I just dont want to do it for 40 hours a week any more.
The politics is much lower on the production support side, which gets you out of most of the BS. No requirements drift, fewer communications problems, no crunch-to-meet-the-deadline, etc. So the move's been good for me.
But I've also noticed that my tolerance for BS in every area of my life has dropped as I've aged. Like the time when a grocery clerk had some apples and a box of cereal on the weigh station while she was weighing the apples. I pointed out to her that she was weighing the cereal at the same time as the apples and the weight / price would be wrong. "No," she indicated, "the scanner will read the cereal and get the price right." After a couple of minutes a manager came over, removed the cereal and weighed the apples. I left before she explained the issue to the clerk, who was still wondering how the apples dropped by a pound.
It's become quite a struggle, as I grow older, not to stand up and shout whenever someone makes a decision solely for political reasons, or when they don't understand the value of training employees of any age bracket, or when I work for someone who's incapable of making a decision. In my younger days it was easier simply to ignore it, but now in my late-50's it's sometimes quite an effort to ignore the BS that comes my way.
People talk about how you should "pick your battles." Walking away from the BS, on my terms, was my way to pick my battles.
For hobby use, with no particular application in mind, I'd suggest learning Python. If you enjoy that and want to get more serious about programming, then learn Java, C# or C++. If you have in mind WHAT you'd like to program, then different advice may apply.
Python is well designed and scales up reasonably well (unlike, say, Perl, which does neither). It's more fun to start with an interpreted language due to the instant feedback you get.
I don't really have anything in particular that I want to create, I've just always wanted to know more programming languages than HTML and the BASIC-like language on a TI-83. Thanks for the suggestion!
Living With a Nerd
A related issue is the 'downtime' associated with some productive programmers. I have a really good, really experienced programmer that does work in 'cycles.' Super productive, head-down, jam until fixed/completed, then a period of 'less productive' research, a proclivity to chat, and some fooling around. Overall, more productive than most other programmers I've worked with plus high quality code. Outsiders (even 'IT outsiders' who don't understand programming) look and question this guy's productivity and wonder if he should be replaced with a less expensive option (i.e. 'hungry' newbie). Experience helps you see things the new guy won't and, in many cases, helps you be more productive instead of busy flailing around.
mu
The notion that you can't develop software at an advanced age is demonstrably false.
The periodic stories on Slashdot about programming careers being over when you get too old (over 25??) are amusing to me. I am 63, and in the last year have gone from C programming to Java programming and am having a great time. I work in the space industry where domain knowledge counts a great deal, so I find I am a sought-after, scarce commodity. I am deveoping GPS navigation systems and Kalman filters for space vehicles. I am hardly unique in my shop.
That said, pressure to leave technical work and move to management as one ages is strong. I made a career decision to avoid management but have had non-management technical lead positions for many years. The key to doing this is to keep one's expertise fresh. After a few years out of hands-on software development it is very hard to get back in. Another tactic I have used to keep going is to work on open source software after hours, which has kept me going during times my work was less technical.
While there is no doubt that mental capacity diminishes with age, there is a use it-or-lose it aspect to programming facility (or other mental skills) as you age. Voluntarily giving up technical work is a far bigger factor than diminished capacity with age. I make a point of constantly tackling tough intellectual problems, and, equally important, keep physically fit. You can find me at the gym or on the running trail daily. It's tough to keep sharp mentally if you don't stay fit, sorry Slashdotters!
There are a lot of things that do get tougher mentally and physically as you age for sure, but self-imposed and unjustified expectations of decline are the main cause of loss of ability.
Experience really helps make great programmers get even better but I have also found that mediocre programmers merely become set in their ways. I know some network admins still torturing their Novell networks into doing stuff that quite simply nobody does anymore. They were crappy admins 20 years ago and now they are crappy admins with some serious seniority. The same with programmers. I have met old crappy programmers still trying to milk the lotus notes cow dry. And the worst is when you get really experienced hard core crappy programmers who think it is a good idea to architect systems where you start by reworking the Linux kernel (using some assembler) to accomplish things that you literally could do in python and not push python too hard. (Didn't make up the last line).
I see this with people my own age, and people just getting out of college. There are programmers who keep up with new technologies. Who are always experimenting in their free time. These people are always employed. Then there are people who learn one technology and then begin their slow descent into obsolescence. This seems to be the majority in computer science unfortunately and I've actually seen a few programmers whose refusal to learn new technologies had them exiting the profession before they hit thirty.
I worked with a programmer in his sixties two years ago who was doing all the latest Ajax/CSS/Java stuff. Sure he'd been a cobol programmer, and a C programmer, but he had learned the new dominant technologies and still had a job. I've seen plenty of discrimination in job interviews, but it's generally snobbery about preferring one degree over another, or one company over another. I've never seen "old" used as a reason. That said, we don't call Cobol programmers in for interviews for Java jobs. I don't really think that's discrimination though.
Wow! True to /. standards, it doesn't look like anyone, not even one person, bothered to read the article, not even the original poster!!!!
The article says EXACTLY THE OPPOSITE. It says that older programmers are less likely to be unemployed and people being paid higher wages are less likely to be laid off.
I jumped out of being a professional programmer, once I found out that it was taking too many hours away from family time.
When I started as a programmer, was newly married, no kids, didn't mind long hours, and giving the job priority over home time.
Started a family, then once I realized I wasn't getting to spend time with my little ones: career change.
No regrets, but I do miss the self-image of being a professional computer geek :)
Uh, Linux geek since 1999.
I would second the python vote, all around easy, pleasant, elegant language that runs on just about everything. I know
every single major language but python is usually the first thing I grab for in most situations.
Got Code?
By the time they hit 40 they either go crazy and jump off a bridge, or they have a heart attack from the stress.
Now, admittedly, I'm an independent business owner and computer consultant. But, that means I have to sell myself to every prospective client each time they're first introduced to my company and my services. I build systems, providing "contract CIO" advisory services, write the odd special-purpose program (or modify one for a client's specific needs), and all for a fee I can characterize as "a pretty penny." Age discrimination is, in my opinion, in a convenient excuse for not staying abreast of the latest advances and tools. I'm spending my time, just as this is being written, figuring out the ins'n'outs of Windows 7, so I can do a better job for my clients, whom I expect will be upgrading over the coming months. My erstwhile competitors, aged 30-50, are still insisting the only solution for client problems is a wholesale reinstall of Windows XP Pro. Most people peg my age at "mid-50s." Is my appearance a bonus...or a consequence of my insistance on investing hours every week in learning new things and in keeping my mind "fresh."
The only comment this 49 year old is that I produce twice as much code as the youngens in my 40 hr work week, than they do in their 60 hrs (yes I do have a lot of domain knowledge to go along with some experience and libraries I have developed). I actually hit my timelines, give reasonably accurate estimates. But only earn 30% more. Then again, I have three department heads arguing over who gets me next... My favorite was a contract I did where the company policy was to hire 34 NEW graduates and pay them almost nothing with the monkey-bible theory. I made a TON of money when they need to call in some experience to get their software to work. I wish more companies would do this :)
...I have a couple of friends in their 50's who joke about becoming obsolete. I associate this with actually getting tired of keeping up with an industry that reinvintents itself so often, and therefore, not keeping up. There's a trap there, too: a kind of local maxima where, for a while, being an expert in Cobol or IBM mainframes is not only easier than learning Java, but will pay more and more, as you become more and more rare. Until one day you look for your next job and it just... isn't there....
This is exactly what happened to me. I was a programmer at Digital Equipment Corporation from 1975 to 1992. I got used to DEC's languages and procedures, so when I was laid off I my skills were irrelavent to the market. I got a non-programming job supporting DEC products, and today I am a temp installing Microsoft Windows Vista on behalf of Hewlett Packard. I have taught myself the newer languages, but employers are looking for recent experience. A 64-year-old programmer with no non-DEC programming experience since 1975 is unemployable in the current market. Does anybody have a use for someone who remembers PDP-1 assembly language from 1963?
I'm the same age Bill Gates and started coding the same way: teletype to nearby college from my high high school. I've noted two changes in coding ability over the decades: (1) I could keep 20-30 pending ideas (features, bugs) in my mind while coding when young. Now I use a notepad for this. (2) I haven't done an all-nighter in a while. But 10-12 hour sessions still happen.
Other than that I can still devour a language manual and do useful coding in a day. And I have a huge repetoire of ideas which go in and out fashion over the years as hardware and software evolves. Much of design is "deja vu, all over again" to quote a baseball philosopher.
Remember, when blaming "they" ("they do this","they don't know that") there really is no "they".
It's different executives each time.
Fundamentally, it is up to old programmers to start their own tech companies, so that
programmers can be given the gift of not having to work for non-technical managers
who don't understand what is important in programming ability and programming environment.
Google. Geek executives. Need I say more?
Where are we going and why are we in a handbasket?
Hmm. I'd like to call a mild foul on this statement.
Are you saying you look at the UML models, ignore them, and then just talk to your users, or that you look at the models, and based on what you've gleaned from them, talk to your users, get to the heart of the matter, and start coding?
If it's the former, then why bother even looking at the models in the first place? They're messed up, as you say, so ditch 'em.
But if it's the latter, then at least part of the reason why you're able to be so effective is because you're using somebody else's work as your starting-point. Hardly seems fair to say they're "fuckups", when you're basing your work on theirs.
"We receive as friendly that which agrees with, we resist with dislike that which opposes us" - Faraday
57 years old...
35 years, and NO Cobol (basic, assembler, Fortran, C, C++ C#, VB.NET, SQL(Oracle/SQL Server), Clipper, dBase, Windows, Mac, Unix/Linux, et...). I'm the guy you call when there is no one else to call.
I've been through the discrimination thing.
So, they can hire all of the 'young guns' they want. When they screw it up they can then hire me as a consultant, pay the big bucks, and get it straightened out.
Yeah, I am that good.
Most managers just don't understand. You either pay now or pay latter. I don't care; they will pay me sooner or later...
Programming is a young person's game. In the beginning, it's exciting to have this fantastic machine bow to your every command. After 20 years, however, I had done everything I'd ever wanted to do in programming. I was more than happy to let the next generation take over.
What I became interested in was moving up a level in abstraction, and I got into modeling and architecting designs rather than executing them. Seems like a fairly natural progression to me, so yeah, I'm not surprised that the number of developers 40+ is small.
"We receive as friendly that which agrees with, we resist with dislike that which opposes us" - Faraday
We just filled a senior level programmer position with someone in their 50s. This person had a great resume, and did an awesome job in their interview - blew pretty much everyone else we looked at away. I'd say he's easily 1000X better than the last young intern we had (now a grad student in CS). I'd say most of the programmers here are in their late 30s to mid 40s. A few are older (50ish). I'm a young one here, a "senior" software engineer by title at the age of 30.
We're actually considering going after some young blood and spending the effort to mentor them because we have such a hard time recruiting older developers.
Yes but the industry is also young. I think as it matures it will accept constant wisdom over spurts of creativity just like all other engineering disciplines. The younger generation gives a little too much "Yes! Yes!" and not enough "I'm not sure".
On a side rant - The confidence coming from young programmers is, well, ridiculous. I was hot shit when I was in coding my 20s . But I grew up. Now I'm just okay at what I do. By the time I'm done I'm convinced I won't know shit.
I hope to God I'm programming after 40. I'm just not sure I want to be doing it for someone else by then.
I have observed the opposite. The young 'uns want to go home early so they can party and come in late 'cause they partied last night... And at home, when I'm punching in some extra hours, I only ever see old farts still on-line.
So I'm 54 years old - and I've been programming since I was 14 years old. I have no problem getting good, well-paid jobs as a senior C++ programmer and lead software engineer. Not every company needs someone with that much experience - but those who do, seem to value what I have to offer.
Keeping up with modern technology is something I have to consciously have to do - but anyone over the age of maybe 25 needs to do that. If you're 25 and you haven't learned anything new since you were in college - then you're in trouble LONG before you hit 40.
For about 20 years I've been trying to get -into- the field of professional programming - but due to being geographically isolated location it's been ... difficult.
I'd say age isn't the only factor.
A resume doesn't have to date you. Anything you did more than 10 years ago is probably no longer relevant. I'm 39 and I've been making money from coding since I was 16... I am sick of programming... actually I was sick of programming 10 years ago, but it still pays the bills. The best thing to involve yourself with is the stuff that can't easily be outsourced to India... e.g. iPhone software programming, .NET programming.
I can't fault management for not wanting to pay for retraining
Any decent-sized software system is going to require a large amount of training specific to the system at hand. Perhaps, if the thing's all been built from scratch using the technology du jour, then maybe that recent grad will be more valuable than someone with real-world experience working on a large system that developed (shall we say) organically over a long period of time. But most systems are real-world cases.
The problem is that upper management wants to 'acquire' cheap young programmers like widgets. They can't get it through their thick skulls that after these kids finally become useful, they want raises or they're gone. Lather, rinse, repeat. At the back of this mindset is an eventual outsourcing job, where the turnover problem gets 'outsourced' too (in the 'not my problem' sense, not in the 'not a problem' sense). The fact that the resulting project fails 30 to 40 percent of the time is irrelevant. Management types have perfected the art of 'failing up'. They're off to bigger and better things long before the train wreck they set in motion actually occurs.
Posted from my Android phone. Oh, I can change this? There, that's better...
I was once young enough to work 16 hour days. Now I know better. That is the entirety of the "problem".
My friend Amy, whose dad would be a year younger than me had he lived, is amazed by my ability to come home from work, drink with her until the wee hours, and get up and go to work the next day. Perhaps that's because I was never stupid enough to work a 16 hour day -- I don't live to work, I work to live. I've been like that since I started working at age 16. I'm 57 now and look ten years younger than friends who are ten years younger than me.
Hell, I once passed up a promotion just to not have to work overtime. Money is just a tool, and one should never let his tools get in the way of what you obtained the tools for in the first place.
Free Martian Whores!
No carousel jokes? No runner jokes? Besides, it's 30 in Logan's Run. None of you fools mention being burned out either...HELLO!?!?!?!
If you're comfortable with HTML, I'd go with PHP. It's basically a scripting language that makes your HTML do dynamic, interesting things. Tie your PHP learning with some sort of SQL database and it's not too complicated to make fun projects that are useful. There are a million good PHP/MySQL books out there. I'd take an hour or so, go to a bookstore with a large programming section, and grab a handful of books. Read the first chapter or so from them and find one that has a writing style you will enjoy, then go home and start hacking. The PHP/MySQL stack is nice because it's free (both as in beer and as in liberty) and there are lots of great resources on the web.
I'm using all of my mod points to mod ancient memes down. Please join me.
...and I am always amused by the youngsters who think they know more than their elders. It's particularly bad with Gen-X, which seems to have grown up with a chip on the shoulder that "people in the Boomer and WWII generations are all stupid, and everything they did is crap."
Yet, now that Gen-X is hitting 40, it doesn't seem to be such a good idea to be smart-ass contemptuous any more.
The problem with assuming that Boomers don't know anything about OOP is that they are the generation that invented OOP. There's also a lot that they know that Gen-X never learned.
(Disclaimer: I'm a systems guy, not a programmer, but a very similar truth holds for us as well when it comes to age discrimination.)
I'm only 35, and I'm starting to see this creeping in on me also. Here's a couple of random observations I've actually (not anecdotally) experienced:
I only see a couple solutions. A concerted effort could be made to make managerment aware of the actual cost of a project vs. the salary differential. I doubt that will work. You can also become one of those consultants, and get paid loads of money to clean up messes. However, that's not for everyone...it requires tons of hard work, business savvy and is not at all stable. Try raising a family with no health insurance and a non-guaranteed income stream, especially in a high-cost-of-living area.
I admit that I'm pretty lucky. I've managed to land at companies that don't seem to mind paying a little extra for someone who really knows their stuff. The price of admission for jobs like that is the willingness to invest in yourself constantly. Taking classes or buying software/hardware/books for training, even on your own time, is the best way to keep current. That way, companies get the best of both worlds...someone who knows the latest tech, and knows enough not to implement something half-baked because they want their weekends free. :-) Unfortunately, that stereotype of the COBOL guy sitting in the corner has a little bit of truth to it, and it means we end up gettting painted with the same brush.
One other choice would require a much different mindset than there is now...accept a lower salary and make up the difference by saving and investing carefully. I've been doing this anyway, because I know there will come a time where companies stop paying for IT talent and I'm going to be forced to take a huge paycut. Everyone I know, young or old, spends money like their income is never going to decrease. Live within your means so you can last through the bad times that are coming with the next wave of globalization.
and are less likely to have the "encumbrace" of families to keep them from working OT
I was 21 when my son was born (33 now). I've been wondering if, when I get to almost 40, I should be sure to casually mention in interviews that my only child is in college, just to head off the assumption that I have a school-age kid.
The value of experience is very hard to explain to a person whos choices are, "Do I please my investors and get a 7 million dollar bonus this year" or "Do I invest time and money in a team that can do this right the first time". For them, younger workers means more cogs (lines of code) off the assembly line, and those young engineers often don't have the experience to know any better. That's just how bean counters think.
My advice, try to find work at a company that isn't run by an MBA (unless they were an engineer first).
I'm nearing 60 and have a vast experience programming all kinds of stuff, especially control systems, including satellite and other very critical ones, and the only reason I can keep programming is because I know obscure proprietary systems like AMX, Crestron, Alcorn McBride and so on. I often get offered system administration and similar jobs but programming in C, Java and so on never, ever. And it's not money as I'm ready to program for 1000 euros a month, even less than younger people.
As someone else has already pointed out, the problem is top management that, at least here in Spain, are completely ignorant of technological issues and believe everything they see in crappy movies. They are not even capable of using Internet: they have a secretary to do this for them.
In my opinion, experience counts for more than anything else in software development. I am a 42 year old developer who has been programming profesionally since I was 18. I think it was at least 10 years before I would have called myself a true professional developer. Younger guys often have tremendous talent, but not the insight that the additional years add, not to mention the lessons learned. Almost all the newer platforms are simply iterations or maturations of existing development languages and platforms, having the experience lends itself to much quicker consumption of an environment and project.
Look, anytime you have HR (or anyone non-technical) hiring programmers you're going to have trouble. A technical candidate's value can _only_ ever be accurately evaluated by a more-senior technical person. If you're hiring any other way you're just buying by the pound.
Frankly, any organization that delegates its technical hires to HR is effectively saying "we don't need high-quality programmers." In that case, hiring young, cheap workers is probably the right move. I don't see the problem here.
While some people may assume that the recession has provided a handy cover for age discrimination, a closer look suggests that it's the nature of IT itself to push its elderly workers out... inexperienced or nontechnical hiring managers tend to look at resumes with an eye for youth, under the "more bang for the buck" theory. Cheaper young 'uns will work longer hours and produce more code.
I think I just read the definition of age discrimination.
A better way to summarize the article would have been: "While some people may assume that the recession has provided a handy cover for age discrimination, a closer look suggests that IT managers use age discrimination with no excuses from the recession.
The 30 years of COBOL, RPM, FORTAN, etc. with no other technologies says to me this is a one trick pony programmer. They did one thing, were likely okay at it, but the fact they never took an interest in new technologies is a huge red flag. I start to question how good they really were at programming in the first place if they didn't have any other interests. You can't just throw that guy like that into a new programming language, in particular if they don't have OO experience. A college hire is a clean slate and already has the basics of OO design patterns.
I recently hired an older fellow for a new language job. He brought in sample apps he'd written on his own time, walked through a code review and was able to talk about core elements of many languages with authority. That guy is the exception and not the rule of old programmers.
Sort of related to the COBOL comments here... COBOL's now been replaced by other languages, which in turn are going to be replaced by other languages, etc. And there's the rub: it's a treadmill. For a few years I was doing Lotus Notes, web, and database development (cue the Lotus haters in 3... 2... 1... - I actually liked it). It was a fun job, but... trying to keep my skills up to date was a real drag. Notes itself evolved significantly over time, web development changed very significantly with the advent of stuff like various revisions of CSS, XML arrived on the scene, Javascript, LotusScript (the Lotus equivalent of VB), Java, various databases, LDAP... the more stuff I learned, the more I needed to learn. And oh, by the way, I needed to do this while I was working full time. That was fun for a while, but it eventually wore on me. I finally moved on to a new line of work for unrelated reasons, but I won't deny I was a little relieved that I could get off the new tech treadmill before I fell off it. I was not quite 40 when I bailed.
When I was a PC technician in a corporate campus, it seemed obvious to me that the senior technicians could solve the most difficult problems tens or even thousands of times faster than the inexperienced ones. No matter how intelligent the inexperienced tech is, he's got to spend lots of time researching a fix, and maybe he doesn't even know where to begin looking. There's really no theoretical upper limit on how long a fix could take. Compare that to a guy who just knows the fixes from memory, or at least has some experience with similar problems to help his intuition. He could literally fix something in a few minutes that takes the inexperienced guy weeks to figure out. It drove me nuts that the senior techs were looked at as managerial assistants, when it was obvious that their most effective use was as a Q and A resource for the other technicians. Apply this concept to programming, where you're dealing with bugs, problems that the developer has essentially created himself, so they are ALL difficult problems, and experience becomes even more valuable. Not to mention the experienced developer's better ability to avoid creating bugs in the first place.
I like coding well enough, but don't foresee myself still coding in 25 years. I think that's a pretty common feeling among young programmers.
The Institute of Incomplete Research has determined that 9 of out 10
Well, of course, I do more than write Perl. Been doing that for over ten years.
I also deal with web stuff, like explaining to a co-worker that it is actually possible to do an HTTP re-direction while including a cookie in the request.
And I deal with the usual database CRUD code. I'm using DB2 now, before that I spent five years each on PostgreSQL and then MySQL.
And I know enough about SysAdmin stuff to set up an NFS server and configure Apache.
And before forex, I worked in finance, pharmacy management, robotics and data communications. And before Perl I wrote C and assembler for 15 years.
I'm still *way* too fascinated in solving technical problems and writing great code to think about doing something else.
Googles extraordinary set of benefits were designed to keep employees happily in their offices 24/7.
If I had to put a number on it, I'd say that about 70% of all software development change is merely just fads: change for the sake of change. Only 30% is actually improving the state of the art. If nothing changes, vendors don't make money on sales such that there is bias in the industry to hype new (different) stuff.
It also creates a positive (reinforcing) feedback loop where developers feel they have to keep hopping onto the Next Best Thing in order to keep up with the iJoneses.
One can indeed get tired of seeing the wheel reinvented 20 odd different ways and most of the operation/function/methods are re-combinations of old ideas in new syntactical packaging with slick new or weird names. Is "a.plus(b)" really better than "a + b"? Should we throw out everything from before just to get it? Should we do it just because everyone else is doing it?
If the "new" ideas were scientifically tested to PROVE they are better, then one may feel better of about such changes. But such rarely happens. Some popular blog says "Slugs on Rails" is super neeto and makes you 10 jillion times more productive, and suddenly everyone and their dog is buying some a rushed-together copy of "Agile Nifty Slugs on Rails in 7 Minutes While Underwater" and crashy word-overlappy websites or software is released using it.
Of course only the young guys want to fix such messes; they are the only ones duped into thinking it's God's Code because it uses Shiny New X. Us oldbies want so solve real problems, not invented problems.
There's a reason new software keeps being written in COBOL: it will be around because it will be no more hated 20 years from now than it is today. The threat of obsolescence has already ran it's course and cashed in. (I'm not a COBOL programmer, by the way.) Maybe God really does speak Latin.
Table-ized A.I.
This is the norm here; the typical requirement for a developer is to be as much as required horizontally skilled - this meaning even if you are hired as a j2ee developer you will have do to database programming normally you would expect to be done by a dba or etl guy, plus browser java script you would expect to be done by a browser guru. Also, you must expect everything to come onto your plate and you have to take it - can be even tasks you never dreamed you will have to do like windows drivers, linux api etc. - you must take it and shut up otherwise you go out. This is expected and of course, if you are not anymore a fresh one at the beginning of the career and you are already at the point where other commitments have their pressure on you - you are done. As experienced programmer your experience counts only in very vertical niches where there is no coverage or you have the connections to enter and not get smashed with assignments nobody ever mentioned you would have to expect for that position. I talked to friends in US and UK and it looks things are a little bit lighter there - of course, age is a discriminating factor, but an expected unlimited horizontal skills base required in the job chores is something they haven't encountered. The simple explanation is that, for the companies to achieve their maximized goals the single way they can do it is by abusing their developers - so, the current economical backslash is open season for them to introduce into their sweatshop lines only the slaves which can make it; exactly as on plantations or galley - you need only fully dependable, *enslavable* resources.
I work at an institute that basically had its major growth around 1970. The people then hired are now close to retirement age but a lot still work here. Still I'd say that some of my colleagues over 60 are among the most up-to-date and productive among our workforce (I'm 33).
We have a nearly flat age distribution from about 25 to 65 in each cohort. My experience is that age is not a relevant factor in my institute and I think the IT industry, if the people involved are given the time to stay up-to-date in their field, and are willing to learn.
I have a colleague of 66 years old who just spent the last weeks learning Python. When he started his programs would be sent to a computing center 150km away once a week. He has kept learning new things his entire career, and even after retirement age he's still employed with us for 2 days a week because he enjoys it and management values his skill and knowledge.
I have a colleague of 55 who just wrote a mobile app for Layar. Another of 64 years old who writes some of the best Java I've seen. A third one has written the standard work on how to process radio-interferometer data. And I could give at least another dozen examples or people over 50 that are good, current and productive in their work.
If I compare it to my first employer, where the oldest programmer was 45 and his knowledge made him a dinosaur, the difference is huge. And it's all about management giving the opportunity and hiring people willing to keep learning all their lives.
And it's not because we're in a slow moving line of work. We're doing cutting edge science and research work building the largest telescope in the world, space satellite components, integrated circuit and low-noise amplifier design, TFlop digital signal processing. We are one of the fastest and largest computing centres in Europe (top500 supercomputers (#6 in 2005), petabyte storage, 200 GBit/s connections). And only with about 200 employees.
But I'm diverging, basically what I want to say, is that unlike some back-breaking manual labour, people can be very productive in the IT industry until into retirement age, if you get the right kind of people and treat them correctly.
RogerWilco the Adventurous Janitor
SAP ?
T.
My other sig is Funny.
People tend to cling to their old habits. In the world of programming it means clinging to outdated approaches to coding. Throughout my career I met a bunch of 45+ old programmers that were all hard-working professionals producing reliable and efficient applications (or components). Most of them, however, (80-90%) never adopted modern ways of software development (and are even proud of it). They do a lot of unnecessary low-level code (instead of ready-made libs and technologies) and essentially use procedural coding thinly coated by class definitions instead of a true OOP (object-oriented programming) approach.
This approach generally works well for small projects, however the bigger the project is the more problems outdated coding creates. There are vast differences in the quality of programmers in the big projects and the more cryptic your code is (even though it's crystal clear from the 80's coding style view) the more problems it's going to generate.
IMO the biggest advantage of OOP is that the structure of the code can (and should) mirror the structure of the problem it's trying to solve. In a good OOP design, even an inexperience programmer should be able to understand what the code is doing just by reading the names of the classes, their interfaces and the relations between them. A good 30-something yo developer usually does this kind of design. A 50 yo usually doesn't. In a project with 150 developers with the usual workforce fluctuation throughout the years where incremental versions are being released, the original code of old-style programmers (that may not be at the company anymore) can seriously affect development times and the overall quality of the system developed.
Ironically, the other extreme with the same result is a 30 yo C++ guru who by overusing operator overloads, custom manipulators, templates and macros, essentially creates a new programming language making it impossible to decipher in the code of the main app.
I saw an interview once with an ex-MS employee who said that MS (at least back in the days) preferred to hire kids directly coming from school... you remember that myth of "whiz kids"? That's what they were looking for...
Well I would have been considered a whiz kid and now that I finished my computer science major I can tell you: without a university degree in computer science - even as a whiz kid - you are a tinkerer and you know nothing about what you're doing.
Today I am embarrassed by the source codes I wrote in school, that got me straight A's!
I even may have produced more code - because back then I didn't know enough and hence didn't think enough about what I did and wasted hours of programming things, that could have been done with far less code... and better performance... and less memory consumption... and more reliability... and more portability...
The MAFIAA is a bunch of mindless jerks who will be the first up against the wall when the revolution comes
Is the younger generation of programmers really that arrogant to think that older programmers don't know and learn new languages and coding trends?
Well as one ambassador for the younger generation of programmers I will say: no.
It's the managers. They hire and layoff with age discrimination and a blind eye to cheating. Don't blame the guys who might get stuck with coworkers from these poor practices.
Further it is hideously important to our survival as young programmers to stamp out age discrimination before we get hit with it.
I would further add that the article clearly lays the blame on the ancient problem of poor metrics of coding productivity, which fail to show the problems of replacing expensive senior programmers over the pack of low paid entry level guys.
Engineering duties are being moved to the lowest cost area, with lead coding done on-shore. The design and architecture gets passed out, and code comes back. That's the new digital economy. If you're coding, you're either doing lone-wolf work and likely to encounter the words "knowledge transfer" soon, or you're doing prototype work for someone else to flesh out. Otherwise, you're nerf-herding and playing with Visio or UML while your job code still says "coder".
If you're old, you're probably expensive, and the first one on the chopping block when the economy craps itself. Only safe if you've built a reputation, or can move into management, or to a team that has to have on-shore workers for contractual reasons. After that layoff binge, you're likely to get a pay cut as job codes get reorganized.
Example: I'm one of few people left who understand how our entire client-delivery portal works end-to-end, and I'm not allowed to answer questions about it because I'm reorganized into my little cubbyhole. "Not allowed" meaning if I do help out my old contacts in order to deliver something to a client on time it's on my own time, and I have to get my deadlines first. I still owe some favors, so I do help sometimes. I digress.
Posted from a Fortune 50 or less company, YMMV.
I'll third the Python vote. It's pretty cool, it takes less infrastructure and extra non-sense than C# or Java if you're looking to do web apps, etc.
I also really like Perl and it's what I do as my full time job. It's mostly dying out though and I think many of the jobs that used to be Perl jobs are now (or soon will be) Python jobs. I know you said you're just looking at it from a hobby standpoint, but hey, why not have a hobby that could be useful to your career later on if you change your mind or your life takes an unexpected turn?
how do you still have hair sir ?
This is one of the reasons for so much crappy software these days, good experienced programmers not working while new inexperienced programmers sometimes working for dirt in a third world country doing the bulk of the work, working long hours, much like what happened to tech support and all customer support in the U.S. People reading from scripts or stealing code who have no real clue how to do it.
I was a programmer throughout my 20s and early 30s, then switched careers about 8 years ago (I'm 43). I have never regretted the choice to change careers.
Among other things:
- I was tired of working extremely long hours while better-paid (and generally incompetent) managers went home at 5:00 p.m.
- I was tired of being forced to stick to deadlines that were so unreasonably short that I could never debug, test, or document my work appropriately. It's hard to take pride in your work when you aren't allowed to do your best. I even had one boss who forbade me from documenting my code, believe it or not - he thought it was a waste of time.
- I was tired of managers and salespeople making unrealistic promises at the last moment to customers, both internal and external, and then expecting me to work overnight or through the weekend to make it happen (with no additional compensation or perks, of course).
- I was tired of never seeing my friends and family because I was working 80+ hour weeks.
- I was tired of watching the good jobs get sent overseas to tech workers who often produced poor code.
- I was tired of having to job hunt so often because companies were "downsizing," going bankrupt, or being sucked dry by CEOs with inappropriately enormous salaries, perks, bonuses, and golden parachutes.
- I was tired of project managers (who had never written a line of code) assuming that programming was no different than sales work, leading them to insist on having 2 or 3 meetings a day.
I make a little less now than I did as a programmer (though not much less), work a 40 hour week, have a life, and program on the side for fun. My technical skills opened up a lot of opportunities for me in my new profession, and I still get to keep my foot in the coding water. I'm happier, healthier, and far less stressed now, and I have a good amount of leisure time to pursue my own interests and projects.
I think it has more to do with the us health care system then other stuff as older people need more health care and they can just get people who are not as old how cost less and as plus they can also trick them in to working logner as alot of young people do not know about the labor laws.
I was considered the "bitter old man" at the last company I worked for, before I decided to change careers. I was 34 or so at the time - most of my co-workers were in their young 20s. I had been in the industry for more than a decade at that point, and could see through the typical BS, including the "stock option" lure. I was considered "bitter" because I didn't buy into all the crap that the company owners fed us.
Some of the kids who had been hired at the company a few years previously were paper millionnaires. The stock was obviously vastly overvalued, and I realized that the company was in financial trouble soon after I was hired. Nobody else seemed to be able to see that, though. I told a few of the kids that they should sell off at least SOME of their stock, so if things went south they wouldn't lose it all. They just laughed at me.
After about a year, all the workers in all the offices (including part-time receptionists and such) got an email calling them in for an "all hands" teleconference at 7:00 a.m. the next morning. I packed up my desk that night, since it was obvious that they were going to declare bankruptcy and shut down. Frankly, I was surprised that they had lasted as long as they did. Again, nobody believed me.
The next morning, of course, we were told by the CEO (who had a $25 million golden parachute) that the company was shutting down, and everyone was fired. He cried some alligator tears - he could cry on command, evidently, and always did it when he had to give out bad news (to prove that he was sensitive).
There was a lot of weeping and moaning (literally) from everyone in the office except me. I asked the management about the severance package, signed the paperwork, and went to a movie. The poor bastards who were in charge of the severance packaged meetings that day got to spend the next 12 hours consoling freaked-out employees and explaining to the kids how COBRA worked.
I never gave much credence to the "stock option" lure, at that company or any before it. If it isn't money in my hands, then it doesn't exist. Some of those kids could have walked away with a lot of money, if they had just listened to the voice of experience. Sadly, they walked away with nothing.
At least here in North America, our general aversion to unions is entirely rational. Unions here do not foster creativity - they foster group think. And management does the same, and uses their group think to destroy our creativity.
Though it is true that some management (not all but some, a reality that does not fit well in slogans), do impair programming productivity, there is this fact: We don't get paid purely to be creative, but to use our creativity to solve problems in the most efficient way that can help our employer's bottom line.
Management exists to provide the plumbing that we engineers need to do our job: manage billing, infrastructure, benefits, cash flow, repairs, to make sure the building you work on meets regulatory standards, to deduct your taxes, to provide strategic planning and to make sure there are earnings at each quarter because that's the only fucking way in which you not only get paid but also get a chance to get a damned raise.
We, software engineers/computer scientists, exit to solve problems in ways that improve our employer's chance to improve their bottom line... cuz that's where the money come from for our chairs, our cubicles, the monitors and laptops and that interesting shit called electricity that runs your work computers, your networks, the A/C, the coffee machine and the vending machine from where we get our doritos, sodas or whatever shit we eat and drink when we bang at the keyboard solving problems and helping our employer's bottom line... cuz that's where the money come from for our chairs, our cubicles...
You get the idea.
If I wanted to be measured strictly on the basis of my creativity, I would not have opted and loved to be an engineer/scientist in the field, in the heat, getting paid to solve shit that changes due to dynamic external pressures.
Instead, I would have chosen to be, I dunno, a dancer, a musician, or a painter and either paint the second coming of the Sistine Chapel or crap on a canvas and call it an exquisite sample of some avant-garde sounding artistic movement.
Its almost impossible to find jobs around here where they dont want someone with 3-years commercial experience in
FWIW, HTML isn't a programming language, it's not a good idea to mention it as your only programming skill.
Ask me about repetitive DNA
I am somewhat older and charge an appropriate rate for experience. During this process of aging I have been told I am worth 2.5 times a less experienced programmer, but they can get the less experienced programmer for 1/2 my rate. Now do you really think I even want to work for that company when their management considers the younger programmer a better deal. DPHB at work ... (Dilbert( Pointed Hair Boss) reference.)
... It makes for repeat business later... All ya can do is warn 'em.
Sadly the differential in requested rate in the down economy is less and they often still get junior contractors in and I get a shorted but much more lucrative contract to clean up the mess. Unfortunately if you just fix a bad design to work, then they're left with a bad design. And the DPHBs that cycle this way aren't interested in the real fix to the problem. So
Big Tip: Take your girlfriend or wife or sheepishly wander in on your own and pick up some men's hair color or spring for the bucks to get a better job done at a salon. Then trim all but the most recent 5 to 10 years (depending on prestige clients) from the resume. Make sure all relevant experience is mentioned somewhere even if just a skills list. They can't actually ask you your age.
Gramps can eat the polar bear, use the skin and bones to make a boat, and come back and kick yer butt.
- Tjp
I am in wallow with my inner money grubbing capitalistic pig. ... Oink!
This is reality calling. UML is *not* a design tool, it is primarily a documentation tool. Very rough UML documents can be useful before coding, however if you are producing fully featured UML documents before writing a line of code you have a serious problem.
meh
"The fact that you have 30 years of COBOL experience doesn't help you if you don't learn new technologies." learning a new language is easy. Learning to program is hard. c, java, c#, php, perl, are all very much alike.
Barring the curly braces and common control structures, no, they are not. Not even freaking close to be alike by any stretch of the imagination. C very much alike to Java, C#, PHP? Perl? I mean, C???? Of these bunch, only Java and C# are mildly similar, and only superficially.
Once you know one learning the rest are easy.
The problem with that thinking is that you only think about trivial code examples of any of those languages. When you start using them for non-trivial tasks, you find that there are obscure semantic idiosyncrasies that either make or break you. There are APIs, infrastructures, architectural considerations and limitations that are unique to each and which is the meat of the knowledge required to actually program non-trivial systems.
This is not taking into account that in almost all non-trivial systems (specially in IT computing), you do not develop in one single language.
I do agree that learning (minimal learning of) a new language is easy but learning to program is hard.
I do not agree though, that the *rest* is easy. It is not. It takes months of immersion to get minimally proficient any each one of them.
In your typical application program so much code is now offloaded to the libraries that once you leave school you are unlikly to have to write a HASH or a sort every again.
Exactly the point. You still have to learn how to program by using those libraries. And you can't effectively know how to use them if you haven't burn the midnight oil in school doing many of those libraries from scratch. Because each of those libraries, each of those data structures and algorithms have pros and cons, run-time penalties and characteristics that you need to be aware of, and doing them from scratch is the only way to truly understand them.
What experence teachs you is when you need to use a hash vs a btree.
I don't know about you, but I learned that on my first 2000-level CS class in college, before even entering a 3000-level class devoted exclusively on data structures and algorithms.
Work is not the place to learn the basics. Employers don't pay us to learn the basics while we program for them. Work is where you get your experience which should consist of team work, domain specific knowledge, working under prolonged schedules (as opposed to working on throw-away programs for every class assignment), working with source control on a true system, knowing how to go live with a product, etc, etc.
Either you weren't paying attention in school, or your education was atrocious. Experience *is categorically NOT* the place where you learn how and when to use basic and fundamental 2000-3000 level data structures.
At least I'm not the only one watching these programs -- Holmes on Homes may be the one you are referencing.
Ideally, an older contractor (or programmer) has to have a young mindset. Continuing to do what has worked in the past makes it harder for your work to interface with current methodologies. Writing database software using ODBC.DLL calls or not using Ditra under your new bathroom tile floors -- it means that your work will not mesh with current practices.
I would expect a specialist in their field to remain mostly up-to-date on their knowledge, or let me know they specialize in a particular older technology. Or, one would hope, they can do both.
Download a copy of Turbo Pascal 3.x (you can download it from the Borland Museum) or get your hands on an old copy of Basic or BasicA.
This will let you experiment with all the various control and looping structures. Programming at its most basic is about doing something with some data, adding two numbers together, storing some bit of information. Drawing pretty pictures on a screen while satisfying has very little to do with learning programming as a hobby or otherwise.
Invest some time learning how a computer works and how the instruction you write affect what the machine does. That desktop machine you have is an insanely powerful bit of technology. Your basic Casio wrist watch has more raw computing power then the computers use to get the first man on the moon, just think of what you have on your desk compared to that.
I recommend Pascal because it is a language that was designed primarily as a teaching tool and there are so very very many books out there that use it and I am not talking about the books you buy these days, eg: Teach yourself Java in a week I am talking about books that teach the fundamental constructs of programming.
Hey KID! Yeah you, get the fuck off my lawn!
i didn't know what that was, so i looked it up
its apparently a novel from 1967, or a movie from 1976
http://en.wikipedia.org/wiki/Logan's_Run
http://en.wikipedia.org/wiki/Logan's_Run_(film)
meaning, the story title itself is an age test
having failed that test, i feel secure in my youngun status
meanwhile, if you knew what "logan's run" was off the top of your head, join aarp and get on with it ;-P
intellectual property law is philosophically incoherent. it is your moral duty to ignore it or sabotage it
I believe the misconception came about as a result of tools (maybe these still exist) intended to be used to create UML diagrams which were subsequently used to generate actual code (mostly scaffold code). I've never seen a successful project come out of that, but I'm sure it has happened somewhere.
- T
Good article, but it does one thing totally wrong in the title and throughout the article. Something thankfully the Slashdot title and blurb actually gets right. It's not a big deal, but I get tired of reading articles about "tech workers" and "IT workers" when they are about programmers. I sure a shit would love to know how this stuff applies to Admin, tech support, sales engineers, consultants, etc.
Don't get me wrong it's a minor--and essentially off-topic--point, but the article is riddled with phrases that equate IT with software development. No offense to programmers, I love you guys too, but damn it's annoying.
The best parodies are always close to the truth -- the closer the better.
-kgj
Here's another one - both C++ and PHP support the RAII idiom, which is becoming increasingly rare as garbage-collection becomes more ubiquitous. Technically Python supports this as well (deterministic destruction), but it is discouraged.
Unfortunately (fortunately?) PHP developers typically discover better languages before they discover the usefulness of RAII in their current language.
What a bunch of yellow shitting, lame ass cry baby pussies. .
I started out writing spacecraft command and control software for fuckin machines that did NOT even have hardware multiply and divide i9nstructions -NASA was too fuckin cheap ass to buy it!! Computer time was FOR 2 hours A DAY AT 2AM And I had to actually graduate from a university thar didn't let JUST any moron attend computer classes.
On the other hand, we stayed up drinking and doing drugs, partied with the mission controllers and some of us lucky bastards got to bone the female MC's.... like Norma the hot ass married chick with big tits!
But ya know what's the best part is
after 35 yeas as a pencil neck software engineering geek I have never worked on day in "IT" job sucking some clerks dick like most of you poor pathetic schmucks..... HEH, HEH, LOL... ROFLMAO
best regards,
buck - an unemployable 57 yr old fart computer geek and perverted old fuck
Companies don't understand that ability is not a game of collecting acronyms, and also that somebody that invented the wheel will recognize it again irrespective of the tools used to achieve the feat (I have seen so many people trying to write their own mail agent it is not even funny, old timers know how to use the installed resources, yunger programmers go all gun-ho trying to write everything from scratch, the old timer may not be able to write a line in .Net whatever, but would undesrstand the circumstances in which resources are being wasted).
The guy with 30 years Cobol experience may not know Net, but may be more aware about the problems and tribulations of running software in my company (common guys, how long is the training to get the fundamentals of any language right?).
After one yeasr has passed, most likely the old timer will have overcomed the technical deficiencies in regards to newer technologies, but his expertise would have been at the disposal of his employer from the start.
I really don't agree, from my experience in the companies I have worked at it is the younger programmers for the most part that are the better programmers, simply because they were trained with more modern technologies and skills. The number of programmers aged 35-40+ that I have encountered that don't even understand the concept of Objhect orientated coding is ridiculous, and this is one of the reasons that one of the places I work was still using legacy C based code rather than upgrading to more efficient and easier to manipulate OO code(not mentioning specifics but for what was being done OO would have been a lot better). The older developer(and the ones that are listened to by management more) did not understand the concept or the benefits and so was holding the business back drastically.
I left exactly at the time I was suppossed to leave from my first day at work.
I just don't get why other people accept anything else as the norm.
A programmer who miss that in PHP would most likely miss that in C and also is likely to create leaks in garbage-collected languages.
It is a matter of education (and to a point lack of foresight) more than anything else.
My guess is that for the most part people will side with their own age group, by rule of perspective.
Obviously most people in their 40's (and 50's) will talk about the merits of experience. This is no different than your grandfather saying that "They don't make 'em like they used to" or "In my day ...". Sometimes they are right ... sometimes they are wrong. Sometimes an e-mail is better than a handshake. Often, the young programmer is not as naive as the older programmer would like to fantasize is the case.
On the flip side, younger people are quick to discredit experience, and quick to assume that as a programmer gets older they somehow lose IQ. More often than not, skills will erode over time because a developer gets less time to hone his skill, because they spend more time managing, or in meetings, or dealing with integration/support/politics. They spend all of their working in the present language, with no time to learn the next language that kids in college are learning, and so forth.
In an attempt to be objective, and going under the assumption that actual talent and IQ are somewhat age independent, I feel that the general breakdown is as follows:
More experienced programmers and architects are probably well versed in office politics, commonly made technology mistakes, best language-independent practices and so forth. On the down side they are probably more reluctant to work crazy hours (family), less flexible when it comes to constant change, and often caught up in their old ways (especially if that way has been successful in the past). There are exceptions to the rules, of course, but for the most part the older programmers are heavy on experience, and weaker on the latest technologies. In some cases, the latest technologies are a jump the older programmer is unable to make. I have seen a lot of this with programmers who are scripters/COBOL/VB/SQL type people who are unable to grasp and leverage OOP concepts. Older programmers have often lost the will to care about doing something the best way possible, they just want to do it the way they know will work and not fight the man.
Younger programmers are of course less experienced, but they tend to have more energy, are often more willing to go against the grain of what others will claim is "just the way it is" (which can be positive or negative), more willing to adapt or leverage newer technologies. The downside is that they have a lot of mistakes left to make in regards to office politics, best practices and lack familiarity with legacy technology. They often spend too much time worrying about the best technology to leverage, and not enough time about whether or not anyone cares or if in this particular case it matters.
The reality is that just as with sports, a mixture of experienced veterans and energetic youngsters is often the best balance for productivity. The younger players can bring energy and new ideas to the table, while the experienced guys can bring wisdom and best practices to the table. Symbiotic.
Where does this person work? Here, it's hard to find programmers who are UNDER 40.
In the USA of 250-175 years ago there was a good reason for the separation between enlisted people and officers. The officers recruited the enlisted people, supplied, armed, and trained them, built the ships, designed the flags. Becoming so much as a captain required a considerable investment, and bought you the power to designate your own trusted lieutenants/ assistants/ aides. OTOH, colonel was a political job, typically held by a county judge or justice of the peace -- positions that were generally held only by the at least moderately well to do because only they had personal resources to pour into building roads and mills and government buildings and fortifications.
W. Edwards Deming pointed out the idiocy of designating as managers people who had no experience and knowledge of the nuts and bolts of productivity, no application area experience. Knowing the ways B-school bozos "think", this probably inspired them to do this even more than they had been.
"Any developer can tell you that not all C or PHP or Java programmers are created equal; some are vastly more productive or creative."
There's been some research:
"The best programmers are not marginally better than merely good ones. They are an order of magnitude better, measured by whatever standard: conceptual creativity, speed, ingenuity of design, or problem-solving ability." --- Randall E. Stross (quoted by Robert K. Weatherall "A Booming Market for New Graduates" _Engineers_ vol3 #2 1997 April pg 11; quoted in Richard Ellis & B. Lindsay Lowell 1999 January "Core Occupations of the US Information Technolgy Work-Force")
"The computer field has [in the past] honored competence, content and creativity more than credentials." --- Clifford Adelman _Leading, Concurrent, or Lagging: The Knowledge Content of Computer Science in Higher Education and the Labor market_ 1997 pg 40 (quoted in Richard Ellis & B. Lindsay Lowell 1999 January "Core Occupations of the US Information Technolgy Work-Force")
"One top-notch engineer is worth '300 times or more than the average', explains Alan Eustace, a Google vice president of engineering."
"The best programmers on the team may be so much better than the rest that just a few of [them] can put out more than all the rest combined." --- Alistair Cockburn 2002 _Agile Software Development_ pg 61
But, such researchers have noted, it's the few people who know 10 or more programming languages who outshine the rest. Another odd correlation with high productivity is having a background in music, not math or physics. Scientists who can do a little programming are usually terrible at it; their software is almost impossible to maintain. But then how many 20 year olds know a dozen programming languages? And how many of the silver-backs have learned several additional programming languages in the last decade?
If you can't find more capable programmers of any age than you can shake a stick at, either you're not trying, or you're doing something else wrong. And, BTW, being a body shoppiner is doing something wrong.
4675636b696e67206d6f726f6e7321
When considering this phenomena, I think it's important to observe the following;
During the tech boom of 2000, and another mini-boom after that, developer's salaries went up substantially.
'Older' developers who were employed during this period became accustomed to this salary level, and *in general* have wage expectations at this higher level.
It's difficult for hiring guys to convince older developers to work at lower post-recession rates. It's easier to set the expectations of people new to the industry.
... is realizing that most people who aren't old enough to be affected by the "Logan's Run" effect probably had to Google to find out exactly what Logan's Run was!
Allegedly real newspaper headline from 1998:
Man Struck by Lightning Faces Battery Charge
A simple system can be specified with "rough" UML models, that's true. That is precisely one of the design goals of the UML language, in fact, to be fast and efficient replacement for human language.
However, an elaborate system needs much more elaborate specifications. It won't be enough to say, "I want a table with a couple of joins, here's a rough sketch", you will need to be much more explicit about fields, data types, keys, relations, triggers, and all the rest.
It won't be enough to say, "This system will call that service, here's a rough sketch", you will need to be much more explicit about data contracts, protocols, end points, delegations, object mapping, and all the rest.
UML is just as fast and efficient at capturing these kinds of details as it is at sketching out the big picture. However, many developers get stuck on the "rough sketch" level of UML, and never go beyond. They wind up sticking their specification details into some code editor, where no one else on the development team can see them except another developer.
However, a detailed spec is just as valuable to a tester, business analyst, security analyst, and database engineer as it is to the developer.
Share the wealth!
"We receive as friendly that which agrees with, we resist with dislike that which opposes us" - Faraday
The issue is that new applicants coming out [of] school have more experience with .NET, Java and [the] key technologies that many industries are looking for today.
=v= Not in my experience. Generally, coursework focuses on concepts and skills. Unless they've interned on a real project, students futzing with stuff like .NET rarely get beyond the tutorial level. If you're lucky, they might've taken a hobbyist's interest in it, which is a bit better.
A common pitfall at this age is to misdirect youthful enthusiasm into the latest and greatest "key technology" (like, oh let's just say .NET for example), no matter how poorly-designed it is. When you're just starting out, figuring out kludgy workarounds seems like skill-acquisition, though really it's not. But you can stay up late and generally whip up something shiny to distract the PHBs, so you're rewarded for it. Which is why software quality continues to decline.
Experienced programmers tire of that sort of thing, and the sooner the bettter.