Too Old To Code?
Weyoun writes: "Mercury News has an interesting article up about age discrimination in the Valley. As a 23-year old software engineer, I'm doing great right now, but I'm terrified about what will happen when I hit 40 or 50. Software is the only industry I know of where one's marketability is highest right after college and decreases geometrically thereafter. Any ideas for a second career?" Better yet, is this only in Silicon Valley? Only in the United States? Talk amongst yourselves.
At least you don't become obsolete as fast as the hardware you work on. Now that would be scary.
One time I threw a brick at a duck.
which planet are you living on?
your experience is not at all common. you're worth more with more experience. right out of school, you have no experience, so obviously you're worth less.
not sure where you're getting this info from..
--
--
"It is now safe to switch off your computer."
Teach.
Sure, if you don't adapt you'll not do well. There are great people who've endured since the beginning. Wozniak (sp.) is old, for instance, but he's managing.
Also note that old languages are still in use, too. (Just cause something's deprecated doesn't mean it's not used!) COBOL is still in use, probably APL, too.
I think ageism is just as bad at the other end of the spectrum. I'm 15, and while I'm no Kung Foo master, I've been frequently doubted as per my coding ability. Just cause I lack experience doesn't mean I'm bad at coding. I was best in my class (a class I took at IU), but the social dynamic was often that of condescention. It's just as hard for us little guys, I'll have you know.
Mike "e-mail me for more" Greenberg
http://www.yourmothernaked.com
The porn industry shares the same feat, marketability decreasing with age.
.jpgs...
(Except for fetish - some people luv'em saggy.)
Now where did i put those
Well, I'm a webmaster, and have been since before I was twenty. Been doing it for awhile now, and I havent really seen any web programmers over 30. Although, at my current job, there's nothing but database programmers who are over 40. I havent seen one younger than 40 yet. But all the techs, web programmers, and newer technologies go to the younger guys. I guess it could be that we grew up doing nothing but sitting in front of a computer screen, but I've learned almost everything I know either from self teachings or by an older coder showing me the ways. I ain't one fer' that fancy book learnin'. Hopefully the ages will naturally balance themselves out over the next decade, or I'll be out of a job soon :)Sharkey
www.badassmofo.com
I feel computer programming is an apprenticeable skill. Indeed, it's similar to writing (as in English). It takes 20 years for a naturally gifted writer to reach the proficiency of a master, and only a handful of years for an apprenticed writer. We need something similar to a Master's of Fine Arts.
Programming isn't just algorithms, it's mostly heuristics. They can't teach those heuristics in academia.
As a young programmer, I know I've learnt more engineering skills by glomming myself onto master programmers than from textbooks that teach only theory. Indeed, I know that no amount of fancy diagrams will make a bad designer good; they may only make a good designer better.
Sorry, I'm ranting. I just wish that finding suitable mentors was easier. If you want a silver bullet, that's it: Share information.
I'm lucky. I'm 31, and essentially "chief programmer" where I'm at. Which means that, although I wrote much of the original code of the project, I haven't written any in months. But I do decide what code needs to get written (frinstance, what services need redesigning), who should write it (based on experience, etc..) and what priority the project should take. If I want to code, I can - although sometimes I have to make the case that it really is better for me to write something in a day than it is for one of the junior coders to write it in 2 weeks.
Don't worry, it's not painful. Part of my job, based on my experience, is to know anything and everything I can about the field. Which means that I pretty much get to do whatever I want for a certain percentage of the time. I hack java, but I also contribute to an open source game, and I've recently started playing with PalmPilot coding. Do I hack 10 hours a day anymore? Nope. And honestly, I can't say I miss it that much.
By the time you read this YOU too will be out of date.
Devilish
--------Irc.destructor.net--------
--------The Geek Network--------
Devilish
www.sci-fact.com - From Fiction to fact -
Your one stop science news and discusion site.
There is some kind of optimality going on here... a cost-benefit analysis which goes from very experienced and expensive to very green and cheap. Usually companies want someone in the middle.
Age breeds wisdom. I work for a defense contractor, and though I'm only 26, my boss and mentor is in his 50s. He has knowledge, relevant today, in the field of radar video and electronics that still can't be matched by any of the "young upstarts". His knowledge can only be built by the years of experience that he has.
Even more importantly, Nigel knows how to bias a 12AX7 into distortion. (Look that up if you're into tube guitar amplifiers.)
As the computer industry matures, if you keep your skills up, I'm sure that there will be more and more positions available for those of us who were on the Internet before Yahoo.
Besides, by the time you're too old to code, you should have already socked away a nice portfolio of mutual funds and stuff. New Viper every year?
Fire and Meat. Yummy.
I know a guy in his mid-50's who is/was pursuing a PhD in CS right up until a year or so ago, when a company essentially recruited him out of the program. He is supposedly working on his dissertation while holding down the job, but it looks like they have put him on hours and pay that make it hard for him to stay interested in his dissertation.
This may merely reflect what others are saying, namely that it is the currency of your skills rather than your uptime that matters. If that is the case, an obvious strategy would be to work for top dollar as long as you can compete with the young'uns, go back to school for a couple of years, repeat until dead.
--
Sheesh, evil *and* a jerk. -- Jade
The glass ceiling come into play in lots of technical fields. What you were taught starts going obsolete as soon as you graduate, so many employers look for young blood with the latest knowledge. Its especially obvious in computer science because thats a new field (compared to say civil engineering which has been around since the Romans). But its also present in engineering where computer analysis is quickly replacing a lot of older mathematic techniques. Old engineers are having trouble getting jobs too.
The key to a long life in engineering is basically getting far enough up the ladder to get into management. After that you really aren't judged on your technical experise anymore. Its also good idea to jump from the sinking ship early before it drags you down with it.
My dad was basically a lower level engineer for most of his life, mostly due to being in the wrong place at the wrong time when layoffs hit. As he got older it got harder and harder for him to find work as an engineer. He ended up teaching.
So far I've gotten all my Karma from telling people they are wrong... :)
This is something I've started worry about myself lately. I'm 30 now and wondering if I can keep up. One of the major reasons I left my job at id Software was to find new challenges and learn more.
I've been programming in C for like fourteen years now and it seems C is starting to phase out. C++ and other languages are starting to become more widely used and I was starting to fear that if I didn't learn C++ quickly, I'd get phased out.
The other problem I have is that from over a decade of work in C, it's taken me a period of adjustment to switch to a different methodology such as C++. Sure I understand the semantic differences in changes from procedural to an object based design, but I felt lost for the first while in applying those theories to real code.
I've found that in order to stay competitive, one must never stop learning. That may even include changing jobs in order to successfully find the training you are seeking.
Due to how fast technology changes, I think it will be rare for a person to stay at the same job for more than a few years in the computer field. You just usually can't get enough variation in the job to get all the training and skills you need to keep advancing your knowledge and your career. If someone does find a job that does provide this, they are pretty lucky.
/// Zoid.
I've lived in three states during my adult life (I use the term adult loosely), and I've seen pretty much the opposite. Because I'm in my mid-20's, I'm not taken seriously at a new job site right away. It usually takes about a month or two for senior management to understand that I do know what I'm talking about and that I'm experienced and capable of running medium to small IT departments.
By the same token, I tend to work in non-computer companies (i.e. marketing firms, industrial manufacturing, etc), so it's a different world. Perhaps it's not regional, but dependent upon the industry you're in.
-Jer
I'm 29, I've been coding on my own on and off (mostly off over the past few years) while I pay the bills doing the tech-support thing (which FUCKING SUCKS). I'm getting ready to finally go back to school part-time this year, hopefully full-time by next year, so I can learn all the theory/style/background I'm missing. Problem is, I'm experienced enough to know I don't want to work 60-70 hours a week for some might-or-might-not startup; I want to have a life and work somewhere that's past its gotta-make-it-to-the-IPO stage.
/or WebObjects (hey, I'm a Mac geek, what can I say), it shouldn't matter how old I am, and my tech-support background is an asset in terms of useability consideration and the like. But is this really the case in the develpment world, or am I screwed before I start? I haven't been able to find an answer one way or the other.
I figure as long as I learn something useful like Java, C++, XML, and
Just one more thing to worry about, I guess.
I use Macs for work, Linux for education, and Windows for cardplaying.
Well I have not yet gone to college but I thought the code was for more than the money.
I code for fun. I know people need to support them selves but there is plenty more out there in the IT industry(sp?) then coding. Stuff like sys admin that pay well enough. Please correct me if I am wrong. I'm not 'out there' yet.
-----
If my facts are wrong then tell me. I don't mind.
I'm 26, and I'm the opposite situation right now. I work for a local University as a SysAdmin, and I've been here for almost 3 years. This is the place I want to work from when I'm 40 to retirement. Becuase it's a university, where older standards prevail, the agism works in the opposite direction, even if this seems contradictory to some of the the technical employees. I am working with new technologies and all the newest toys, it's just sometimes the younger employees aren't recognized for what their work because they aren't "experienced". Maybe they're looking for someone with 15 years Linux experience, I don't know...
A lot of the young guys are leaving for greener pastures (A University will only pay so much). My wife and I are waiting for a second child (OK, so I'm not a typical young employee), and the job security is maximal, which is great.
It's very odd to be presented with a situation where I could work at the same place in a technical position until retirement. But the benefits are great, the pay is OK (for Canada), my skills aren't dying off, and I enjoy the work. I've worked my way up from Jr. Programmer to SysAdmin in about 2 years... So that's my advice...
I interviewed as a UI designer for IBM never thinking I'd actually get the job.
I was 23 years old with an Information Science degree and ~18 months experience doing all manner of tech jobs jobs.
When I was offered the job I asked my new manager why they were giving it to me. The answer was basically age and relative lack of experience. My manager hoped that I would bring new ideas to the lab as well as more likely to "be moulded into the IBM way" of doing things.
I bet the fact that they could pay me 15-20K less helped too!
my blog: good times, man, good times
Personally I think there are two particular issues here:
:)
1. Its hard to stay current, young people start off with a different viewpoint that often helps them, whereas older programmers have to constantly relearn, some people can do it, some people can't be bothered. Take the whole swing of Visual* stuff at the moment, definitely not my scene, the concept of designing a piece of software like that makes me cringe, but a lot of people are doing good stuff with it, if thats the way the future goes, I might end up obsolete out of pure stubborness.
2. Its damn hard work sometimes, long hours coding, hard debugging, caffine and coke and pizza diet, maybe I'll be sick of that stuff by the time I reach 40-50. Maybe I'll start writing books like a lot of other older programmers have, beats all-night slugfests with gdb.
but I have one consolation, one little guarrantee, if I still wanna be in the game when I'm that old, in about 2038 all the unix boxes are gonna need recoding to solve time(); issues, ressurgence in C system programmers? I think so
You can't win a fight.
Lot's o' good comments so far, but the main thing I see is that when I was 20ish, working 80 hours a week was 'cool'. Now that I am thirty-ish, I still do it, but only because I work for a company I have an equity stake in ... and every day, I think about how *nice* a 40-hour a week job would be.
... because the gonzo coders are better at saving really badly managed projects.
I can easily see that when I am 40, I'll tell some manager to shove it if he thinks he is getting more than 40 hours out of me.
That's what I see the carreer threat as. Companies will be more willing to pay for some young guy to work gonzo hours and have no life than for a seasoned vet who will screw up the schedule by "only" working 40-45 hours a week
Look at the gaming industry; exclusively young gonzo types working for companies without strong management skills. They work in an industry where nearly every project involves lots of research, and research doesn't manage well.
-- "Vote Democrat. Because the current crop of conservatives are just bugnut crazy."
Yuck.
I'm currently experiencing this -- I'm 18 years old, graduating high school this year. I am also a very talented coder -- both C/C++/etc and internet languages -- html/javascript/etc. Unfortunately, I can't get a "geek" job anywhere. Why? A few reasons:
Believe me, getting the good geek jobs NOW, even though I am highly qualified, is insanely difficult.
.- CitizenC (User Info)
I'm 30, so I've not hit such problems yet, but I can see it coming. The problem (at least in the companies that I've worked for) is not one of age discrimination, but a strange combination of the pace of technology and a sort of peter-principle-corollary.
/. As one friend of mine once said (of getting a social life), "my .emacs has gone to shit."
First, there's the fact that the technology is changing so fast that the mature attitude that helps in most industries is a killer here. For example, if I look at new things like Zope, PHP, mod_perl, XML and other Web technologies and say, "I have real work to do," then next thing I know I'll be obsolete. One (or more) of those will certainly become critical to my job within the next few years. I actually have to take time out of my career to go learn about them premtively.
As for the Peter Principle, there's several odd pulls on one's career. I'm being slowly herded toward management. I could continue to do what I do best, but there's just not as much of a career path in wrangling ugly networks as there is in managing the people who do. So, as I move into a role that's not my primary skillset, I have to work twice as hard to be successful, and that means that all that time I used to spend reading RFCS is gone. I'm not contributing to USENET. I rarely check
So, given all of that, what happens when I'm 40. It'll be twice as bad then, and I won't be able to fall back on what I learned when I was 25 anymore.... 50 is just downright scary.
In the end, the only real path for me is to get involved in starting a company. Sometime in the next 5-10 years, I'll find a good CEO and a few other technical folks who are hungry for the same sorts of things I am, and we'll set about creating the kind of company where we can happily work for the rest of our careers, shaping our own futures.
Until then, I'll keep sweating.
I must say, though, that in terms of outright age discrimination this is probably one of the best industries. If you can demonstrate competence with the technology that we need, we'll take you. If you can also demonstrate applicable experience over the course of decades, we're going to lock you to the chair until we can get the offer letter drafted.
Lets look at this, most 20-25 year old are out of college with SOME expeirnce, but they have some advantages over gurus.
1) they are 20 some, they can work 16 hours staight 5-6 days a week with nothing more than a case of mountain dew per day, sure you CAN do this at 40 years old, but it is more difficult.
2) they have the newest and coolest buzzwords on their resumes.
3) they will work cheaper.
4) they ussually don't have a family to support and are more likely to re-locate.
All of this is based of my Stero-typical sixth sense, the above points MAY not be true, but this is what I found.
Seriously, most 20-25 year olders without a family will be happy if they can have a cool car, pay rent, play a game of quake when they get brunt out. Most companies are cool with this.
"`Ford, you're turning into a penguin. Stop it.'" -THHGTTG
Most of the same principals apply. With micros, people just are sloppier. But they should follow many of the same practices.
Even with this programming shortage, employers discriminate against older people. Or they demand exact skills, but then they ask for increases in the H1B visa limit.
Some information on it is at the Programmer's Guild.
Petition to Abolish the H1B.
Fight Spammers!
Frankly, as a 21 year old with no current job prospects, what worries me the most is that by the time I am 40 or 50, I will have been relegated to the status of "useless" by some faceless government agency, and that my body will be thrown into a vat where it will dissolve, leaving only my internal organs to be snapped up by some illuminatus.
Don't worry about the future since you have no control over it.
Hopefully I didn't put any [] around my words.
Well, that and your lack of a "collage" (sic) or university degree indicates that you might not have the patience to stick to a job pounding code for four years. That's a red flag my own company tends to look for.
Don't underestimate the experience you can get from school projects, or the value of a degree. If you believe you're "highly qualified" while at 18 and never having held down a full-time job, you might be in for some nasty surprises on your first real project.
Teach is a nice thought, but not in the SF Bay Area / Silicon Valley.
-TShrew
(completely agast at the state of education in California)
I have been offered 6 figures recently for my > 20 years of experience, so saying that you can't get great bux > 30 years old isn't true in my case (one exception means it "isn't *always* so").
I atttribute my coding longevity to two things:
- Insatiable curiosity, which keeps me learning new languages & technologies;
- Truly *listening* to people of *all* ages and learning whatever/whenever I can.
I'm a part-time college prof, and I am a complete believer that the best teachers/professors are those who can learn from their students. I can't count the number of times I've heard or seen some cool new technology (recent example : Python) from a student who's "really into it". I've had some wonderful hack sessions with this student as well as others I've met through her.On the other end of the spectrum (agewise), some of the best techniques I ever learned came from a mainframe (IBM) systems programmer who was in his 50s at the time I learned from him.
I'm not trying to brag overmuch here .. just want to pass on some hope to those who think > 30 is the kiss of death both financially and technically : it ain't necessarily so *if* you can maintain your enthusiasm & curiousity.
I'll only stop coding when I want to stop coding; I won't use age as an excuse for stopping.
I remember reading once that "experts" (that nebulous phrase) only allow for the existence of prodigies in two fields: music and math. That is, young people (espec. children) can only be as good as adults in those two fields. Perhaps we should add programming to that list. Of course, that depends on how much you think programming is independent of other skills that we can only learn through growth and time and maturity.
Ceterum censeo Microsoftam esse delendam.
Ubiquity, an ACM magazine/forum, had an article titled "As A Man Grows Older" by a Ubiquity reader. The story is somewhat chilling. Here's the opening sentence:
)
"In 1991 at 50 years old I was laid off. At the last section meeting (with my supervisor) the statement was made that 'There is going to be a layoff. The younger members of staff do not need to worry.'"
(url: http://www.acm.org/ubiquity/views/u_reader_1.html
As a young person, I am worried about job security as a grow older. I am heavily leaning towards majoring in something other than computer science. Programming is almost always multi-disciplinary anyway. I plan on being an expert not only in the programming field but in another; able to get jobs in both fields.
khaladan
What a crock. The problem isn't that old coders aren't worth anything, its that any old people who were/are coders have either JUST entered the field, or left the field for upper-management jobs. Thats leaves an 50 y/o coder still in the job with shit pay because he's probably not worth shit. Thats how I see it, in a nutshell.
In the valley, certain companies are/were notorious for hiring fresh out of school, burning them out, and going for more. My first employer, (name deleted) Semiconductor, was doing this in the mid-70s, and at last report is targetting employees over 50 for layoffs, regardless of skill. At times, the criteria is how much it costs to terminate an employee.
My SO was unemployeed last year, and at one place (name deleted because I forgot) the HR idiot said "we don't want people over 50, because they'd only retire in 20 years."
In my experience, a company will use layoffs as a golden opportunity to get rid of the people with the 'worst' cost-benefit ratio. This sometimes means that the people with certain key skills are let go. This leads to situations where key systems go down and the laid-off employee has the opportunity to make a killing as a consultant, or to exact revenge by refusing.
It *is* harder to get older employees to work absurd hours. One of my co-workers, aged 23 or so, will routinely work 10 hour days at a minimum, and has been found coding at 2AM. I have a life, pets and an SO, and prefer to get home at quasi-rational hours. I know this costs me money, but screw it; it's my life and career.
Sorry to say this, but in reality probably aren't as good at programming as you think you are. I took high school programming and I thought I was pretty badass, I could out-code nearly everyone. Then I went to college and found out I had a lot to learn about coding. I also had 3 programming jobs in college; each time I went into a job I thought I was badass and ended up seeing just how far I had to go. When I dropped out of college to work for a local startup, again I thought I was pretty badass. Well guess what, history repeated itself and I have been learning at a breakneck speed. I'm having a great time learning from guys who have been coding for 20, 30 years. I was never a "bad" coder, I just wasn't as good as I thought I was. Unless you're another John Carmack I think you'll learn you aren't as badass as you think you are, either. However, surround yourself with people better than you and you eventually will become great.
.agrippa.
Like the guy said, it really depends upon what position you're going for. Even more, it really depends upon what position the employer really, really wants to fill. And they're sometimes not the same, and you'll never know the difference until after the interview.
I interviewed at a company where they said that they wanted Java developers. In reality, they wanted Java hackers that could, pardon the cliche, hit the ground running without touching a book. A couple of the questions included:
- What compiler error messages will this Java code generate?
- What was deprecated in 1.2?
- What container class will solve this general problem? (their preferred answer was: "it depends")
Another question from another company: would I be able to tell what code is yours without seeing a name? The correct answer: there is no correct answer -- you lose either way. If you say you're a conscientious coder who comments your code and/or makes it self-commenting, you gold-plate. If you say you would adhere to their coding standard, you show no initiative.
Nowhere in either interview did they ask me to talk about model-view-controller, when to use adaptors, O-O concepts & design, software engineering, or database normalization.
But I guess the nice thing about such interviews is that they tell you what the shop values most: in this last case, quick hack-and-slash coding that you can go back and clean up in a later release (uh-huh).
Another thing to watch out for: I've gotten into the habit of putting my most oft-used routines and code snippets in files I drag with me wherever I go. Unfortunately, I tend not to remember the details of what's in those files, and the contents invariably turn into interview questions. E.g., "What is on the first line of a XML file?" Hell if I know what exactly it is... I just copy and paste it, or use it in a skeleton file. So before you go into an interview, bone up on your bag of tricks.
Another little tidbit for the geriatrics (27+ years-old): if you want to be a developer, do not under any circumstances take a project management position. Or at least if you do, do not put it on your resume when you want to go back to development. I have spent so many interviews trying to convince a prospective employer that I really didn't want to be a manager, and a couple of them rejected me with the reasoning that it sounded like I really wanted a management position. If you have to, tell them you tried selling used cars or that you joined a cult. Just don't let them know you did project management.
I've come to realize that no matter how good you are, you're never going to really know what a prospective employer is looking for until you hear back from them after the interview. And us oldsters have a few things going against us:
- perceived higher medical costs and sick days off
- higher salary requirements due to experience that an employer doesn't think they need
- time wanted to spend with family
Bottom line: would I have gone into software if I knew what I know now? Considering the late nights, missed vacations, prima donna MBA grads, prima donna MIT grads, bonehead managers, bonehead customers, bonehead requirements, bonehead office managers, bonehead sysadmins....
Probably not. But it's hard to pass up the six-figure income and stock options. Party on, Wayne.
DT
Is this thing on? Hello?
Let's see what social problems we have found in the New Gold Rush:
Domestic violence (as per article in SF Weekly) among immigrants, hard to stop because a woman's right to stay in the US often depends on staying married to a man who works in the US
Age discrimination, which happens -- the anecdotes form a pattern, even if it's hard to study statistically (for the reasons stated in the Merc article). Employers are looking for just-out-of-college youngsters who will work hard and long hours for less pay, cheap perks, and a social atmosphere. They don't want to pay older people more for fewer hours; they foolishly look for specific skills instead of aptitudes (the "required: fifteen years of Linux experience" joke). They're also hungry for more cheap H-1B workers (see previous /. discussions).
Environmental disaster from chip making (see previous /. discussion), plastic wrap using, the paving over of viable farmland, the foreseeable mess that is/will be Silicon Valley urban patterns, etc.
It really is a new gold rush, a hundred and fifty years later. Yes, it has changed the world. Yes, it will have lasting effects, good, and bad. Yes, when people are chasing after money, the unsavory parts of human nature come out in full force. Lee Iacocca said in _Talking_Straight_ (the sequel to his autobiography) that his parents told him not to go to casinos; all that loose cash lying around attracted the worst kinds of characters. He compared Wall Street in the 1980s to such a casino; one could easily move the analogy to Silicon Valley in the 1990s and, if we don't change (due to external or internal forces), the Naughties.
Ceterum censeo Microsoftam esse delendam.
I do unix administration and some programming, but I have a degree in physics and I'm currently working on my phd in physics. Being young is one thing, but I can say for certain that some of the older guys that keep up with the cutting edge are scary scary good at doing what they do. Being young might mean that your insurance is a little less and that you play well with some of the younger members of a group, but passing over older programmers that know their shit is probably the worst mistake you could ever make.
A programmer's union, just imagine the press the strikes would get.
Programmers who are now in their 50's were in their 20's thirty years ago. Now think, how big was the computing industry then? How many people did it employ?
Look at it this way: suppose all the software developers who were working 30 years ago, then in their early 20's, still have software development jobs today. In this scenario, it still looks like the developers in this age bracket are in the ``vast minority'' simply because they are a small group of people.
What may be true is that computing is hard to get into past a certain age, or that people are otherwise unlikely to get into it for whatever reasons: having other careers, or believing nonsense about software being a field for young people (supported by phony statistics that fail to take into account the population dynamics).
In other words, the 55 year old developer you are likely to meet today is probably in that small minority of people that started programming a good twenty or thirty years ago, rather than, say, five years ago.
But that is not the problem being discussed; what is being discussed is starting young and *staying* in the job that you love. I think there are no worries there.
When twenty year olds put in 60 hour weeks stressing to meet that deadline - that's nothing new. I'm sure plenty of people here have done it. But when was the last time you heard of a fifty-year-old doing the same thing? The reason that these "elders" have trouble getting work is that they tend to have a life outside of it. Kids, wives, golf, whatever. I, for one, think this a good thing.
But I have to say, many geeks would disagree with me. I'm not passing judgement on anyone who does, but the young people who empathize with victims of this problem are the ones that create it. Everytime you pull all-nighters, work weekends, go on coding marathons, you're sending a message to the company that they can get way, way more work out of a twentysomething at a way, way cheaper price (you haven't had 20 years of raises jacking up your pay). This isn't anyone's fault, but I think it's a big part of the problem. Any PHB would take a hypermotivated employee willing to work for pizza and stock options over a more staid, money-in-the-bank guy with kids to put thru college and financial obligations. Pizza and stock are a lot cheaper than cash and full bennies. That's just simple economics.
--
I think there is a world market for maybe five personal web logs.
I give a link to my original policy on recruiters and agencies in which I say that I will work with them under strict conditions - conditions that they would almost never meet, yet I held out the policy to be fair.
But because of the general ignorance and downright rudeness of headhunters and recruiters, I felt it was time to take a stand and not just stop working with them, but be public about it and encourage others to stop working with them also.
Sometime soon I will write a page for employers about why they shouldn't work with recruiters either and what they can do instead.
Right now though I have a helpful page entitled Market Yourself - Tips for High Tech Consultants which explains in detail how I find good clients without the use of agencies or recruiters, and how you can too. It also goes into further details of the problems of working with recruiters and why I think they're an all around bad idea.
And if you're a recruiter reading this, be sure to read the Word I Live By.
Mike
-- Could you use my software consulting serv
Frustrations of an old programmer:
Many programmers hate the more rigorous languages, because it's harder to get a program to compile the first time. Wrong answer, people. Catching errors at compile time is far cheaper than catching them later. What you want is for the program to run correctly the first time it compiles. I write mostly in C++, but I miss Modula II/III.
Despite this, it's a great time to be a programmer.
Something you begin to learn when you hit 30...
Working over 40 hours a week doesn't prove you care about the company. It just means you don't care about yourself.
I am far more productive working 8 hour days and getting 8 hours of sleep a night, than I am working 16 hour days and cramming in 5 hours of sleep.
Actually I think I learned that lesson when I was 25.
Hey Zoid; don't forget that C++ was born around 1980. You were only 10 then. So you can't think of it as this new stuff that is phasing out C, and giving C programming 30 year olds a run for the money. :)
And anyway, many C++ programmers don't know jack about writing good C or maintaining C programs. They don't understand how to do polymorphism or generic programming unless it's provided by their language. Smart C hackers have been doing this without language support, and thus better understand how it works, and have better intuition about the performance impact of certain C++ language features.
"Patience is a virtue, afforded those with nothing better to do." - I don't remember
I think that the trend we are going to see is that boom of young programmers from the past decade is going to continue to work until they are in wheelchairs. Their longevity is going to make it harder for large, inexperienced saplings to get into the industry, unless the industry contiues to grow wildly to accomodate the new blood. ;)
I predict that as the growth tapers off, there won't be as many opportunities for new programmers. Programming will once again be the profession of bearded old farts.
In other words, in the computing industry, there will be a repeat of what has been recently happening in other industries. The ``internet boomers'' will be prosperous, and have stupid ``Generation-Z'' kids who can't get the good jobs that their parents have.
What do you think?
As long as you're working on relatively simple projects that don't require the kind of knowledge or experience one gains at University, then you may be OK. But what if your company wants you to implement a compiler? A database system? Parallel or distributed computation (this could be a big thing in the future)? Or engineer a system that is designed to have a very long lifespan? Will you have the knowledge, experience and problem solving ability to approach the job and do it properly? I doubt it.
Being able to learn and stay current is great, and it's something everyone needs to do in this industry. But I have worked with some very good programmers, and about 50% of what makes them so good is innate things like intelligence and work ethic. Howver, only 1% or an otherwise insignificant amount of that is their ability to stay current. The remaining 50% is the knowledge and experience of working with the fundamentals of thinking and solving problems. A good University education in ANY discipline will make you a much better thinker and problem solver. And a computer science degree in particular (from a decent school) will make you particularly adept when those problems are computing problems. This should be obvious. A large part of the process of getting a good education is being constantly faced with problems that are completely new, that you don't know how to approach, but you have the tools to solve. In the real world, if you're faced with a problem you don't know how to solve, you may not even know what the tools are. Inevitably, you will either solve it by mimicking a solution to a similar problem, or you'll try and come up with your own means of solving it. You may end up with a result that's far from optimal, if not simply incorrect.
I thought I was pretty good before I began University. I was a hard-core geek, and spent many hours writing code, every day after school. I figured I was capable of becoming a software engineer without a formal education. Well, it was a pretty big surprise when I first got a taste of the real world, and realized that there were problems I didn't know how to approach. I discovered that hacking together a solution out of duct tape, using code found online or in books for reference, and doing whatever it took to get it to work is nowhere near good enough. Unfortunately, I was right. I probably WAS capable of going out in the real world and doing a lot of jobs in this industry when I was 16-17. But now I know that I would not have done 1/2 as good a job as I would do now, and would probably have deeply regretted not going to University 10 years down the road when I got bored of whatever I was doing and had aspirations to do something far more interesting or challenging. If you have aspirations to be as good a programmer as you can be, then I think a formal education is pretty necessary.
I think the bottom line is that it's all about how much breadth and flexibility you want to have in terms of your employability. There are many jobs you can get away without the knowledge and experience a formal education brings. But they tend to be the lower tier jobs. If you ever switch jobs - and you will - you may find that you're quite limited in your options. If you're interested in going into management, then you may be better off, because aside from being paid more, you'll probably be judged with more of a focus on results. The sooner you get there the better. Personally, I wouldn't want to be in a position of betting my career on my ability to learn and stay current.
There are two sides to this that I see converging, which both lead to the conclusion that you probably wont have to worry too much.
The first is your own technical ability. I've done a lot of interviewing for a few different companies, and the only reason that a lot of older applicants were not hired was simply that they let themself stay in some area that grew obsolete too long. Embedded system programming, C, whatever. I also personally have seen a number of older programmers (40's) who simply did not care to learn anything new (like using a terminal screen instead of X-windows).
The message here is - keep up your skills! At least show an interest in current technology, I personally take into account even just an interest in something done on the side. Keep interested, and enthusiastic! I know that a programmer with 15 years of experience could be really valuable even if it's all in some "unfashionable" langauge, but the thing is most of them project such an air of settlement that I have a very hard time choosing them over someone with three years of experience who really loves what he's doing!
The other side of the problem that I think is being solved slowly is the way companies work. Generally it used to be I think that programmers after a while just drifted into management. Now I've seen a few companies (including my current one) offer a good career path that is all technical - you can move into an architechure role that might involve less programming, but not a lot of HR or pure paperwork kinds of things either - a lot of system design.
I also believe that companies will slowly start to realize how little they really get out of working people 70+ hours a week, and start working more 40 hour weeks with flextime. That's what I do right now, occassionally we work longer hours but for the most part my group works 40 hour weeks, and are very productive. If companies start moving to a system like that, then a lot of older workers will be fine with staying in a technical track as it does not deny them family or leisure time.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
I just don't buy it. Originally, there may have been a trend towards older programmers being the people who came to it late. Now, you can see programmers in their 50's who learned to program in their early 20's, and programmers in their 40's who were programming as kids.
:) This industry has *PLENTY* of room for people to get better paid with age and experience. All you have to do is keep learning, and you'll find it quite easy to stay active.
Guess what! They're not so bad. Honestly, I've met very few people who *don't* get substantially better with age.
I think it's just a myth. Ignore it, play with computers whenever you feel like it, and it'll just get better.
:)
For a frame of reference, about seven years ago, I was overjoyed to get a bad-paying contract position with no benefits and crappy work environment. Now, I'm getting reasonable pay, 3 weeks of vacation, full bennies, stock options, full telecommute, bonuses, company-bought computers to play on, and mildly flexible hours. To make it even cooler, this is where I got sticking with my committment to low-stress work.
When I got out of college, I did a programming project for $8/hour. Now I typically charge $100/hour, and I'm not exactly marketing this, I just do it for recreation.
Now, compare this with, say, RMS, who was last seen north of $200/hour. Or ESR's famous millions.
My blog: http://www.seebs.net/log/ --- My iPhone/iPad app: http://www.seebs.net/seebsfrac/
One bizarre thing I've run into as a 34 year old consultant who is starting to run into this very sort of 'ageism' is that if I cowtow to the stereotypes that most young folks in their early 20's expect from a guru, I'm more likely to be accepted than if I simply walk in and act myself.
What I mean by this is that if I walk into the office with all the latest gadgets hanging from my belt, hair up in a ponytail, and invite the young 'whippersnappers' over to my house or show off a two-seater sports car, they are more likely to say "wow, he must be a really frood programmer" than they are to say "obsolete fossil."
I've tried both: leave the Handspring Visor and the web-enabled cell phone and iBook running PowerPC Linux at home, and I don't have a shit chance in hell of landing a contract. Walk in with all these gadgets, and I'm worshipped as a guru and a as a programming God.
It's a damned good thing I know how to code, otherwise, it'd be very easy to snow the 20-something managers.
My advise is to keep up with the latest gadgets and be willing to show them off at parties^H^H^H^H^H^H meetings--it makes you seem like a hip older guru than some over the hill lamer.
It's stupid, but it works.
Seriously though, in my experience, I've seen programmers of all ages and I've seen some damn good programmers in their 40's and 50's. Programmers that could teach many of us a thing or two. I wonder how old Stallman is, and he seems to have new tricks up his sleeve every year.
What's slowing you down as you get older is you tend to get a life and want to do things outside the computer. Once it stops being your driving force, you fall out of that damn good programmer position pretty quickly. So go ahead and choose; a life or top billing on the programming team.
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
This is probably the hardest path of all. You might think that's it's exciting and high pay and all, and yes while sometimes the paychecks are fat, all too often the clients are bastards and I'm up all night programming on something the client isn't going to pay me any more for and maybe I'll end up getting sued.
I've spent more than one evening searching through the house looking for change dropped on the carpet so I could buy food with it. This because of bad clients. So I don't suggest it for the timid.
On the other hand, it is a better life. I was rotting in my salaryman job. I hardly ever showed up for work more than four hours a day on the last perm job I had largely because I didn't give a damn. But I put in long hours now, because I enjoy it and I'm happy to give the hours when I need to.
It's important to make the distinction between making a hard quality effort and just pushing at the keys all night. I worked a 29 hour day once when I was 23 or so, on my first programming job, and I would never do that again.
On the other hand, I spend a significant amount of time these days, and have throughout my career, studying the fundamentals of my work.
I've been reading STL Tutorial and Reference Guide by Mussel and Saini lately, and I think the most inspiring Slashdot feature since I became a regular reader was the C++ Answers from Bjarne Stroustrup. I'm starting to work in a more thorough way at understanding C++ in a fundamental way, and I believe this will be reflected in my work.
Note that this is different than learning the latest technology-of-the-day, say COM+ or even Bonobo. Sure there's lots of great technologies available for our use and go ahead and learn how to use them, but don't waste a lot of time learning them in depth. Learn the fundamentals in depth.
Even C++ will go the way of FORTRAN someday, but there are some essential principles there that are of lasting value and it is those things that I am trying to glean from my studies.
This is what I advise you to do to.
By the way, I didn't just end up as a consultant. As you might guess from my article Manic Depressive Geeks early on in my career I felt my prospects for a traditional job were poor and I would do better to start my own business where no one could take it away because of my history of mental illness.
I soon found that I really didn't know enough so in the jobs I did get I was very determined to learn as much as I could, and also early on settled on the strategy of always choosing jobs based on what I could learn from them for the future, rather than what they paid or what potential for advancement they created.
Mike
-- Could you use my software consulting serv
I've been a programmer since 1964. (Hmmm, that may be even more than 20 years . .
These days I'm a programmer in my spare time (trying to play with Beowolf clusters on my home network) because my experience is too valuable to the company for bigger problems than coding a new application. I've successfully transmuted the joy of building a new program and seeing it work right into the joy of building full systems and seeing them work well.
Am I a zillionaire yet? Nah. Am I deeply enthralled with my current assignment? Not really. Would I change any of the choices I've made over the past three decades? Never!
So the question is: how do you go from being a newly graduated programmer eagerly sought after to an older but wiser fart who is still eagerly sought after? And the answer is in four parts:
Never stop learning!
Always be intensely curious about new ideas and techniques!
Never be afraid to make a mistake!
Always be willing to admit that it was your mistake - and learn from it!
----
VP Unmarketing, Product Confusion and Linux Distributions
VP Unmarketing, Product Confusion and Linux Distributions
Megadodo Publications, Ursa Minor Beta
-------
CAIMLAS
~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
Being a relatively old fart in the industry (I learned FORTRAN back in 1974), I disagree with your prognosis. First, programming used to be more of a master/apprentice career. With literally hours between runs/compiles, one learned at the feet of the master. While there are still things to be learned from the masters today, the amount of raw computing power at our fingertips tends to preclude having (or at least taking) the time to learn from each other as much as we used to and instead firing off a debugger or the next compile.
Second, employers want someone who knows the latest stuff and isn't bound into an out-of-date paradigm. Students fresh from school are seen as fitting this description, dinosaurs (like myself) aren't. Every current IT hotshot who doesn't reinvent themselves constantly and stay on the bleeding edge will be a target for replacement. The only exception to this I am familiar with is organizations tied to legacy systems (read government, especially DOD, whom I suspect still have PDP-11's hiding somewhere). And if they are ever upgraded, the people who used to work on those systems will have a hard time getting intro postions.
``As a society I think that we do subconsciously prejudge people if they have wrinkles,'' Papp said.
Before I read the article, I wondered how much of this was a Vally-specific problem. After seeing the bit I quoted above, it makes me think that the values of Southern California (LA/Hollywood's obsession with image) have migrated North.
I live and work (program) in New York City, and I haven't seen any evidence of age discrimination in the industry. Then again, I'm 32; check back with me in 8 years.
When new people come out of college they are fresh and full of energy. They may have to learn skills, but that is easier then UN-learning bad habits.
The problem is that schools teach bad habits, too.
A few years ago Minsky divided Computer Science education into three periods of about 10 years each:
First period: The schools had no clue what to teach. So they taught the students how to re-invent everything that had just been invented. (For instance: Every grad was expected to be able to write his own compiler.) There was an excessive focus on mathematical skills (at least partly to simplify rationing of the limited number of enrollment slots, due to the limited availability of computer time).
Result: A 4-year degree was actually a handicap - because it took longer to convince the newgrad than a non-grad that there was something else he needed to know to be productive.
Period 2: The schools got their curricula organized and produced people with useful skills.
Result: A 4-year degree was more useful than not. But work experience - about two years of it - was still necessary before a grad became really productive, and getting that "break-in" job was sometimes difficult. (You also needed a contiguous two-year stint to prove you would stick around until a project was done before you could start job-hopping.)
Period 3: The schools got too heavily into formalisms - to the point of religion.
Result: Again students needed to be cracked loose from a mold before they could start learning what they really needed, and a 4-year degree became a liability.
Particular problems are graduates of Ivy League and other big-name schools (at all degree levels) and PhDs (from all schools). One thing Ivy Leaguers learn is conversational gambits that let them shut down those who disagree with them and/or later appropriate credit for their ideas. Grads from big-name schools often think that if it wasn't taught in their classes it isn't importand. PhDs sometimes suffer from that as well, and also are heavily invested in being right whenever they open their mouths.
To program or design effectively you have to accept being wrong occasionally, recognizing it early and backing out quickly before too much effort is wasted. You have to learn not to back out too often. You have to learn that an adequate but standardized and well-documented design and/or style is more effective than burning cycles hunting for the "best" design/style. You have to learn to work in a team - letting others be expert, too. You have to learn that knowledge is teritorial, not hierarchical - often the person with the right answer is not the person with the highest certification. And you have to learn to learn - that you come to any job with only SOME of the knowlege needed to perform it, and you must know how to pick up the rest as you go.
But by period 3 a new generation of management was loose upon the world. And many companies would only hire people with the degrees - and sometimes only degrees from certain colleges. So the degrees became necessary for entry at many places, regardless of their actual lack of predictive ability Re job performance.
Also, a slew of management fads came in by that time: They each have their own buzzwords, but this is what they amount to: Age discrimination (new grad to late 40s). Sex discrimination. Race discrimination (for US upper-to-middle class Anglos, East Indians, Orientals). Handicap discrimination.
And a convenient myth was created: That there was a "talent shortage" in the US. So lower-paid immigrants could be hired to replace higher-paid US workers.
Of course this is gross mismanagement. And it hurts the companies that let their administrators it - by limiting their potential recruit pool and leading them to pay a premium for non-job related employee "features" while ignoring the actual work-related skill set. They get away with it because the added value of HiTek is so great that mismanagement can piss away an INCREDIBLE amount of resources and still keep the company in the black - for a while.
But the myths work to the advantage of those with skill and experience, and the little startup companies that are willing to hire them. Because there's a large pool of very skilled labor available, to those who are willing to hunt it down and pay for it. And there are challenging and lucrative positions available to those with the skills to fill them.
As you become more experienced it takes longer to find a good fit - because there are fewer jobs that actually require all those skills.
I was educated in Minsky's first period. I worked my way most of the way through college, got to all-but-some-distribution-requirements, then let my consulting practice expand to full time and never got that degree. By then I had the "equivalent experience" that once appeared on the job reqs. I've accepted holes in employment - once nearly a year long - rather than let my salary or billing rate drop from monotonic increasing (though if I had it to do over I'd take a stop-loss consult about 4 months into that long break. B-) ) I've avoided becoming management, yet have pulling down six figures for a while now as an individual contributor - even salaried.
But my current job will probably be my last: Thirty years in the industry - mainly in software - got me the one thing it was all intended to get me: in the door of a startup at the right time as it was putting together the right product. The startup was collecting the experineced industry experts, and now I was one of 'em. We've already been bought out for enough that I could retire on the options that have already vested. But I won't yet - because I expect the thing I'm co-archetecting to expand the bottom line until the shares' current value will seem like peanuts - and there's three more years of vesting to go.
Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
I've worked in South Africa and the United Kingdom, and I can definitely say that age does count against you. And it's not got anything to do with being brighter or better. It's got to do with being more exploitable. Every job ad I've seen in the last year has said 'young programmer' or 'young sysadmin'. When I was leaving my last job I was helping them replace me. I was a sysadmin there. And they _WOULD NOT_ look at anyone over 25. So it's there even in sysadmin.
;-) But we let companies do this to us, and they know that they can get away it. They couldn't with an older person or a person with a family. Why do you think they always want to know if you're married at the interview?
I believe that the current crop of geeks are doing this to ourselves. I was working 14 hours a day there, and I was on standby the rest of the day. I was also on standby all weekend every weekend for 6 months. No partying. No getting drunk. No going anywhere that I couldn't get a phone line and jack in to work should the need arise. Mind you, my perl got a lot better during that time
So for those of you who are taking solace in the thought of quitting the coding and going sysadmin when you get older, make other plans. I figure I've got till I'm 30 at the current rate. And then I'll put a bullet in my head.
Somewhere along the line I got a circular slide rule that I still have. Don't have much occasion to use it these days, but I still know how.
And while I write in mostly C++ these days, I still know assembly code, and one way I optimize my C++ is to compile the C++ to assembly rather than machine code, and modify the C++ code while observing the assembled results. Not a lot of kids these days can do that!
Mike
-- Could you use my software consulting serv
soon loses its appeal when you have a house, and bills, and a car, and kids, and a social life - all things which suck up money at an alarming rate.
You can enjoy coding and even code for fun but #1 priority has to be the support and care of yourself and those around you.
--
Peter
Like it or not, programmers are on an intellectual production line: Read the specification, put some code together, and send it down the line. 10 years from now, the programmer's still there doing roughly the same thing. Sure, he or she has some spiffy new tools but the job is essentially the same.
The problem with production line work is that the experience curve is so shallow. The more experience you have the less it benefits you, until in the end it may work against you, as many others have said here. Clearly one should be looking for jobs where the more you do the more you are worth, a form of increasing marginal returns.
What provides an increasing experience curve? At this stage I suggest two things: people and business. Someone with 30 years' experience with people is usually more effective at running a team than someone straight out of university. Similarly, someone with a record of running a business is typically seen to have a better chance at running a company than someone who's straight out of B-school. (I'm speaking in generalities here - I'm well aware that there are plenty of exceptions.)
I hate to say it, but overall, this means that the best career path for programmers is to go into management!
Of course there is age discrimination in engineering-- especially in software engineering. This is a well documented fact.You can find an in-depth study here . Why would a company hire a very expensive, very experienced engineer when they can source the project to a consultancy (Andersen et. al.) which will simply human wave the problem with indentured H1-B visa employees? Even if the project management is really bad, the programmers totally demoralized, and the project majorly screwed up, they can usually produce something that pretends to work. For internet software, that's all you need.
According to the Programmer's Guild (PG), U.S. industry has already reached its quota of H1-B visas (a program that allows non-resident/non-greencard foreign nationals to work in the U.S. for 6 years). This, despite having last year doubled the size of the program to 115,000 visas annually.Because IT salaries are totally out of control now, having risen to a whopping $54,000, U.S. industry has put the full court press on congress to dramatically increase the quota or eliminate it altogether.Congress, responding appropriately to the huge campaign contributions from big biz, will most likely pass such an increase, according to the IEEE One particularly interesting point about the leading bill winding its way through the senate is the name: "American Competitiveness in the 21st Century act". I guess that congress does not think the current crop of American born programmers are very competitive.
I'd like to know what people here think. Will a million new "guest workers" in the next 5 years help the quality of U.S. software engineering, thus expanding the pie for everyone? Or will 1 million new indentured servants allow IT management to continue many of their screwed up practices because they know that engineering can't complain.
Sure, if you're a Master CNE or a MVP or a CSIE then you're highly qualified, but you have no degree and you don't state what your actual qualifications are.
:). Show employers that you have the capacity to learn.
I work in a software house, doing *big* projects. You are in for a massive surprise if you think (a) you're very talented and (b) you're highly qualified.
My advice? Get a degree. Any old how. Doesn't matter what it's in (although CS/IT/SE would help
Does the USA have anything like the Open University in the UK, where you do a degree (or Masters. Or PhD) via distance learning, and pay on a per-semester basis?
--
Peter
I'm 25 right now, and I'm already starting to get this sense that I'm getting old. Why? Not because I can't burn the midnight oil anymore, but because I've got other things competing for my time. I'm married now, and scarily enough, I want to have a life outside of my career. So, I don't spend all my free time at work and I don't put in 60 hour weeks (usually).
Really though I think this mentality has a lot to do with the state of the economy right now. People are focussed on time to market above all else and so people who slavishly work 60-80 hour weeks are valued. In a few years when the pace of innovation has slowed a bit and a lot of this becomes old hat, companies aren't going to pay for people who can do hack and slash code til all hours of the night. They'll focus more on people who have experience, who know how to manage code properly, etc.
Just think, was this focus on youth really that strong until a few years ago? My impression is no. It seems like a cyclic thing which will happily go away when the economy cools a bit.
---
This sig has been temporarily disconnected or is no longer in service
It used to be just women who lied about their ages. Get ready for the Programmer who is 23 with 18 years experience.
--------- Beware the dragon, for you are crunchy and good with ketchup.
As a programmer coming out of college, you shouldn't be worrying about what kind of job you can get at 50. You should see what's available to you now and in the next 10 years, and set yourself up for success regardless of what happens. How? Save and invest. If you are coming out of school now with a CS degree, and if you do it right, you should have no trouble retiring at age 50 with several million dollars in the bank.
But, instead, you'll buy every new toy that comes out, you'll rent, you'll party, you'll piss it all away, and then you will have something to worry about. You don't even need a great job to be able to do this - just average computer-tech jobs. If you are a CS major, you know some math - go do some and you'll see what I'm talking about.
If you do this, then you can look forward to contributing to the world's open source software, and to all our freedom in general, instead of managing some proprietary project.
First, make it work, then make it right, then make it fast, then, make it bloated!
I agree, mentoring is the best way. Not because of the things they can tell you, but because of the questions they can ask you. You'd be surprised how far a bright kid can go if you ask him the right question. That and finding people with the knowledge that WANT to mentor is a pain in the ass. I, a lowly undergrad, no more Perl and C/C++ than the overwhelming majority of my school's programming proffs.
---
"Elegant, Commented, On Time; Pick any Two"
-- Crutcher --
#include <disclaimer.h>
I'm not saying that you're wrong -- companies may indeed prefer two for less the salary of one, but the economics are against them.
Two employees for $30,000 cost substantially more than one employee for $70,000. First, you have the overhead of an additional employee: desk, telephone, space, social security, pension, accounting. Second, you have the communication cost. You now have to people to manage, and two people to communicate with effectively. Remember Brook's law: adding people to a late project makes it later.
I know I am much more productive than any whippersnapper straight out of school. Why? My breadth of experience. I've written compilers, interpreters, games, assembly language, microcode, embedded systems, CGI's, OO C code, heck even OO assembly code.
Yeah, I charge a lot. But I also get a lot done.
-russ
Don't piss off The Angry Economist
Never be satisfied. Never rest on your laurels. Never assume that you know something better than someone else, or that what you know is more important than what they know. Never pass up an opportunity to learn a new language/API/OS/technique because it's "just a fad".
If you can maintain and cultivate this curiosity, or restlessness, or flexibility, or perfectionism, or humility, or whatever you want to call the intersection of all these things, you will continue to see your career progress. The reason so many people look askance at older programmers is because so many older programmers have become ossified and arrogant and complacent. Any employer in their right mind would gladly pay top dollar for an experienced programmer's skills combined with a younger programmer's attitude, and many actually do so.
Slashdot - News for Herds. Stuff that Splatters.
Currently the only way for a teacher to make ends meet is to marry someone with a better paying job, like a programmer. Personally, I find it sick that my wife quite literally earns 1/3rd what I make as a coder to teacher children to read.
(34, and still coding.)
The cake is a pie
(This is not a flame or a joke, really.) I'm 32 also, and of course I want to still be programming in 20 years. How could it be possible to "advance" beyond programming? What else is there?
You don't really mean management, do you? Good grief, I would quit immediately if I ever got "promoted" to that. Sure, you'll make more money, but you won't create anything anymore.
IMHO, there is nothing beyond programming. Creation is the only thing worth doing.
---
As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
15 years ago I was highly in demand because I knew Fortran and I was a Civil Engineer. 10 years ago, I was highly in demand because I knew C and Oracle and Xt. 5 years ago, it was C++ and Motif. Now, I'm getting job offers every few weeks because I'm an experienced Java programmer. Probably next year or the year after the demand for XML or something else will be ramping up, and I'll be there.
But I'm not valuable to my employers because I've followed the trends, but because my engineering degree and 18 years of experience acts as written proof that I know how to solve problems. And that's what it's all about - solving problems.
--
A "freaking free-loading Canadian" stealing jobs from good honest hard working Americans since 1997.
The next Cmdr Taco duplicate will be ready soon, but subscribers can beat the rush and see it early!
Engineering is one profession that you simply can't be "just good at" because experience is such an incredibly essential aspect of it. A kid might be a good hacker, but they could never come up with a good design.
you're over the hill as a gymnast if you're 18. someone already mentioned the porn industry. actresses are only now beginning to get recognition past the age of forty (bar a few exceptions). most any sports player is over the hill by 30 or 35.
this is yet another area where WE ARE NOT UNIQUE!!!! (i really think those of us in the high tech area should repeat that mantra every few hours. force yourself to look at other fields and how they solved or dealt with similar events/problems/opportunities/models/etc - that way we have less of a chance of repeating the past with the high speed assistance of our silicon friends).
US Citizen living abroad? Register to vote!
What do businesses want from a programmer? Most cost-effective. That means someone who will work for the least, and get the most done.
The opinion that many companies hold is that if they have a few experienced people in management positions, everyone else just needs to be able to code. They view programming as a fairly straightforward task that is mostly related to how many hours you spend on it, much like picking grapes in the field. Who will pick the most grapes? The person who stays the longest.
Fittingly, on my drive to work I see a lot of migrant workers waiting on the sidewalk for people with vans and pickup trucks to pick them up and pay them sub-minimum wage to work the fields.
Why is this fitting, you ask? Because of the two groups that are most sought after as programmers. Recent graduates and people on work visas. Recent graduates have lower salaries and will work 60, 70, 80 hours a weeks without questioning it. So will people on work visas, because if they get fired, they might not be able to renew that work visa, and will have to leave the country.
Historically, this has been a cost-effective means of obtaining employees, known as indentured servitude. The experienced locals know too much. They want shorter hours, they charge more, and they're liable to organize at any time. The new ones-- well, they'll owe their souls to the company store.
It's funny that older programmers are having so much trouble finding jobs. Isn't there a work shortage in the valley? Congress is debating between two work visa bills-- one to drastically raise the cap, and one to eliminate it. Surprisingly, most are against the bill eliminating it-- because it requires companies to pay the new workers at least $40,000 a year. Yes, that's what they want to reduce programmer salaries below-- $40,000 a year. Good luck renting an apartment in the valley for that.
Age discrimination? Of course there's age discrimination. There's still racial discrimination, and discrimination against women. Fight it. Make people aware of it. Talk about it. And if you are in a position, or ever promoted to a position, where you have significant influence in someone's hiring-- make SURE you aren't contributing to the problem. Do you like that younger employee better because he's a better fit for the "culture"? Or is that just an excuse? As many people have pointed out already, the "young 'uns" aren't experienced enough to know how badly they're being abused.
The software industry is rampant with low quality bug ridden code, and bad practice. You'd think that those with actual _experience_ would be very valuable. I'll be turning 21 in two months, and although some of the people I work with may not be up to speed with the latest whiz-bang languages and devices, their experience makes them VERY valuable. When you're young you can run fast...but you can also run fast down a blind dead-end alley.
It's 10 PM. Do you know if you're un-American?
Not that I expect many folks to read a post this late in the day...but...I can't *believe* all you assholes who seem to think that age has anything to do with coding ability.
I went back to school for CS when I was 29, got my first programming job at 31...and I'm 51, now.
Now, admittedly, I'm weirder, and *far* more flexible than most of y'all seem to be, since I started on IBM mainframes w/ punch cards, and JCL, and PL/1 and COBOL, and CICS, went to pc's and compiled BASIC, back to mainframes and COBOL,
then back to pc's and C (learned on my own), and Pascal, then UNIX and C, and these days, sysadmin in UNIX and C, w/ Linux at home. Oh, and I've left out all the stuff I've done all that in...and if y'all want, let's spec something out, and I'll write *better*, more maintainable code then most of you.
The reasons a lot of companies like 30 isn't because they're smarter, or better coders...it's because:
a) they're cheaper, which is what the vast majority of management cares about (most of whom have never heard the phrase, "there's never time to do it right, there's always time to do it over"), and
b) HR people, who disregard experience, and only look at degrees, and costs (30 also tends to cost less for benefits, as well).
Finally, younger programmers also have been so beainwashed that organizations like unions are SO BAD, and to believe that they'll be RICH by the time they're 30, or maybe 35, that they'll do *anything*, including put up with management's idiotic demands for a schedule that has no relation to reality, and the companies that treat y'all like consumables (as several 20-something friends of mine who *used* to work for Andersen Consulting agreed...including the one who once did 119 hours in *one* week, while I was working with him...).
Then they call us "geeks", and claim that we don't have a life, anyway, so they're not really abusing us....
mark "been there, done that, got a lousy t-shirt...and still programming"
I went through the same process, so probably sharing my experiences may help (?). At some point I've been doing lots of coding, was happy as a clam. Then I've met my old school buddy who became a scientist, doing some fundamental research, told me most of his work is done with a piece of paper and pen. That made me think a bit and realize that being a 'bleeding edge techie' is cool for a while, but after 10 or 15 or 20 years (or sooner) you probably would get tired of chasing the technological changes. Since I've never contemplated to become a managerial type, I've decided to go back to school - even if I already have MSCS (on a part time basis while working) and polish up my math, probability, and statistics, take more advanced courses, and try to refocus on computer, network, and application performance analysis (and capacity planning). THis is where I am right now. A world of math (and statistics) is such that some fundamental ideas (discovered even a 100 years ago) are still valid, the trick is to figure out which one to apply to a particular situation (but this is where creative aspect of performance analysis comes in), and most of old, all this type of knowledge is systematic, the longer you learn the more you know, and the older you are the more experienced you are. I am really happy with the way my career is moving (but I've always enjoyed math anyway). Some recent advances in statistical analysis (as pertained to analyzing network performance) are rather striking. To me is like encountering the whole new world.
I'm a 29 year old Unix sysadmin. I work with old folks (40+) all the time. It seems to me that Unix system administration is one area in which age and experience actually helps. The longer someone has been in this career, the more knowledge, problem solving, solutions, and war stories this person has under his belt. Unix systems have changed, but if you think about it, they really haven't changed that much. They aren't even suppose to in many production environments. Unix is not like NT, which changes whenever the M$ sales and marketing people say so. The same experience and practices you use in SunOS 1.1 or whatever can help you (with proper porting) in Solaris 8. And a sysadmin fresh outr of school is usually no help. And if they are hacker types, would you trust them to run the machines of your corporation's main production database? Are they responsible enough? Raw talent is not enough. You need be highly responsible, attentive and have good judgement to be a good sysadmin (unless you are the hacker/sysadmin at work for an ISP ;-) ). Anyways, I like working with old guys (and gals) 'cause I learn valuable practices from them. Its kinda like if you needed heart surgery, would you go to a doctor who is just out of med school with only a few operations under his belt, or a doctor who has had years of experience? IMHO, age and experience is an advantage in Unix system administration. If I was a Unix systems manager, I would see age as a plus, not a minus.
> I'll dump Java whenever I see something that is even cooler
And what about open source programming techniques - CVS, patches, peer reviews, no managers etc? Surely much more revolutionary in its effect on the industry than Java. Biggest thing since Fred Brookes in my opinion.
How come Java is exciting compared with the ideas in Smalltalk-80 (20 years earlier)?
My tip for the next 'new new thing' - visual programming environments (cf son of Prograph).
-- Richard (aged 43)
I think you can be productive for more than 8 hours a day, but you really have to enjoy the project that you're working on, and you have to have a good working environment. In my experience (albeit less than yours), the dumb mistakes have come in when I no longer care enough to really concentrate on what I'm doing. However, I've been able to get up to 14 hours of productive time on some projects. After that point, the physical fatigue sets in and I care more about sleeping than making sure what I'm doing is "smart".
I always hate arguments that start: "If you look at the case studies". If you look at the case studies, every family also has 2 1/2 children... but we know that this is not true for everybody. Individuals are different, and we shouldn't use case studies to portray everyone as "average".
BTW - I think the reason it took you three days to find that bug is because you had to wade through a year's worth of worthless timestamp comments in your source... I'm guessing that decision was made after-hours as well. (g)
Fermat's Enigma
;)
The hardest fucking math problem in centuries, that fried many a young buck's brain was solved by an old 40+ geezer
You can be obsolete at 25, or non-obsolete at 65 - it's an attitude thing.
A decade or so ago I was commuting (weekly) by train from Jersey to a project in DC. The old guy across the table from me in the dining car had the smallest laptop I'd seen (which back then was about 6 pounds, only available in Japan), an alphanumeric Skypage (those were cool back then), and a cellphone which was small for its day (but still couldn't get a signal while we were crossing the Chesapeake.) We started talking, and it turned out to be Dave Farber from UPenn, who'd just helped start the EFF (I was working on EFF stuff as well). Dave's now the new technology consultant to the FCC, and still running the Interesting-People mailing list and going to technology conferences around the world.
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
In the meantime, I have encountered morons who I wouldn't hire to shine my shoes. Not because they're underskilled. But because they're *STUPID*. They lack curiousity, and they lack the ability to learn new things swiftly. One thing I like to do, in employment interviews (the few that I've conducted :-), is find out something that the prospective employee does not know (but that I do know, and happen to have a book on), point them towards the book, say "I'm going to be back in a few minutes, why don't you take a look at that book and tell me what you think about technology 'foo'?", then go take a coffee break. If I come back and they have the book on their lap engrossed in it, I give'em a brownie point, and another one if they can tell me a little bit about what they've read. If, on the other hand, they're sitting there twiddling their thumbs, it's time to show them out of my office...
BTW, my bosses don't let me interview potential hires too often because I scare them (potential hires) too much :-).
-E
Send mail here if you want to reach me.
A number of my friends are Smalltalk enthusiasts. None of them are under 40, and while there aren't a lot of places using it, they seem to all know where to find customers who want their environments radically transformed and highly productive. Age has a couple of effects - some of it's perspective from years of experience, some of it's having been around back when Smalltalk was a fad, before Java became the fad, and some of it's the old value set about knowing lots of programming languages that C/C++/Java replaced.
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
This ageism doesn't exist everywhere. It's only entrenched in the internet startups, and sporadic outside of there.
Where I work, Acuson, the average age for a developer is 40. We've got developers over 60. I don't know their exact ages, 'cause I don't ask. We can't afford the inexperienced because when our software fails, it's not just a website going down, it's medical (life and death) equipment.
It's amazing what we see while recruiting. Guys taking their first programming class ever applying to be a developer. You call them the next day to say they're not needed, and they shrug telling you they already got a job with the latest startup.
We're doing stuff that makes the industry's idea of cutting edge look old hat. We don't do webpages or handhelds. We save lives and improve the world.
A Government Is a Body of People, Usually Notably Ungoverned