"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.'"
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!
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.
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.
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
"Elderly?!?!? I'm 41, you insensitive clod!"
Now get out of that igloo and back on the ice, Gramps. Polar bears gotta eat too.
"This post is an artistic work of fiction and falsehood. Only a fool would take anything posted here as fact."
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
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."
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.
Why was that necessarily a bad thing? Asshole young punk bosses aside, why do you want a boss that's older then you? Is it some old-fashioned respect to elders you demand? Do you feel passed over for that position?
Bossing, and doing are two different things that don't have much overlap. It's good for a boss to be knowledge about what his worker bees do, but it's really not that crucial. And the skill overlap between a boss and a worker is hardly anything. Ok, sure, the skillset of a boss includes babysitting, settling disputes, wagging fingers, and sucking up to higher-ups. All sort of common sense skills that anyone could have, but not a specialty of workers. Seriously, why the hell do people stop doing good work and become bosses. Why isn't there a bachelors degree in management with entry level boss positions. Why are bosses paid more?
Inertia isn't reason enough.
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.
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.
... 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)
No really. A good programmer should be about to apt to any language or hardware. The examples you give show the typical "young guy's" view of programming, that is "every type of programming is just like my PC and I and always use the language and tools I choose." Where I work we use dozens of languages, multitudes of hardware types, and various coding practices (real-time, safety critical, OO, etc.). Sometimes we are called on to update or upgrade systems running on obsolete hardware, using obscure languages like Jovial, and tools that are 20+ years old. Your run-of-the-mill Java Boy just out of school can't do that.
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!
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.
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.
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
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.
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.
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 bachelor's degree in management exists (the Bachelor of Business Administration, known from the expression "The limit as GPA approaches 0 of the Computer Science Student is the Business Student"). But to get an entry level boss job without experience you usually need the MBA. Knowing the owners/board members/executives doesn't hurt either.
Why are bosses paid more? Well, because they're bosses. They're making the decisions on salaries.
Fact is, positions where you _do_ something will always be at the bottom of the hierarchy. To be a "higher up", you have to be higher than someone -- those who report to you. So unless you want to be on the bottom forever, basically just doing what you're told and with no real input into any corporate decisions, you have to go into management. Or into business for yourself.
Militaries make this explicit: you can be the best infantryman, combat engineer, tank driver, or whatever, but it doesn't matter; you're still an enlisted person and you still have to grovel to the most junior officer (manager) in the service. It's the same way in the corporate world, they're just less obvious about it, and there's more mobility from grunt to manager in most cases.
Congratulations, Anonymous Coward! From now on, whenever I see a resume with the name "A. Coward" on it, it's going straight to the trash.
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.
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'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.
Sure, but what do you think 40+ year old programmers have been doing for the last 20 years? We might not have been taught OOP but we've been using it since the guys who were taught it, were in diapers.
"Believe me!" -- Donald Trump
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.
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.
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!
They won't offer the older developer a job at any price.
I've been in the industry for over 20 years and I've never encountered a developer in all that time who hasn't "learned anything new in 20 years".
(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.
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.
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.
Simpler than you think.
Those other older programmers who didn't get promoted to management are the biggest threat to the security of the ones who did.
It's much better for the new managers to have a slew of 20 somethings around who don't really know how the world works yet than a few older jockeys who could take his place fairly easily. The new managers damn well know the value of those other older programmers and that's why they get replaced.
It's very simple.
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.
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
I'd say the only drawback is you dont see people putting in more than 50-hour weeks at the most.
IMO working more than 40 hours a week is brain-dead stupid, unless you love your work more than you love your life. Why in the HELL would anybody sacrifice any more of their precious time than they have to? Just a couple of decades ago if your job required more than 40 hours it was referred to as a sweatshop. A hundred years ago when it was easier to exploit the poor, twelve hour seven day workweeks were the norm.
Things are going backwards, and you dumb kids are helping it happen. STOP IT!!!
Free Martian Whores!
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!
"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.
Totally agree. I don't know why people can't grasp the concept that no matter how much work you do today there will be more to do tomorrow.
I hear people all in a tizzy say, "I HAVE to get this done" and I just shake my head. Why? What will happen if you don't? A deadline will slip? They've been slipping for thousands of years. Yours slipping won't bring civilization crashing down. Use this crisis to learn to set realistic deadlines and manage expectations.
Now I'm not advocating being slack or lazy. Put in a full day's work. Work hard. Get things done. But GO HOME! If you can't set borders on your life and personal time, your employer will happily work you 80 hours per week - and you'll still have too much to do, just like when you were only working 50 hours a week.
I think some people just operate in perpetual crisis mode. There's something about the feeling of urgency and immediacy that drives and sustains them. Not me.
FWIW, I'm 41, been a programmer/"software engineer" for going on 20 years, have been at my current position at a large company for 10 years. All my customers praise my performance and results. I deliver solutions that work on time - with very rare extra hours.
I continue to enjoy the software development process: study problem, select solution platform, implement. I'm mostly a Java hack (learned Pascal & C in school), am picking up Groovy & Grails, do a fair bit of XSLT, and am getting more versed in "semantic web" technologies (RDF, OWL, Sesame). Being a coder does mean constant learning, but I'm finding the things I'm learning these days are "higher up the stack" than earlier in my career.
As others have pointed out, the young bucks tend to have fewer obligations outside work (read family), and are more eager to make a name for themselves impressing management. I don't know that there's a way to solve that. I enjoy my job, but it is a job; I have other things to do with my life. If management chooses to discard the institutional knowledge and experience I have, that's their choice.
That was a long rambling response, but it is a subject I am definitely familiar with and interested in.
- Jasen.