Tech's Dark Secret, It's All About Age
theodp writes "Universities really should tell engineering students what to expect in the long term and how to manage their technical careers. Citing ex-Microsoft CTO David Vaskevitch's belief that younger workers have more energy and are sometimes more creative, Wadwha warns that reports of ageism's death have been greatly exaggerated. While encouraging managers to consider the value of the experience older techies bring, Wadwha also offers some get-real advice to those whose hair is beginning to grey: 1) Move up the ladder into management, architecture, or design; switch to sales or product management; jump ship and become an entrepreneur. 2) If you're going to stay in programming, realize that the deck is stacked against you, so be prepared to earn less as you gain experience. 3) Keep your skills current — to be coding for a living when you're 50, you'll need to be able to out-code the new kids on the block. Wadwha's piece strikes a chord with 50-something Dave Winer, who calls the rampant ageism 'really f***ed up,' adding that, 'It's probably the reason why we keep going around in the same loops over and over, because we chuck our experience, wholesale, every ten years or so.'"
Anyone in the field who hasn't figured this out yet needs to be let go. Programming requires long nights staring blankly at mind-muddling objective languages. Experienced directors/designers have the foresight to be able to properly direct all that youthful energy to the most worthwhile pursuits, rather than just letting them wander aimlessly through some other other geek's code.
When the foot seeks the place of the head, the line is crossed. Know your place. Keep your place. Be a shoe.
who calls the rampant ageism 'really f***ed up,'
Phhhbbt, sounds like something your average old timer would say ...
'It's probably the reason why we keep going around in the same loops over and over, because we chuck our experience, wholesale, every ten years or so.'
Oh, sure the initial steps in the web's client/server model may have had resembled the dumb terminals and mainframes of the days of yore but with HTML5 my generation is bringing in a new original and fresh way of computing where worker threads and local storage give us the ability to distribute ...
*red LED under the skin of eldavojohn's arm starts flashing*
What's this!? What? Wait, no! Nooo! It can't be!
*eldavojohn stands up to run only to be met by two members of the sunset squad holding stun batons behind him*
No, I just turned 28! You bastards, I was supposed to have more time! It's not my time yet!
*as they drag him away, a young acne faced male takes his place and begins mockingly humming "Circle of Life" from the Lion King while tearing down the X-Files poster and MST3K figurines adorning the cubicle*
My work here is dung.
What is that? When I was younger I could code more, but I wouldn't say I coded better. Now I take my time and produce efficent, well documented, fully tested code - which functions 1000x better than my 'mass produced' code. Any *good* programmer programs well - not in volume.
Any 50+ year old programmer should be able to keep up with 25yo programmers, knowing how to program isn't just knowing the ins and outs of the hottest language - it is knowing HOW to program so that you can swap languages efficently. (Yes, there is time to learn differences in languages, etc) But anyone worth their salt can jump where needed and go.
Being said, if your first language was cold fusion and it is all you have done for the last 12 years, you may have a difficult time switching to C!
Ditching experience would be unheard of in medicine, engineering, law, carpentry, pluming, construction, etc, etc, etc....
But only us have the balls to say that youth trumps experience, I wasn't aware kids were born with all computer science concepts from the get go.
How is it that a senior programmer ends up in sales?
Maybe we are not taken seriously because our professional low self esteem.
I'm just 26 and I feel old at my company...they hired me at 20 fresh out of college and have more than doubled in size since I was hired--most all of them fresh out of college. So in the five years I've been with the company, more early-20s employees have come on. I sometimes wonder how long they keep people around over 30!
If managers could pay people in their 50's what they people in their 20's, it wouldn't be an issue. As always, the bottom line is the only thing that really matters.
I am a young programmer/engineer, and while I love my job, I do not want to be in the trenches doing this when I am 50. I am 25 and already noticing it harder to keep up on new things sometimes either becuase I dont have the time or don't really care sometimes. But that's what management is for, use your knowledge of how the process works to guide others, rather than do it yourself. As much as I enjoy doing design type work it's exhausting sometimes and I would like to have a life someday...
At least now "they" want you to drop dead when you're 50 and are considered of no value any longer. In the film "Logan's Run" you only got to 30 before they killed you off!!
If you're going to stay in programming, realize that the deck is stacked against you, so be prepared to earn less as you gain experience.
In my experience at a company with 1,300 employees, young people are relegated to support calls. The older people (over 40 years), produce [quality] code at an exceptional rate.
Recently, we had to modify a java function for one of our clients whose client was dealing with money which was worth so little in dollar terms. i.e. 1 US dollar goes for about 2,500 in their money.
All young folks including myself were just fiddling around the code. This "old" man who had never looked at the code only needed about 12 minutes to solve the problem.
By the way, this code would 'translate' 1,234,567,890 to One billion, two hundred thirty four million, five hundred sixty seven thousand eight hundred ninety shillings only.
So I do not agree with that statement entirely. In fact this old man is paid about 2.5 times more than myself. I have 7 years java, VB and PHP experience.
Who exactly do you think originated concepts such as worker threads and local storage?
*sigh*
Opinion:=TMyOpinion.Create(Me);
A while back, a friend of mine -- a very experienced software development manager -- was running a development team, and was planning to hire a developer who was in his early 40s. One of the team members openly objected to the candidate because of his age, saying something like, "How could he possibly be up to date on current technology or keep up with the rest of the team? He's so old!" My friend eventually hired him anyway, and the "old" developer turned out to be a superstar, one of the best on the team.
That was about eight years ago. The guy who raised the objection is now about the same age as the candidate he had wanted to reject. I wonder if he's facing the same kind of age discrimination, now that he's "so old."
Building Better Software
Age brings experience, but there's plenty of energetic younger folks out there who are great at PRETENDING to have experience. Sure, they have no clue what they're talking about half the time, but they always impress the management.
*sigh*
There's no -1 for "I don't get it."
...most young programmers understand that experience is a massive factor in being productive. Assuming they're not complete morons, most would like to spend time / work along side an older more experienced programmer (assuming they're actually decent and not complete morons themselves) - a la a mentor of sorts.
Heck, for most types of software dev I would jump at that chance. Someone who already knows the 'does and don'ts' of a specific area etc. can save you a bundle of time hitting your head against a wall. Further than that, I think I'm only in this field in the first place because of a relative who basically became my computer idol/'mentor' of sorts. Sure, you eventually grow out of your original mentor, but they certainly put you on the right track to learn more. And I'm certain most 'old timers' would also jump at the chance to show the youngsters the ropes
... provoke a memory of "Logan's Run".
I would like to hear from programmers that have been at it for 10 or more years that aren't 'burned out'
love is just extroverted narcissism
Tech companies have long exploited the younger worked who put in longer undocumented hours. with no tech labot unions, this is rampant in the industry. It has been until recentely that companies are being taken to court. Throw in H1-Bs and outsourcing and we have the perfect labor pool for companies. More younger employess also = more bugs. The relationship of bugs per code has already been statistically to the rise of the inexperienced and exploited H1-B labor market. To hold the sponsorship of an employees head is a powerful tool indeed.
Why on earth should I work insane hours to write code that younger people can write faster and cheaper (and honestly probably better)?
Start your own business and hire the "young guns" instead of complaining about them.
If I need a bunch of code written, I'll hire 20-somethings to write it while I go SCUBA Diving in the Caribbean.
Life is short, you might as well enjoy it because, well, because . . . "fun is better than anxiety"
as in, arts and crafts: in many ways, programming is an art form, not a science
and honestly, if you take exception to this description, i will go so far as to say you aren't a real programmer. you haven't pored over a piece of code, and, after cognitively digesting it, sat back and thought: "beautiful". that's an aesthetic description. because programming DOES have a genuine aesthetic component to it that really delineates the difference between a creative rock star and a code maintenance bureaucratic functionary
but what kind of art is it, cognitively speaking? and i would say: it is more like a being a movie director than being a musician
but people THINK of programmers like musicians, with a musician's career arc: you are a nobody, then you skyrocket to fame, then you fade and are a forgotten has-been doing greatest hits at the country fair: called in to adjust their COBOL from the 1980s
programmers should be thought of like movie directors, who can most certainly be a geniuses at a young age, like robert rodriguez, but don't really hit their prime until their 30s and 40s, like chris nolan, and are still valuable as greybeards making great stuff in their 60s and 70s, like martin scorsese. and the young hot shot movie directors might be glowing hot, flying by the seat of his pants with tiny production budgets and just his friends to help, like a young programmer fueled on soft drinks and potato chips at 3 am. but the older movie directors are sitting atop large multimillion dollar productions, with a giant staff of cinematographers and key grips and production assistants... more like commanding a battleship than a dinghy. in programmer terms: moving into management
so as for the prejudice of ageism in programming: maybe there is just something about a young supple mind that makes art that is exciting and electric. i mean i had to do a double take just now composing this comment: i described a good programmer as a rock star above. showing that even within my own way of thinking about programming, i am applying the false musician's metaphor for the artistry that is programming, when it is more like being a movie director
programmers are movie directors, not musicians. that's my metaphor and my message, even if i myself can't keep my story straight
intellectual property law is philosophically incoherent. it is your moral duty to ignore it or sabotage it
I understand the arguments they make about "old" coders, but I find it weird that we don't see this as much in other related fields such as electrical engineering. You don't see nearly the same rate of "jettisoning" of the elderly that you do in computer science despite the continuing advances in EE or other engineering disciplines. Is it because the field of computer science still lacks the maturity and stability compared to traditional engineering fields?
I leave at 5PM because my experience has taught me how to avoid many of the problem new coders create for themselves. I get twice as much done in half the time compared to when I first started. Looking back at my first experiences as a programmer, I laugh at all the late nights spent working diligently to complete code only to find that I had checked in something inadvertently or forgotten to check something in that broke the build. This in turn wasted many other people time simple because I was too tired to think. The idea that technology has changed tremendously and older coders experience no longer applies is LOL. First the technology has primarily gotten smaller and faster. And coding techniques have improved in some ways but degraded in others. It all still ends up as binary in the end, something many of my younger colleagues don't deem to get which leads to some extremely sloppy techniques. These arguments are mainly bull similar to memes like out sourcing saves money (usually at the expense of time and quality).
There's no future in management, and geeks hate managing people anyway so wtf? I've been asked a few times and no, I won't do it. Thing is, I like writing code. I *enjoy* it. It's why I come to work and what I like to do. I don't *want* to referee the personalities in the office and I surely don't want to be the one who answers for everyone else's fuckups. Not to mention, excess management is usually the first to get cut when job reductions go around. who wants that? I'd rather be a hired hand for some consulting outfit. The benefits suck, and people think your dogsh#t, but if you can get over that it's a good application for experience and the change of scenery on projects is nice too.
boycott slashdot February 10th - 17th check out: altSlashdot.org
Citing ex-Microsoft CTO David Vaskevitch's belief that younger workers have more energy and are sometimes more creative, Wadwha warns that reports of ageism's death have been greatly exaggerated.
Oh, ex-Microsoft. That explains everything.
I am 50+ and have yet to find a kid in their twenties that can keep up with me. I might take my daily fiber, but they need their Red Bull. They talk a good game until it comes time to actually build something that the 'old man' ( me ) doesn't have to fix for them. They have yet to have to fix something of mine. Way fewer 'Dude!, WTF's per minute when they look at my code.
But, sadly, ageism is in fact alive and well.
The field expanded greatly in the 1990's. When I interview with a tech lead, that tech lead is usually younger than me. During the interview process, the tech lead sees from my resume that I have a lot of experience and knowledge, and then sees from his overly-targeted interview questions that I am not expert on the specific thing he happens to be working on day and night at the moment. Based on a "failed" interview, the tech lead is able to dismiss a potential leadership threat.
This will continue to go on until there is more age diversity in the field, which will take several decades for the dot-commers to mature. Meanwhile, since I started nearly a decade before dot-com, I more or less am limited to those businesses that have people older than me.
Federal law enforcement has it far worse. To be an agent after the age of 57, you have to kill a tree in paperwork to get through all of the waivers. At that age, you're too young to really retire and too old to credibly change your career. That's why they choose one of four options: move up, move out, go academic or go consultant.
What I've observed as an I.T. guy who often worked along-side developers is, management often decides a certain technology is the way forward for a given project. At that point, the experienced developers are sometimes left out in the cold, because although they may have, say, 6 years of good experience coding in Java, they didn't spend time on the latest Microsoft technologies. The "new kid on the block", by contrast, may have claimed experience in that area, so to management, he's the "better bet".
Most likely, the REAL problem here is that management doesn't buy into or grasp the idea that the development language used is rather immaterial. If you've got someone with many years of experience coding in a specific language, it'd probably yield the best results to let them continue doing that. Ask them to produce product X or Y with whichever tools they're most versed in using!
Instead though, there's an overall sense that programming languages get "stale" after a while, and a new product needs to be designed with a new language.
I'd say I only have a few personal anecdotal stories to back this belief up, so it could be way off base ... except how much demand is there today for developers with experience in COBOL or Fortran or BASIC, or Pascal, or Forth? I've always worked in a "Support Specialist" or "Network Management" role, but I've observed all these programming languages come and go -- and it seems like such a bad deal for a developer. He/she has to put in so much effort to learn and subsequently master one, only to find it fading into obscurity.
I get the Futurama reference, but I'm afraid I don't see the "joke".
Have you worked with the younger generation? Some of them actually spew this nonsense and mean it!
Opinion:=TMyOpinion.Create(Me);
I think the "more experienced" coders have an advantage in that they tend to more often document their code and do a better job at documenting it.
Also, while creativity is a wonderful thing, if no one else can understand your "creative" implementation to a problem, there's likely going to be issues.
Communication skills are important even in programming, seldom does a serious project involve only one developer.
Seen many "Be a surgeon in 21 days!" or "Criminal Law for Dummies" books lately?
How about a plumber doing all his work with a single screwdriver and no other tools, equipment or material?
A nine-year-old with a "PC" can be a programmer since.. well... decades now.
And while surgeon's/plumber's/lawyer's etc. hands on experience accumulates only in him/her and can't be transplanted into another human with a click of a mouse - that nine-year-old copy/pasting someone else's code is actively using all the accumulated experience in the world that he can google-out.
And that is not even going into how you can hire someone from India to do the coding you need for a fraction of what you would have to pay that nine-year-old.
Mit der Dummheit kämpfen Götter selbst vergebens
Well, first, Engineers shouldn't become programmers. They should know how to program, but otherwise it's a mismatch of talent.
Second, programmers who are still just crafting code after 45 years in the field should go somewhere and get a shot of ambition. Programming is a good place for younger folks to keep them out of trouble. Sooner or later the smart ones figure out that programming is more about creating solutions to problems rather than writing code. Figure out a solution and then pass it off the the young guys to do the drudge work. Those that don't figure this out will eventually give up and migrate to management, sales, Art or something more suited to their talents.
Third, problems don't solve themselves, but code can write itself. Writing programs that write programs frees up truly creative minds and you get the benefits of not having to hang around with a bunch of hotshot, know-it-alls who don't listen to their elders.
Hey, I've been programming for 45 years, and I know what I'm talking about...
"The mind works quicker than you think!"
I wrote this last year on Stackoverflow. Still holds true this year. Edited slightly to remove reference to another post there.
I'm 49 and I'm a programmer.
Well actually I'm a DBA, IT consultant and Business Analyst too. But in my heart I'm a coder - and I think I'm getting better with age. And I make a nice living at it, thank you - but I put a lot of effort into setting myself up that way.
There has always been ageism in IT. I entered commercial IT relatively late in my mid-20 after being a research scientist (biological - but writing scientific code for analysis). When I went to move jobs at 28 looking for an Analyst/Programmer job one recruitment company told me I was 'too old'.
Ha. Since then I've done a rollercoaster so far as coding is concerned - followed the big corporate trail up though systems analyst to project manager by my mid-30s before deciding I really missed coding. Went to a small organisation as senior developer then morphed into DBA for 7 years - but started writing code at home which grew contacts and income until I started running my own consultancy a little over 10 years ago. I purposely don't grow larger because I don't want to spend my time managing other people, but I do have a large network of other consultants in complementary fields (graphics, management consultancy etc) I can collaborate with.
My clients are nearly all in the SME sector, most I talk to the boss directly and they no or limited development support inhouse. Age in this case is an advantage as experience with systems in business means that people trust me as I can both deliver software, and deliver the right software for the business context. There is something awfully satisfying about being able to go to a client and say 'you need to spend $10k on this hardware and software development to support this' and the client does it because they trust your abilities and the experience you bring to recommend that decision. It helps I'm a complete neophile too and I replace my skillset every 5 or 6 years - I'm currently moving to Python and .Net (and raving about Ironpython for desktop apps)
So I spend about 50% of my time writing code, 25% doing 'business IT consultancy' and 25% general purpose IT to support that - for instance several of the systems I've developed for my clients are web based - and I run the web servers to host them.
And lastly it's a great job for fitting with family life and commitments. I have my office in the house (large room, lots of computers and screens) and I work probably 10 hours a day, but it fits with family. I've been at home when my kids were small and when they've come back from school as they've grown older. I don't even have to be in one place - last week I had to see a client on site at the same city when my son is a student, so I go in, see my client at lunchtime, sit in Starbucks all afternoon coding on my laptop, then take him out for dinner. Perfect mix :-)
So ageism - phah. Ageism is only a problem if you associate with people who are ageist - and as a society we're growing older and many of those older people who do have work going are not going to be comfortable with giving it to youngsters. There's plenty of opportunity for older developers, but you have to play to the strength of the experience you've accumulated and adapt. If you don't learn new technologies and stay excited by what's happening then that's your problem, not ageism.
Myself I see myself coding until I drop. I'm actually looking forward to being more flexible as I get older - when all the kids have left home we've plans to equip a camper-van with all the tech I need and wander around europe nomadically for a year or three working remotely as needed.
Coding is the best occupation ever invented. Who on earth would want to give it up?
The average person's IQ declines with age. The only thing that has been shown to prevent this is cardiovascular exercise. This involves more pain as one ages, and things wear out, and testosterone declines, so people are less and less likely to stay in shape. Not *every* coder declines with age, but that's the way you bet, if you're management.
ITT: A handful of above average, many average, and a handful of below average programmers giving advice, all thinking they're above average and qualified to do so.
while(1) attack(People.Sandy);
Part of the "agism problem" is that many development trends are merely fads, not really progress. So many times I see people jump on some new buzzword product or technique before it's been road-tested simply because it has the current Buzz Badge on it.
The industry *wants* it this way because change results in sales of more products and Learn-Foo-In-7-Days-While-Underwater kind of books. There is a financial incentive for them to hype fads. Young people have always been better at keeping up with random fads, and as long as the industry plays the fad game, the older people are going to struggle on average.
I'd say only about one in fifteen fads has any sticking power as far as bringing revolutionary new ideas to software development. The rest is just repackaging of existing ideas with a catchy name, funky syntax, cherry-picked demos, and a fancy translucent 3D logo.
This makes no sense to me. If he'd said, "expect that your 30 years experience will allow you to command a salary roughly equivalent to someone with only 10 years experience" then I'd be on board with that. But to actually earn less because of additional experience? As in, "If you had 10 years experience we'd pay you X, but since you have 20 years experience we'll only pay you 0.8X"? That's nuts.
My personal experience is that people pay based on the position, and the position usually has some experience requirements. No position requires more than 10 years experience, so any experience beyond that is superfluous. So the salary arc for a developer, assuming he stays in development (and not architecture, design, etc.), should steadily increase from year 0 to maybe year 10, then mostly plateau.
Productivity is secondary to one attribute that management (particularly of large organizations) seeks above all else: naivete. Management loves young, fresh faces. In spite of lower productivity and less experience on the job, what employers value is that unquestioning loyalty that comes with youth. Once people gain a certain amount of experience, they start calling 'bullshit' on the PHB's plans and that's the end of career growth.
Its a management style inherited from the military where there's a need for cannon fodder. Grab the rifle and charge the machine gun nest. Once the grunts start to realize that there's a better way to get the job done, and not get your ass shot off, its time to bring in the new recruits.
This isn't as true for smaller organizations or those with flatter management structures. Here, workers are expected to contribute across several levels of the software (or engineering) development life cycle. In larger groups, where these boundaries are more strictly defined and reflected on the organizational structure, such cross disciplinary communications are not encouraged. They are often viewed as an additional burden on the management structure.
So, your best bet, once you have acquired this kind of experience, is to seek a job position in an organization that values it.
Have gnu, will travel.
The problem isn't being able to keep up with younger programmers in quality so much as quantity. As long as managers believe that hours and lines of code are reasonable proxies for quality and success, younger developers will continue to be seen as the saviors of projects long past failure, while the experienced programmers that can implement far better solutions far faster are going to be second class citizens. And the young code factories will be promoted to management, which they will be even more incompetent at, and will continue the same metrics.
Why on earth should I work insane hours to write code that younger people can write faster and cheaper (and honestly probably better)?
What makes you think they'll write the right code? That's what experience buys.
"We returned the General to El Salvador, or maybe Guatemala, it's difficult to tell from 10,000 feet"
Do your best to incorporate today's buzz-words into your daily work. It gives you something substantial to discuss when meeting a potential employer.
Some programmers are confined/defined by the programming requirements of their current employer. The impression it leaves is one where the potential employee is clearly skilled but not a 'good fit.' This does not solve the wide gap between getting paid well and the many common programming work.
http://www.maxineudall.com/2010/02/should-economists-be-sued-for-malpractice.html
I'm late to the post, so I doubt this will get read, but I'll share.
When I've hired devs in the past (past 15 years or so) the question I ask is "what do you do on your own time?" It used to also be "tell me about your home computer set up" but not anymore. For that second question, if they said they had dial up AOL, fine, interview over. If they said they networked it themselves (before the days of wifi) and had a couple of versions of linux going, in addition to their own domain controller and desktop, then I wanted to hear more.
Back to "what do you do on your own time?" What I want to hear is "I code. I dabble with my own ideas or help out other people online." Or I want to hear about how they are dabbling with some weird new language, or open source project, or framework, or whatever, even if it had nothing to do with the job. What I want is that passion - that obsession that is so strong that they want to spend as many waking minutes as possible trying to figure out creative solutions, solve problems, and make a difference. Then, it's my job to point that in the right direction and make an environment where they can thrive, learn, and stretch themselves. I don't want a 9-5 developer. I don't even want someone that says they are an outdoors guy that hikes every chance they get. Yes, it makes you interesting, but not a great coder.
And that's the issue, not age. Most people get past that single minded obsession. They decide (rightly so) that family is more important, kids are important, that they can and want ot leave work behind at the end of the day. That's wisdom and experience that comes with age. For a line job, I don't want that. I want the guy that will pull an all nighter and be thinking about how to fix something continually until he figures it out, and has no higher priority than writing elegant fucking code. Coding is not a job or a paycheck, its a lifestyle. Now I don't want a sweat shop, I want that person to feel like they are making a difference they can see and are getting rewarded for it, but nevertheless, that's the behavior I want, and I want that person to feel like they've landed their dream job. I know that one superstar alpha-coder can do the work of 10 ordinary ones, and I know how to spot them, and I don't want to settle.
It's a fact of life that generally speaking, with age comes temperance. Not always, but mostly. Are you a 50 year old that can hang with that type of person? Then you'll have a job. If you want to come in and demand fixed hours, and communicate that life outside of work comes first to you, that a job is a paycheck and not a lifestyle for you, then this isn't the best line of work for you. For me it has nothing to do with age. I'm also a veteran and I think women should be allowed in the infantry if they want, but I also think they should meet all the physical requirements of carrying weight, long distance marches, hoisting weapons and the like. I'm fully aware that it will eliminate 99% of all women, but that's not unfair to me. Neither is it unfair that most "older" people aren't cut out to be an alpha coder.
Young != inexperienced just like old != uncreative. Such generalizations need to be thrown out the window.
Filthy, filthy copyrapists!
The assumption is that fresh hires are more up-to-date with the latest technologies & trends, and thus are more valuable in a fast-moving market.
I don't think that's quite accurate anymore, as university CS programs really don't deal with the latest expensive enterprisey software products, nor teach the latest fad portable, social media, and web library technologies. While a kid playing around with computers can learn programming languages and OSes, that's really not the skill requirement of your typical programmer employee nowadays (though it is an important subset); knowing specific programs and their APIs is.
Workers of any age (even the young ones) can easily drift behind as well, if they settle in to just 1 programming language/model/tool/etc that they like.
It all comes down to personal drive to continually learn. A fresh CS grad who hasn't kept himself up in his own time is already behind. An older worker who hasn't kept himself up is already behind. But the idiots among the managers like making destructive generalizations, like correlating age to cutting-edge, instead of self-learning to cutting-edge.
Some years ago, I was reading a flame here on slashdot and one of the insults was calling RMS an old dinosaur from the 256 color era. I grew up with the 16 color Commodore 64, so that made me older than the dinosaurs. That was the first time I felt really, really old and I was 24 at the time.
On a more serious note though, I will say that I am a better coder than I was 10 years ago but so much has changed. My professor would keep going on about bits and bytes like the difference between a short and long really mattered and "look to embedded". Well here we are and seriously nobody could give a fuck if a variable is short or long, possibly if it's in a huge array or many database records but mostly not even then.
Don't get me wrong, I don't think going through everything from BASIC to assembler to Pascal to MFC to Java 1.0 was useless, it's background and general knowledge but it's not very to the point. In fact, some of it would today be anti-patterns you should unlearn. In short I think you can subtract several years of useless skills, if I went back with modern tools and libraries I think I could achieve the same level in maybe 5-7 years. And the further back you go, the less relevant it is to modern programming.
And by modern I mean high level, we still need people to hack in C but not for most applications. There are jobs for COBOL programmers still, too. But today if I was building a house I'd rather do it like modern construction. Lots of prefab, but it still takes skill putting it all together.
Live today, because you never know what tomorrow brings
The real difference in my opinion is that those other field (engineering, medicine etc...) have legal repercussion and live repercussion if you hire somebody cheap wiothout experience and they fail you. Therepercussion for software engineering are certainly much lower (bad sales) and for most of the industry neither legal nor on the live of the user. Therefore tehre is no interrest on the management side to keep experienced "older" folk versus hire younger people which will ask for less money. At least where I work it seems to be such simple calculation.
C. Sagan : A demon haunted world:
http://www.amazon.com/gp/product/0345409469/
visit randi.org
This is true in general. Not sure why tech thinks they are the only industry where this occurs. The suggestion of sales as an alternative is rediculous. Sales is the ageism king.
I mean the whole older guy who won't listen to anybody. (The one we had wrote very ugly code and wouldn't create functions. Well actually it was because he always screw them up when he tried to write one.) I guess he was also a cobol programmer at one point because I said something that mentioned cobol coders and the idiot thought I was insulting the old timers. (For what it's worth what I said was basically "Even though the plans were to get rid of our current system that we had been using for the past 10 years in the next year or 2 don't be surprised if that happens. I bet if you asked alot of cobol guys in the 60's and 70's how long do you think your code will get used they wouldn't have said 30 to 40 years." Yup, he thought that was an insult and kept interrupting me when I tried to point out that it wasn't actually an insult.)
Did you know 80 to 90% of the moderators on slashdot wouldn't recognize a troll even if one dragged them under a bridge.
i 2 followed the "technical track" under trw's "matrix" management, which was supposed 2 allow parallel career trajectories (as measured by salary) w/o the need to stop doing what i loved: coding...it mostly worked out that way, but without the parallel salary;-} then ngc bought trw, & that all changed;-(
my b-i-l started out coding but jumped into mgmt...he's now managing a $10e6 yearly networking operation, w/ commensurate compensation:-) but he tells me he really misses coding;-}
the situation is also parallel to building-trades contracting: most guys start out as a carpenter, learn the business, go out on their own & build a career 1 house @ a time. the smart 1s soon stop swinging a hammer & start hiring other (younger;-) guys, because physical labor does take its toll on the body...a contractor i know fell off a roof, which @ 50 is a much bigger deal than 4 a 20y.o.;-}
coding parallels physical labor in that staying up all night is something that's much easier 4 the yoot;-) and the coding culture arose from grad-student marathon coding sessions...in the beltway bandit world they were called death-marches;-}
and then i just slowed down in my ability/desire 2 keep learning new stuff...never got 2 coast;-} so last year i got laid off, then took the retirement(trw legacy:-)
I'm 42. While concerned about my future in tech, I'm not too worried about long-term employment prospects because I see a looming labor shortage. The oldest Baby Boomers are turning 65. While many of them are not very tech-savvy, they are successful business men and women (e.g. yuppies, DINKs). As this huge generation begins to retire there will be a void to fill at all levels.
Worst-case I'll get a job in a nursing home refilling their Tang and listening to Vietnam stories.
Nostalgia isn't what it used to be.
A lot of people seem to think that programmer productivity has something to do with lines of code produced. That misconception gets propagated by uninformed managers, who are basically looking for something that is easy to measure.
In reality, productivity has more to do with achieving required behaviors with a minimum of code-writing. When a fresh-out writes 3000 lines of code, discards or changes 2900 of them, and ends up with a 700 line program that only sort-of works and only remotely resembles the design, after 10 weeks of working 70 hours a week, is that really productive? If an older guy thinks about the problem for two weeks, spends a day or two writing docs, writes a couple pages of code in one morning, tests it that afternoon, tweeks it a little the next morning, spends another day improving comments and updating docs, and has the whole thing finished and solid in 3 weeks, is that really less productive?
Uninformed managers reward the guy who works 80 hours a week and writes lots of bugs. The buggy code needs to be fixed, which then requires heroic amounts of overtime. They reward the overtime, without understanding why it was needed. By contrast, the guy who gets it right the first time, and doesn't need to fix it, doesn't have to work those silly hours. The uninformed managers also do not understand why a program doesn't need to be fixed, and why overtime is not really needed, and so the better programmers are not usually rewarded.
Programming is about function and behavior, not lines of code.
Just for fun, I sometimes run 'uncrustify' on a mess of old code, or change a variable name, before doing a small logic change. My nontechnical director gets a report that counts the lines in each commit.
I'm in the unenviable position of getting older (35) and am starting to see the beginnings of this trend.
The three suggestions the author offers are sage advice. Keeping your skills up and taking on higher-level roles are really good ways to ensure you'll at least stay employed. Point 2 is equally important - save like crazy during your prime earning years, so you aren't forced to be that 50-year-old guy who demands $125K for a $70K position because you actually need the income. The reality is that there is little hope you'll convince an employer that paying more for your skills is worth it. Management only sees you as a cost, and wants to maximize the amount of value they get out of you. Even if the 22-year old screws up a few times, the 80-hour weeks he's going to be able to pull to fix things will offset the extra salary. Counterintuitive? Yes, but it's standard Business School 101 fare, so we have to deal with it.
It really stinks that you can't have a full career with a path laid out for you like you used to. if you're not the entrepreneurial sort (which I definitely am not,) you're going to be stuck either bouncing around in short full-time stints or even shorter contracting stints. I'm a systems person, and really enjoy solving tough integration/sysadmin problems. I hate people management and project management, so I've concentrated on keeping my knowledge current and not being the person constantly begging for raises. It's worked well so far - I have a pretty good reputation within my smallish specialty field. My next plan is to ditch full-time employment and start contracting - but even that's dangerous. Like the article says, those of us who are older have families counting on us; we don't live alone in a one-bedroom apartment with no financial concerns beyond next month's rent.
The more entrepreneurial types among us older folk would clean up if they started a contracting firm based on the concept of companies paying for experience. I can't tell you how many projects (both business-related and IT-related) I've been on where a company hires one of the big-name consultancies (Accenture, Bain, Booz, McKinsey, etc). These firms hire Ivy-league graduates (early 20s, typically very little work experience) on the premise that they're smart and have a good reputation. Unfortunately, I've found their skills lacking, and they tend to learn on the job, causing downtime, wasted meeting time, etc. If some slick sales guy could convince a company that a bunch of people who have seen all the tech industry hype cycles, know what's really going on, and know how to solve problems based on having done it before, we'd have a working business model.
I understand the arguments they make about "old" coders, but I find it weird that we don't see this as much in other related fields such as electrical engineering. You don't see nearly the same rate of "jettisoning" of the elderly that you do in computer science despite the continuing advances in EE or other engineering disciplines. Is it because the field of computer science still lacks the maturity and stability compared to traditional engineering fields?
A few things:
Quality is a bigger deal when designing physical devices. You can't just issue a quick patch for a dead chip and it is really easy to make mistakes that result in dead chips. Experienced engineers know where the traps are and how to avoid them.
Experience in Electrical Engineer means experience with tools and methods that are virtually inaccessible outside of a working environment. You can't hire a young kid who built an ASIC over summer break because, essentially, no one can do that.
In combination, this means that young, inexperienced engineers are less productive than young, inexperienced programmers.
In a way, chip design has the opposite pathology as programming. It is work experience obsessed. Nothing matters but what you did for pay, who you worked for, and when you did it. Good people are ejected all the time but, not because they are old. They got caught with the wrong skill set with no way to recover. (Experience with A but A is out. B is in but no one will hire for B without prior work experience doing B). Not working is a cardinal sin. You might have B but you haven't done it recently enough.
If we can't learn from the past, we are doomed to repeat it. This is a basic human truth and goes beyond programming. We have learned this is true of so many things and yet somehow the accumulated knowledge and wisdom of programming is somehow taken for granted? Let's not forget the occasional rant on "you must validate your input" that goes unheeded resulting in extremely hackable code. I don't know where most people learned to code, but I first started almost 30 years ago, my second year of junior high school. Validating input was a cardinal rule then. And this is just one of the more basic ideas that are often forgotten.
Without being in touch with the past, there is no real progress.
I'm in my mid-30s, and have already long experienced exactly what you describe, and agree 100%. We also do use codegen heavily to create a *maintainable* fast pipe between "problem to solve" to "solution".
Of course, going the entrepreneur route does force some of those issues, as solving the customer's problems is what puts food on the table, not just cranking code and keeping a boss off your back. But even then, quite a bit of my increase in perspective came well before, when I realized that what I want to build in terms of my own hobby interests requires more than just me working on it, if I want to reach my creative goals in this lifetime.
What makes you think they'll write the right code? That's what experience buys.
They probably won't, but it's easy enough to say "No that's not right, fix it."
Forgot one alternative - become the token "old guy" that helps keep the DOJ from breathing down management's necks.
Be prepared to have your red stapler taken away, though.
This guy doesn't care about the US workers at all. See his support on offshoring.
Twitter supports and protects racists - by smearing their critics with the "Hate Speech" label.
SJW: Someone who has run out of real oppression, and has to fake it.
Companies have no interest in paying more for people more skilled in software engineering. They want people who can "just write code." The medium-term to long-term consequences of writing unmaintainable, disorganized, undocumented code are almost never recognized by management. And even if they were recognized, we live in a short-term-profit world, where it is standard practice to run a project or company into the ground by releasing a shoddy product which holds together just enough to avoid lawsuits.
A company who values older developers is a company who values the quality and long-term viability of its products. Good luck finding one of those.
The Internet is full. Go away.
You have issues. It's not that companies prefer the young guys, it's that you're walking too slow.
If you're young AND subscribe to even a fragment in SUPPORT of ageism, then WHY are you in IT in the first place?
You know you will grow up some day and be an older citizen of this planet?
Look at your future and how you laugh at it. Plan to be unemployable, children...
Companies that have problems with ageism often don't realize there is a problem with their behavior. They usually need to get fined multiple times before they will start to comply, and by then they can end up with an injunction specifying mandatory quotas for new hires. Meaning they will hire any old gray haired idiot and shuffle him/her somewhere they can't do much damage.
Young engineers write bugs. Older engineers fix bugs, and (hopefully) write fewer of them. We tend not to write the same bugs over and over - our bugs have the virtues of novelty as well as subtlety - being far more difficult to detect and fix. $:^D
Anybody can write bugs. It takes a true master to #(&$ it up big time. I spend a great deal of my time nowadays fixing bugs written by our delightful young engineers.
You couldn't pay me enough to go back in time to fix all the bugs I wrote when I was a fresh young new engineer, though. $:^D
Many of the problems people in this thread sound increasing like they are working for the IT department of a company whose primary business is elsewhere (like most IT people do). That there is aegism here isn't really surprising, executives who can not understand the value of technical experience are going to be endemic, because they themselves are not technical. However, my experience is that true IT companies (those whose primary business is IT), understand and value such experience. I work at a Fortune 100 IT technology company, and most of the office is over 40. That is most of the CODERS are over 40. That is because management is thoroughly technical and values a technical experience. However of the literally 100s of candidates we interview, of huge groups the ones that fail, fail because of two reasons regardless of age, lack of technical depth or lack of enthusiasm.
As others have mentioned though many older programmers work themselves into a corner, by refusing to keep up with modern technology. If you are ones of those like the linked blog who think modern computing is no different from what you where doing twenty years ago your sorely mistaken. Yes there is a basis, but huge innovations have been made in the last twenty years. Just because you wrote assembler (I an undergrad have done so as well) doesn't mean you know jack about design patterns, or about languages based on CSP, or about minimizing context switching in a modern Linux kernel, or why a b-tree is faster on modern computers than a binary tree (hint the last two are related). It doesn’t matter how much experience you have, if you don’t keep up with this kind of stuff your not as good as that young gun “who hasn’t been there” but does know this kind of stuff.
The second factors as others have mentioned is simple enthusiasm. Anyone can be enthusiastic, yet many (old) programmers no longer seem to love the technology they are working with. True IT managers look for people who when presented with a hard problem jump up to the whiteboard and start drawing, eager to rip it apart. Age has nothing to do with this. Yet for some reason many old developers let this passion slip by them. The irony is this point leads to the first. Those who are truly enjoy what they work with don’t have any trouble keeping up, because well they enjoy working with it.
Totally depends on the industry you work in. Go in to aerospace and you're not going to find 20 year old kids designing VB.NET programs, you're going to find 50 year old guys in hawaiian shirts using C/C++ and older/more complex languages on many projects. Conversely, head in to web application development at some Random Internet Company, and you'll find the opposite.
They aren't discriminating against older programmers because they are older. It is because they are asking for higher salaries. Why hire a 50-year-old when you can hire a 25 year old for less money? The 25-year old will have a more flexible schedule and is more willing to travel because they have no kids.
This is the sort of things unions prevent.
Individuals aren't capable of stopping discrimination, but a class of individuals is.
If you're good and your expectations are realistic, your age doesn't matter in most high tech companies, and the ones where it does - you don't want to work for them anyway. There's a severe shortage of good people. That said, when looking for a job older folks need to have realistic expectations as far as where they'll end up. At some point, "number of years in the industry" becomes a pointless bit of trivia. You shouldn't expect 150K in base salary just because you're over 40 and have a vague recollection of programming for VAX. You have to have a reputation to back it up, as well as the chops, or adjust your expectations accordingly. What I see is that older folks (I'm in my mid-30's myself) often expect to be put into very senior roles or managerial positions, and frankly, there are often more qualified candidates with more realistic expectations.
I do my best work in all-night sessions. For some reason, the creative juices flow better, and once I get around the 2am hum, I'm good until 9am at least. I'd rather do 2 20-hour stints and take the rest of the week off than do the 9 to 5 - and I'll get more done, too.
I only start to turn stupid after 48 hours, and start seeing things that aren't there after 96 or more. When you're in the zone, you're GOOD! It's a natural high.
When a customer is paying you a month's expenses for 3 days work, you'll stay up the three days, you'll make damn sure you get "in the zone", and you'll be productive. You'll meet the deadline. Money and a challenge are both great motivators.
If you "get stupid" after 16 hours of being awake, maybe you need to see your doctor, because you don't sound like you meet the definition of "physically fit" - which is, among other things, being able to do at least moderate exercise after a day of work.
Things need to be changing. The same old issues keep creeping up. There are a few A.I. programs out there but automated programming seems to be illusive. At the very least we should have semi-automated programming in play. With the hardware available today it is only a matter of time before almost anyone can write complex programs with point and click and a bit of one's native language.
Ageism exists because its easier to manipulate younger IT folks to work crazy hours and to do stupid shit. Us older folks with some experience wont be played for suckers as easily and aren't afraid to stand up and say "well *thats* a dumb idea".
If all you aspire to be in life is someone to pound out code by all means this applies. If you LISTEN to your boss, the direction of your company, and take the initiative to generate solutions that save money who the hell cares about the faster coder... his job can be outsourced to someone who types faster for less, but your intellect, knowledge and trust of the boss or owner never will.
Here's one I'm working on: you have 8 million documents, each of which belongs to one or more categories in a taxonomy of no deeper than three nodes (root, branch, leaf). Given any random document, which is the most efficient way to return the parent and children taxonomy with document counts for each?
---
My favorite textbook example: you need to malloc 1,000 addresses, perfom a simple calc and then free them. How do you do this?
Now scale it. Instead of 1,000 addresses, do 1,000,000.
Proving, again, that personal anecdotes are not evidence or proof of anything.
Yeah, right.
Related:
2010-06-21:
At Google, You're Old and Gray At 40
At a company of about 20,000 full-time employees, there were at last count fewer than 200 formally enrolled Greyglers working to "make Google culture... welcome to people of all ages."
http://gawker.com/5568975/at-google-youre-old-and-gray-at-40
2008-06-22:
New York Times Article about Age Discrimination
"In an industry survey, a majority of technology companies candidly said they would not hire anyone over 40."
http://www.nytimes.com/2008/06/22/weekinreview/22lohr.html?_r=1&oref=slogin%3Cbr%20/%3E
I predict that one day Google will be crucified by the government for their blatant ageism. And I mean crucified. The racist equivalent would be if 5 African-Americans worked in their entire corporation.
Just wait.
Another reason that I haven't seen mentioned for wanting younger programmers that are paid less is because the person that is doing the hiring is building their departments by hiring more people. Would you rather have one $100K superstar or two $60K barely adequate programmers? The manager learns quickly that having more lower paying employees under their direct responsibility results in more pay. This isn't just true in IT, it is basically true across the board. People who manage more people get paid more. Build your kingdom (and your salary), by just hiring more people. Eventually you will have built a department and have a good salary. Now if you could have solved the problem with the $100K superstar and yourself, you won't get rewarded for that.
Here at Salon, from 12 years ago. (Hmmm, the young programmers in the article are now old...) http://www.salon.com/technology/feature/1998/05/13/feature/index.html
In other articles I couldn't find on the web, I do remember Ullman writing about being the young programmer who rolled her eyes at the objections of mainframe-era programmers to client/server...and then finding herself on the other side of the same story, making noises like "...but doesn't that create a lot of network traffic and latency?" at web-app programmers...as they rolled their eyes whenever they thought the client/server-era fogey wasn't looking.
At 52, I count as tar-pit fodder myself now, worse because my primary work is engineering and I could afford to drop off the keep-up train in the 90's, never learned Java. (Though I find the office can still be dazzled by humble scripts and mini-apps done in Perl and VBA/Excel; people don't care HOW you automate boring work, you just have to do it). I was discussing this issue with a 40-something friend who is a full-time programmer and did keep up; his reply was that it's more important to know that a sort cannot beat O(n log(n)) than to know the current language to write it in.
I believe that most ageism in IT is from its culture. A previous poster was, simply, dead wrong to imply that other fields like medicine and engineering do not change as rapidly as IT. They do. We now use materials, construction equipment, and techniques that did not exist a decade ago. However, as a very young business, IT was *always* stacked with young people and young bosses. It's only recently that there could be such a thing as a 60-year-old programmer. It used to be assumed no woman had the "temperament" to practice law. As people gradually discover that older programmers are (usually) still useful, I think the attitude will fade away.
Threads? In our day, we had ROPE! And CHAINS. No wonder your programs crash so much - they're hanging by a few threads!
And we even had a version of Unix that could run those chains like you wouldn't believe - FreeBSDM - great for when someone slashdots the pr0n servers.
And what's this about Pee Threads? Come on, tell 'em to go piss up a ROPE! "Go piss up a thread" is lame.
And your local storage is really lacking. There's not even enough room on some of those netbooks for a cup holder. Heck, a decade ago you could get a tower with TWIN cup holders.
Remember that printer in Office Space. That was a REAL printer. It took 3 men and a baseball bat to kill it. Not like today's printers that are so cheaply made that you throw them out once the starter cartridge is empty.
And those 3-1/2" floppies. Real Ninja coders could take your eye out with one of those from 30 feet. In comparison, your thumb drives are almost useless for in-house security. And what good is insecure code?
And we even had sneakernet - a great way to ensure that programmers got at least a bit of exercise, some social interaction, some face time.
I don't see how this could really be the case. Every job postive I've ever seen doesn't list a MAXIMUM, but a minimum, and they're generally pretty damn high minimums at that... A BS and 10 years of experience? You can't possibly be a young guy and meet the requirments for 90% of jobs I see listed out there.
Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
That's what I think my problem is. Recently, a very good friend of mine told me that if I installed OpenAFS on the systems of anyone who is dependent on me for support, he would not be able to help me with that if things go wrong when I'm not around (no, he has no interest in learning about it). Not that I was counting on his support, but that's still frustrating to hear. I worked very hard on getting OpenAFS to work, but I have to admit that, even within the Linux community, it's a lot more complex and far less popular than NFS.
Originally, I was concerned mainly with scalability and security. NFS gets very low marks in these areas, while OpenAFS scores very highly. However, I think my good friend's view has something in common with the position that many large organizations take in these matters: they just want to keep things as average and simple as possible so that they will always be less likely to suffer problems when it becomes necessary to hire or fire IT personnel.
This is frustrating for me. My IT career started when I was 30, it peaked financially seven years later, but nine years after that my technical knowledge is still growing. Hey, I love what I know now! Technically speaking, I feel like I can run circles around my former self. The problem is, most employers aren't interested in what I know now; only whether I'm up to speed on the latest software from M$. There's a difference here: where I grew impatient and decided to solve the basic problems myself, most employers apparently still prefer to wait for M$ to solve them instead.
It's ironic. One of the things that attracted me to IT in the first place was that it allowed for creativity. That's still true, but if you want a career as a system administrator, it looks like you don't want to get too creative.
Granted in my mid-30s I'm not greybeard but I can tell you that you don't earn less as your experience increases. If you do, you're not doing very well with the job hunt. Poeple pay you more for your ability to get things done despite difficulties that will stump an inexperienced coder.
This article is pure drivel. It's advice made to con old experienced programmers to undervalue themselves, put up with shitty conditions and leave the game. It's the kind of advice a used car salesman gives you as he's trying to sell you an old bomb with the engine about to fall out. This guy's either a coder who wants less competition or he's a manager looking to hire cheap.
Oh and one more thing: If you can't out-code quite naturally a college grad after 20 years in the game, you're in the wrong game, or in the wrong job all along. By naturally I mean without spending a lot of your own time learning.
These posts express my own personal views, not those of my employer
Both sexism and ageism are viewed as "bad things", but of the two, sexism is far more deeply ingrained in the IT field. If you think older men have a problem, how about older women? It's the triple curse - not seen as being "real programmer material", seen as "too old", and with fewer opportunities in both management and other fields.
Look at all the comments in this thread - women (young and old) are invisible. The field needs more women to tone down the testosterone levels and pissing contests a bit. The only problem is, when women go for an interview, men still judge women by physical appearance and not skills.
That's why you'll see women sending out resumes using just their first initial, use email addresses that don't indicate gender, post using aliases, etc. After all, "a woman can't hold serious opinions about code - that's guy stuff!" or "She can't stand up to the demands of crunch time." or "She'll have more absenteeism to tend to family matters." or "We can't shout at her like we can at the guys." or "She'll distract the guys. I'm never going to hire a woman."
I've seen every one of those "reasons." Ageism might be a problem, but sexism is a bigger problem. The only reason it's not being addressed is because of sexism - "computers are a guy thing." So be happy you're not in that boat.
I never said sexism wasn't a problem, I agree with your statements here - there's plenty of it in IT.
Given that the discussion at hand was mostly about "ageism," I limited my comments to that topic - doesn't mean I have no opinion about the other topic.
Specificially, how much of this is going on in countries where employers are not expected to pay for health insurance?
I'm 57, and started programming at 16. Lately I've been getting paid to write Java client and server code. Most universities had no undergraduate computer science degree when I went to school. There were no software patents when I was young. And we liked it.
Things used to be different, and the reason why they were different is because the type of knowledge that was valuable in IT was a deep understanding of how and why things work, and especially how to work around the limitations of early computers. That kind of knowledge could only be acquired through experience. Today the kind of knowledge that's valued is facility with new languages and frameworks. Some of this can be acquired by reading the normal documentation, but some is buried in wikis and forum postings, and some is only achieved through trial and error. Many of the modern tools are very much moving targets, so that even detailed knowledge of differences between versions, and compatibilities of different versions of different tools becomes important in a programmer's ability to maximize the utility of these tools.
So experience is still important, but now it is a very specialized kind of experience, which manifests itself as lists of buzzwords in job postings. And we've all seen postings requiring more years of experience in some new technology than is actually possible. Employers are still looking for people who already know the tools, but for new tools, the only advantage of forty years of experience is perhaps being able to learn them faster. The poorly documented stuff still requires lots of digging and trial and error to master, regardless of years of general experience. (As it happens, in my case this is mostly sauce for the goose.)
With respect to hardware, modern software developers are somewhat comparable to a mega-millions lottery winner. Many of the limitations of the hardware of my youth are simply gone. The limitations of today are mostly software defined. Java too verbose for you? Use scala or python. Maven doesn't do what you want? Write a plugin. Security concerns? Run in a virtual machine. It's all just software, and increasingly open source. But like a lottery winner, today's developers don't always spend their wealth wisely.
The questions I'd pose to the language and tool builders is: are you trying to make an alpha programmer more productive, or are you trying to make an average programmer as productive as an alpha programmer? (Assuming, of course, that you're not just doing it for the joy of hacking.) As hardware gets better, software developers in general need to view the target platform as the human mind, because that is where the limitations of the present and future lie. Never mind the hardware, what level of understanding is required to use the software?
This talk about agism makes the assumption that there is some prejudice against older workers. What is this assumption based on?
I find it much more likely that people just get tired of coding and move on to other pursuits.
I'm just saying that sexism and ageism are two sides of the same coin ... ignorance and stereotyping.
As such, maybe we should be addressing that as well. After all, everyone says "we want more women in IT" and then wonders why there aren't more women in IT.
With the aging population, we're going to have a problem anyway; why discourage qualified workers (of both genders) who not only are able to "keep up", but are passionate about what they do and bring "institutional memory" to the mix?
This is a feature, not a bug, in the computer industry. Why? Because the real purpose of the computer industry is to import as many Indians as possible into the Fortune 500, get them corporate scholarships for MBAs and take over the managerial elite positions of society before the rest of the parasites have succeeded in bleeding it totally dry.
Now, I'll admit that this is possibly a mere side effect of taxing income rather than net liquidation value of assets -- which would have prevented obscenities like Microsoft from ever arising, but there is a point where these things take on a life of their own. At this point we can be assured that the new cognitive elite in technology will do everything in its power to preserve rent seeking in both the private and public sectors so they can "get theirs" before the house of cards collapses.
Seastead this.
Managers are driven to meet unrealistic customer expectations of high quality, low cost or even free software. These expectations, wherever they come from, are disconnected from the realities of quality software development. Eventually our litigious society will begin to better associate software failures with financial loss, physical injury, and death. The resulting orgy of lawsuits may eventually raise the penalties for bad software high enough to make it worthwhile to retain experienced programmers. Hopefully this will also promote the often disparaged notion that software development is an engineering process. As things currently stand anyone suggesting that a major loss is due to software failure is likely to end up as the target of a negative publicity campaign and threats from the government (recall a recent incident involving the malfunction of a particular manufacturers vehicles or the little problem back when that intel had with its floating point arithmetic).
[1]> (format nil "~r shillings only." 1234567890)
output: "one billion, two hundred and thirty-four million, five hundred and sixty-seven thousand, eight hundred and ninety shillings only."
(Sorry, but you did say "old" man :))
You can also do this:
[2]> (defun replace-old-man-with-simple-lisp-function (shillings) (format nil "~r shillings only." shillings))
output: REPLACE-OLD-MAN-WITH-SIMPLE-LISP-FUNCTION
[3]> (replace-old-man-with-simple-lisp-function 1234567890)
output: "one billion, two hundred and thirty-four million, five hundred and sixty-seven thousand, eight hundred and ninety shillings only."
Disclaimer: I'm still one of the youngsters, due to the fact that I'm still a student.
Okay seriously I've just run out of pointless things to say.
It cost me X years of my life! That wasn't a gift. I paid for it/earned it. I could have been sitting around watching my butt get fat instead.
is not just syntax translator done by human........
hard core stuff are only to be programmed by super human........
that's not age can be affecting.......becoz only u have the super power........
if not.....u r just one of them......then just pls find ur pathway up......dun try to stay here.......
Here in Israel employee are paying for their health insurance in the form of health insurance tax. I don't see any age discrimination here - there is a lot of middle-old age people in the software. Another mitigating factor could be the constant drain of ambitious young coders to better paying positions in US and Europe.Yet another - lower wages make outsourcing less attractive to employers.
Wadwha also offers some get-real advice to those whose hair is beginning to grey: 1) Move up the ladder into management, architecture, or design; switch to sales or product management; jump ship and become an entrepreneur. 2) If you're going to stay in programming, realize that the deck is stacked against you, so be prepared to earn less as you gain experience. 3) Keep your skills current -- to be coding for a living when you're 50, you'll need to be able to out-code the new kids on the block.
There is some truth in this, but it is only half of it. Personally, I have only ever movedup in salary over my career, and I have been able to avoid management so far - I am now 52.
The thing about keeping current - for one thing, it isn't as hard as it sounds; I have recently taken to PHP and Java coding, which I have spent about a week learning. Not from scratch, of course, since I have a couple of decades of experience with C and C++ (and a million other things...)
But as far as I can see, there are quite a few elderly gentlemen around whose great strength is that they are very, very familiar with MVS and COBOL, both of which allegedly died "years ago".
It's NOT single inheritance that's the design mistake--at least from a type-theory point of view. Single inheritance plus interfaces is excellent, much better than the huge mess that multiple inheritance causes in C++.
The design mistake was twofold:
(1) forcing every function/method to be a member of a class (google "execution in the kingdom of nouns" to see what kind of damage this causes).
(2) not providing a better mechanism for code reuse than inheritance. (google "traits a mechanism for fine grained reuse" for an example of something that would have been better).
Import is also much better than #include. I agree with the hypocrisy around operator overloading, the fuckedness of enums, etc.
If you want a preprocessor with your Java, no one is stopping you from using one. I know a team that ships several flavors of Java libraries and they use the C preprocessor to generate a set of source code specific to each platform.
I see a trend...older workers are actually desired now, because older no longer means, "learned how to program before there were good colleges and programs in Computer Science". Basically, a 35 year old went through a computer science program after the golden age, so their training is just as relevant as the newcomers--except now the older guys have experience to boot.
I work at a software company of 500 people. There are probably fewer than 5 people under the age of 30 that have any sort of major role in any of our projects.
And stand over them and watch them "fix it" over and over until your Cayman trip is gone and your BMW is gone and your wife takes the house, because twice as many coders at half the cost working three times as long to get it right costs a lot more than half as many guys working a third as long.
You might find the following link insightful...
Mit der Dummheit kämpfen Götter selbst vergebens