"Logan's Run" Syndrome In Programming 599
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.'"
Obivous Answer (Score:5, Insightful)
Re: (Score:3, Funny)
Unless you consider being the archetect to be beyond programming. I assumed you meant transforming perfectly good human beings into pointy haired bosses.
Re:Obivous Answer (Score:4, Funny)
At least I am old enough to spell "architect"
Re:Obivous Answer (Score:4, Funny)
At least I'm aware of how to use "blockquote", and to put a period at the end of my sentence.
(BTW, I'm perfectly fine with the spelling attack too!)
Re:Obivous Answer (Score:5, Insightful)
When I look around, the most limiting factor I see in any enterprise computing environment is the quality of software in use. Multiple teams of people and multiple layers of management are required just to keep it working. Any upgrade plan sends ripples of alarm racing back and forth. And why is there such a status quo of vast inefficiency? Because software is as complex and flawed a contraption as inexperienced programmers can make it.
It takes an extraordinary person, one having both breadth and depth of experience as well as innate clarity of thought, to design even a moderately large system that's simple and sufficient, modular and extensible. Such people aren't to be found in anyone's junior staff. They don't have the experience. And their talents are lost if they should move into management or some other career.
It's not a question of "beyond" where programming is concerned. Unlike any other field, the medium in which we work imposes no ceiling on what we can do with it, Gödel incompleteness notwithstanding. There is no "beyond".
This is such an elementary insight. Since the field itself is not a constraint, what we can achieve is constrained by two factors: our own competence in the field, and time. Given two people of the same natural ability, the one with more experience will be more competent than the one with less experience. That's because, in effect, the experienced one has already put in the time.
Of course, inexperienced people might not know this.
Re:Obivous Answer (Score:5, Insightful)
It takes an extraordinary person, one having both breadth and depth of experience as well as innate clarity of thought, to design even a moderately large system that's simple and sufficient, modular and extensible. Such people aren't to be found in anyone's junior staff. They don't have the experience.
Agreed in entirety! But design and architecture are one of the options I think of when I hear "beyond programming". I don't want the smart people languishing as code monkeys forever, their insights are lost there to all but themselves.
Re:Obivous Answer (Score:5, Insightful)
Is there any substantive dividing line between design and implementation? If there were one, then people could indeed be left languishing on the wrong side of it. But I don't see one. I think that to impose one is entirely artificial.
If you're designing and writing specifications without thinking about implementation, you're not giving your best. If you're implementing a spec without regard for principles of design, well, that's just stupid.
But more than that, it's often the case that the exercise of building something sheds significant light on its design. There's a lot of natural interplay between these two perspectives, in other words. When we discount that interplay we end up with development processes that don't work well at all, because they're not fully informed.
I need to backtrack a bit here. The problem comes from applying processing concepts to software development that were evolved from the manufacturing industry. In manufacturing, you know what needs to be made; you just have to figure out how to scale up the volume of production. We don't have that situation in software. Far and away the hardest part is expressing what needs to be made, because it's unique each time. The fabrication is trivial.
Of course there are huge varieties of class libraries and operating system features on hand to provide the nuts and bolts when developing software, but that resource doesn't touch what makes software design a cognitive challenge, and it merely shifts where the cognitive effort of implementation has to be applied. We're still fundamentally conditioned by the two factors I cited before: competence and time.
To get back to your point, I believe we agree that value is minimized when anyone is asked to function merely as a code monkey. I'm arguing to do away with the distinction. This partitioning of the problem space is pure artifice, a residue of thinking carried over from the Industrial Revolution. I've found that the way to get the most out of people is to let them participate across the broadest range in which they're presently capable. As their capabilities grow, reward them with more involvement and more responsibility. And don't forget to pay them accordingly.
That's how to address the problem of "languishing" that you rightly identified. But senior developers must not be taken out of the coding process. That's a huge mistake. Yes, they have to divide their attention across many areas, but that's what qualifies them as senior. If you don't expose the junior people to mature ways of thinking, you're throwing away huge opportunities for motivation, mentoring, and just plain knowledge transfer. Worst of all, you end up with a pool of junior people who are disconnected from the rest of the development organization. I see it all the time, and it's toxic.
Re:Obivous Answer (Score:4, Interesting)
The problem is not that "anybody can program any system," because as you said that's not true. The problem is the gatekeepers of salary and status simply cannot tell the difference between those who can and those who cannot. Thus there is not much career progression in programming.
Depends. For people that have degrees in CS and EE (specially advanced ones) and years of experience, it is very rare that they don't have a career progression in programming.
Or, in IT Computing, career progression depends on the degree of specialization and breath of knowledge. In the Java world, for example, it pays not only to be a good Java programmer, but also
The thing is that, it is true that there is no career progression in programming. But that is true because programming by itself is not the only thing at play, nor the one isolated thing in which we build specialization and breath of experience.
Re:Obivous Answer (Score:5, Insightful)
Eventually people do tend to get promoted beyond programming positions.
Sometimes, though it's obviously a minority, or managers would soon outnumber their subordinates. I've turned down lots of management positions. The narcissism of non-technical managers is such that they think everyone wants to be like them, so they are quite sincere in their attempts to reward good programmers with management positions. The problem is that there is next to no overlap in the skillsets, and most often, what you get is a crappy manager in exchange for a good programmer. There are exceptions, but they are definitely the exceptions, not the rule. Some will accept the promotion with the idea that they'll run things better, but then they discover that the cluelessness of the non-technical manager they are replacing wasn't all or even most of the problem: there's the cluelessness of the next level of management behind it.
As it happens, I actually can do a decent job of managing people. The problem is that I'd rather flip burgers. Consequently, I've stuck to programming and kept my skills updated, but at 39, I'm looking at the reality of a career change in the mid-term future. I'm not terribly worried about it -- I'll have the kid through college in four more years, and after that, I can afford to live on a much, much smaller paycheck.
Should it be that way? No, of course not. But absent some kind of organized labor movement -- which programmers are notoriously, irrationally averse to -- it's not going to change, as the people making the hiring and firing decisions are getting by just fine with the current system. There is then little choice but to adapt, or at least emigrate.
Re:Obivous Answer (Score:5, Interesting)
I'm not sure a career change is a future reality, unless that's what you desire. I'm 47 and still highly sought by the various teams where I work. I have a broad background as an application/system programmer *and* system administrator (Unix and Windows) which allows me to develop solutions and, possibly more importantly, debug issues that others with narrower backgrounds simply cannot do. In other words, I get the hard problems - which have to be solved.
Re: (Score:3, Interesting)
absent some kind of organized labor movement -- which programmers are notoriously, irrationally averse to
IMHO, this aversion is not as irrational as it might first appear. As you probably know well, many programmers are firm believers in meritocracy; those who can produce elegant solutions to complex problems with clear and concise code are both admired and respected by their peers while those who cannot are not. Contrast this with a common problem in organized labor, rewarding seniority regardless of merit, and you see the principal objection that most programmers have to unionization. If the union rewards me
Re: (Score:3, Insightful)
While I generally agree with you, there have been times when I'm "In the Zone" coding wise, and just hate to leave something half done until the next day, because then I'll have to pick things up after a long break and try to remember all the details of what I was doing, etc.
Re: (Score:3, Insightful)
Re:Obivous Answer (Score:4, Insightful)
Now we're back at the other extreme. Management has done a great job convincing the labor at all levels, skilled and unskilled, that they're your buddies.
If I ever worked at a job where the management weren't my buddies, I'd leave and go to some other company.
Without any protections against abuses, it becomes easy to demand extra unpaid work or toss people out when they've outlived their short-term usefulness.
And with protections, it becomes impossible to toss the useless dead-weight that holds you and your company back. Look at the quality of education in the US, if you would like a vivid example of how unions harm society.
The adversarial split between labor and management needs to make a comeback - maybe in a less overt form, but with enough teeth to make employee demands count for something.
In good companies, there's no adversarial split. Why would I want to work in an environment where I'm working *against* management instead of my management and I working *for* my customers?
If you *ask* (not demand, because you're not an asshole) something from your boss, and he doesn't provide it, then either suck it up or go to a company that will. It's not hard.
Call me mediocre, but I'd rather give up the potential for being a total rock star employee for a fixed-hour work week, a contract that eliminates the salary shell game seen in corporate jobs, guaranteed raises, work rules and stability.
Losing more money from union dues than I earn from raises, having political contributions made with my money against my will, having to deal with useless dead weight co-workers who can't be fired...
Yah, it's not all sunny. There's no way our company would have a well-stocked bar if it was unionized.
Despite my tone in this post, I'm not really anti-Union-- I'm anti-being-forced-into-a-union. If you want to start a IT union, fine. Knock yourself out. But if you want to *force* me to join it to retain my current job, then you can go screw yourself-- I can't think of anything more anti-American and yet culturally accepted in the US than forced unionization. Hell, it's why I went into IT in the first place instead of becoming a school teacher.
Re:Obivous Answer (Score:4, Funny)
Everyone knows that all of the programmers over 40 became internet millionaires. That's why they aren't programming anymore. At least I think that's what the brochure said.
Programming is grunt work (Score:3)
Re: (Score:3)
Exactly. To quote the article in two places:
At 44, I've finally moved fully into management. The last production l
Re:Obivous Answer (Score:4, Insightful)
Why are we even considering that "more lines of code" is a good thing? It's more bugs. I'd rather write half as much code, spend half as much time debugging it, and go home. I fear enthusiastic younglings who thrash out a thousand lines in a caffeine fuelled late night Code Rage, then spend the next two days thrashing out yet more code to fix their mistakes - or more usually, press on to screwing up the next new feature, and leave us old guys to clean up after them.
Re:Obivous Answer (Score:4, Interesting)
Jokes aside, we were all young, inexperience programmers at some point of time in our life, unfortunately. Somebody more experienced have shown me the ropes before I got better (besides just ME thinking that I am good). Just hope I didn't cause too much pain for other "more experienced" co-worker when I was younger.
Conclusion: Young
Re:Obivous Answer (Score:5, Funny)
Re:Obivous Answer (Score:4, Funny)
Per program? You don't have just a single program which does everything you might need with a massive chain of ternary operators?
Re: (Score:3, Insightful)
Eventually people do tend to get promoted beyond programming positions.
And the other 90% that don't get promoted because those spots were filled by the 10%?
Agreed. That's always been the case.
I think the real reason is simple. People older than me (almost 40) are likely to be mainframe programmers. Back then, there weren't a lot of computers. So there weren't a lot of programmers. The office where I work now is filled with people around 40yo doing c++/unix. Come back in about 10 or 20 years, and you'll see a lot of older programmers.
Dude, I couldn't disagree more.
C++ was taking hold as a mainstream language in the early 90s. Borland C++ came out in 1988 - I believe. When C++ came out and it was making a BIG splash I was in my early 20s. At the beginning of my development career, I was strictly C/C++ on PCs,Servers, and workstations. Back then, just knowing a language was enough, meaning a job description was "2-5 years C++ experience. AT&T Unix a plus" - I really miss those days!
In my say we made
Re:Obivous Answer (Score:4, Funny)
COBOL the language for the latest hardware.
How many smartphones run COBOL?
All the mainframe ones. :-)
Re: (Score:3, Funny)
I think the real reason is simple. People older than me (almost 40) are likely to be mainframe programmers. Back then, there weren't a lot of computers.
Yes and we only had wind up light bulbs as electricity hadn't been invented yet either.
Give me a break. I'm over 40 and have NEVER programmed on a mainframe, nor has anyone I know. Maybe if you said people over 60 I'd agree with you.
Re:Obivous Answer (Score:4, Insightful)
Re: (Score:3, Insightful)
Actually, it wasn't hype. It was just that the important code was fixed well in advance of the cut-off date (believe it or not, an I/T project that met the timeline). I know of several Y2K issues that were fixed at two different companies (I changed jobs in August of 1999). The hype lead to focus which lead to the event being a non-issue. Same went for several other over-hyped events (swine flu, anyone?); raised awareness turns catastrophe into non-event.
Re:Obivous Answer (Score:5, Insightful)
You know, regarding your carousel comment. Its kind of ironic that the referencing of Logan's Run as a corollary explanation for why there are so few older programmers, is a reference that younger programmers wouldn't know.
Re: (Score:3, Interesting)
Microsoft gets a lot of grief on this board, but this is something they certainly do right. They have like 7-8 different levels of "programmer"-- you can serve your entire career writing software and never feel like you need to switch jobs to get a raise or get your ideas heard at the company.
Yes and No (Score:5, Interesting)
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.
Re:Yes and No (Score:5, Interesting)
Experience is key. The issue is that new applicants coming out school have more experience with .NET, Java and they key technologies that many industries are looking for today. The fact that you have 30 years of COBOL experience doesn't help you if you don't learn new technologies.
Re:Yes and No (Score:5, Insightful)
True, but if it's for a job doing
Re:Yes and No (Score:5, Insightful)
On the other hand, the guy with thirty years experience probably expects to leave the office at the end of the day and not work overnight and on weekends. The guy with one year of .NET experience may even believe tales like "We're going to have to put in a few extra hours to finish this project, but we'll make it up to you after we ship", "That's the way everybody in the industry does this" and "I'd hate to see you have to leave the company because you didn't want to be a team player".
While the more experienced developer is obviously a valuable addition to a well run team, Junior is much easier for a dysfunctional team to exploit, throw away and then replace next year.
Re:Yes and No (Score:4, Insightful)
On the other hand, the guy with thirty years experience probably expects to leave the office at the end of the day and not work overnight and on weekends.
The more experienced programmer you won't have to work nights and weekends to complete the project. 30 years experience provides the foresight to avoid the development black holes that create the situations where you have to work nights and weekends to complete the project.
Re:Yes and No (Score:4, Interesting)
Ah, what a great thread. And as I turn 55 tomorrow, I guess it's pertinent.
I currently "manage" a team of young programmers (nearly all from India, based in Australia). They are happy to slog away, coding until they are blue in the face.
Lines of code - they'll give you lines of code.
But do they think much - er, no, not as far as I can see.
I am rubbish at managing. My main function is staying out of the way, and going to meetings. Oh, and doing estimates (guess at what you think the work might take. Round up to days, multiply it by about ten, double it to allow for testing ... then think if there might be any other problems and add a bit. This is a bank, we have a FIXED release schedule. So our aspirations are way, way low. No rewards for wonderful work, only punishment for not delivering on time ... we aim low, so, so low).
But I still reckon I could out program pretty much my whole team. (Yes, arrogance is a requirement for a decent programmer). And I would so, so much rather do that. So I write code to entertain myself, spending about 10% of my time on management.
I weep when I see the miserable approach they take - why write a general solution when you could write more code? Why use a library when you could just - write more code. And so on.
And get off my lawn ...
Re:Yes and No (Score:5, Interesting)
If I'm hiring someone to do .NET programming, I see no a priori reason to assume that the guy without any .NET experience would be a better hire than a with .NET experience.
I'm reminded of the home improvement show I saw a few weeks back. A highly experienced contractor was brought in to do a remodel, and on the surface did an excellent job. But after a few months problems began to surface that he couldn't (or wouldn't) fix. The guy brought in to fix the problems traced many of them to the original contractor using new materials but old techniques that weren't suitable to the new materials and didn't take into account current building practices.
All else being equal, the original contractor with decades of experience should have been a good choice, but in reality he was an iceman - frozen in time and irrelevant to the modern era.
Re:Yes and No (Score:4, Insightful)
Re: (Score:3, Interesting)
I've worked at a couple startups, and the unfortunate truth is when we hire someone, we expect them to be productive by the end of the first week.
A less experienced guy with the right skills will win out over the more experienced guys without those skills, especially if you factor in the cost and possible "ego" issues. At a startup everyone has to do the dirty work. Its sometimes more difficult to get the experienced folk to wear the build engineer hat for the day, or handle a support escalation.
Re:Yes and No (Score:5, Insightful)
"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. Once you know one learning the rest are easy.
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.
What experence teachs you is when you need to use a hash vs a btree.
Re: (Score:3, Insightful)
learning a new language is easy. Learning to program is hard.
QFT
IANAP but have written code as a hobbyist. I'll spend hours writing and rewriting something only mildly complex because, while I understand the languages and syntax well enough, I use trial and error to find the right methods. Starting with only a vague idea of how I want something to work doesn't help, either. Good programmers know the right methods already, and learning how those methods are applied in any particular language is trivial.
Re:Yes and No (Score:5, Interesting)
Learning how to not leverage 30 years of COBOL experience by programming in COBOL in every other language you use is hard.
I maintain C code written by a COBOL programmer. You can tell.
Re:Yes and No (Score:5, Insightful)
The code is written in a verbose, heavily-commented, yet easy-to-read style, and actually does what it appears that it should?
Re:Yes and No (Score:4, Insightful)
Re:Yes and No (Score:5, Insightful)
What experence teachs you is when you need to use a hash vs a btree.
Actually, school teaches you that. If it didn't, you were not paying attention in class.
Re:Yes and No (Score:5, Insightful)
Actually, school teaches you that. If it didn't, you were not paying attention in class.
You make a common mistake. Teaching is not the same thing as learning. Learning is what sticks and it includes knowledge that didn't come from the "teaching" end.
Re:Yes and No - Hell No! (Score:3, Insightful)
"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 b
Re:Yes and No (Score:5, Insightful)
Just wait 'til Y3K rolls over and we old COBOL proggers will be sought after again!
Ok, aside of lame jokes, it's a misconception that "you have to know $language_FOTM to be useful". You have to know how to program to be useful in the long run. Of course, all those fast breeder COBOL programmers that were cranked out 30+ years ago when COBOL was the be-all, end-all language of the trade will not have any future. Neither will the same kind of fast breeder .net codemonkeys have any. They will be used now 'til nobody cares about .net anymore, then they will be tossed and retrained to ... car salesmen or whatever needs more people then.
What's left is programmers who do not learn a programming language but to program. It does not matter if you write C, C++, Java or C# code. It's basically the same concept. I could see that there is a genuine difference between an imperative and a descriptive language, but ALL the languages mentioned above ARE imperative. If it does matter to you that you're supposed to use a different one, you have no right to call yourself a programmer in my eyes. Because the algorithm does not change. The words you write, the symbols you use and maybe a few tidbits to take care of do. But the foundation stays the same.
Programming is not knowing an API by heart. That's something help files are here for. Programming is not knowing what library contains what functions. Check your manual for reference. Programming is knowing how to translate a problem into code. What language is used to do that translation is not important.
Re: (Score:3, Interesting)
That is profoundly untrue. It may be true that you can learn the basics of new APIs quickly, but most APIs have gotchas. Gotchas wouldn't be gotchas if they were easy to avoid. You learn them by using the API and then debugging the bugs and then remembering those gotchas the next time you use the API.
In Java, when you call new GregorianCalendar(2010,1,1) and end up with a date in February you'll learn a gotcha. When you
Re:Yes and No (Score:5, Insightful)
Arrant crap. The best programmer I know is in his 60's and got his start on IBM mainframes. He's the go-to guy when you're writing a new OS for your next imbedded application. As others have already said, once you've been through a few languages, JCL, Cobol, Fortran, C, C++, Java, TCL, the next language doesn't even register as a 'new' language.
The reluctance of younger managers to hire older programmers has less to do with skill and ability, and more to do with psychological factors such as an older programmer's ability to instantly see the folly of what a younger manager wants to try. Been there, tried that, fuggetaboutit.
Re: (Score:3, Insightful)
Older programmers will typically not repeat the same naive mistakes again.
OTH
A large percentage of older programmers are unable to learn a new programming model. For example: Object Oriented coding. There are some who just do not get it and will write procedural code in object oriented languages.
by and large, programming as a field in general has such low status and poor conditions that I can't recommend it to anyone any more. Go into programming if you
a) want to likely suffer terrible age discrimination
Re:Yes and No (Score:4, Funny)
Your sig is right - oh, so bitter.
Damn, where do I start?
Age discrimination and a truncated career - 55, still in IT. Can't be that bad. But there's some truth in it. ... try delivering on time. Aren't you good at what you do? Hang on, didn't I just say that? ... what is it with you and not getting things done on time? ... oh, you are American. Anyway, see above.
Learning new ways of doing the same work - new tools, similar problems. Beats using the same tools for the same problems (like, say, a plumber).
Substandard pay - nope.
Compete with 3rd world labour - quality will out. Be good at what you do. Aren't you?
Work nights
5am - see above. Or try being a plumber.
Holidays
Vacation
No respect - respect must be earned, whatever you do, be it a plumber, a janitor, a judge, a programmer. Try being nice to people.
Implementing stupid solutions - can be a problem. Earn some respect, become involved in the process.
Girlfriends/spouses - you really do have problems, don't you? Try earning and giving some respect, change your t-shirt occasionally, maybe to one with sarcastic, bitter remarks on it. Maybe the world will love you more.
If you don't like this field, please leave. If you do not enjoy the challenge of one of the fastest paced, most technical areas around, just quit. Go work in a shop (mindless tedium), be a plumber (on call 24 hours, fixing broken toilets), a lawyer (everyone hates you), a factory worker (you hate yourself), a garbage collect (damn they die a lot. And girlfriends?)
I think I'll stick with it.
Re: (Score:3, Insightful)
I'm talking about basic things like...
Design your code so it can be maintained.
Design your code for growth.
Design your code for debugging.
Design your code so you only write 20% as much code.
Code for risks first- do the easy stuff last.
Young pups seem to very quickly code things that do not scale, is hard to debug in production, and fails as soon as the number of transactions goes up by 20% from the specs. Which is what the old geezers did 20 years ago.
They are also murderous about writing huge amounts of u
Re: (Score:2)
That's not what your hand crystal says; report to carrousel.
Young programmers keep me employed! (Score:5, Informative)
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.
Re: (Score:3, Informative)
It's like you're describing my life -- only 25 years in the future. I'm 34, and seeing the same thing.
The part that I'm finding frustrating is the boss that says, "I really think will be a valuable asset, they just need a little mentoring." So, I spend my day mentoring that person instead of getting my work done. "Mentoring" means first giving them a hint about how to do something. Then 30 minutes later telling them exactly how to do it. Then an hour later, sitting at their PC and typing the code in f
Re:Young programmers keep me employed! (Score:4, Informative)
Actual example. We had a fresh-from-college junior programmer and my manager asked if a particular (Perl) assignment would be appropriate for him. I wasn't sure, so offered to do the work myself in parallel with the new guy and mentor him on it.
It took the new guy two weeks, with help from me - answering questions, giving advise and hints. When done he wondered when we would be promoted to senior programmer. I replied most likely when he didn't another senior programmer to help him so much and when he could be more productive.
He asked how long it took me to do the parallel assignment. I replied, truthfully, "two hours" - which is why I had the answers to all his questions so readily.
Re: (Score:3, Informative)
No "bigotry" or "racism" was intended. It's just the sad reality that I have to fix a whole lot of code and "architecture" coming out of Pune, Bangalore, Mumbai and Hyderabad.
I rarely have to make anywhere near as many changes to code coming from Eastern Europe or Brazil, for instance. They manage to generally do a pretty good job. On the other hand, almost all the code I've ever seen out of India has been pure shit.
You need to stop being so sensitive about reality.
Re: (Score:3, Insightful)
Ahhh, so you mean a programmer from a "code factory" based in India? And you are talking about code coming FROM such a coding factory?
Fair enough, your post implied that you meant "Indian Origin" programmers, which is way too broad a statement, hence my call on racism.
I do agree that those "coding houses" can be problematic, I myself, when working for LogicaCMG, had to fix code from the Bangalore Office.
Most often the case usually was that the "Engineers" had a chip on their shoulders for getting employment
Re:Young programmers keep me employed! (Score:5, Insightful)
Eh... I don't think the GP's post was quite as unfair as you think.
Don't get me wrong, I've worked with some amazingly brilliant and hardworking Indian developers, but at the same time, it really isn't a rare thing to see an outsourcing firm sell an experienced dev team that really really isn't. Often they will have one legitimately solid guy come, meet the company, and sketch out the initial design, and then you'll never see that guy again. Some variant of that's happened with every outsourced project that I've been involved with across a decent handful of companies and industries.
It's a shame that unscrupulous outsourcing companies are giving a whole country full of developers (incidentally, I'd argue that's nationalist and not racist, but maybe that's splitting hairs) a bad name, but most managers making the decisions don't know enough to tell the difference between the two.
I've seen that happen over and over (Score:2)
Re:I've seen that happen over and over (Score:5, Insightful)
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.
My own two cents' worth (Score:4, Insightful)
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.
Re: (Score:3, Informative)
Career path (Score:4, Insightful)
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.
ageism (Score:4, Interesting)
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
It is age discrimination (Score:4, Insightful)
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.
Re:It is age discrimination - Yes, It is (Score:2, Interesting)
Re:It is age discrimination - Yes, It is (Score:5, Insightful)
Re:It is age discrimination - Yes, It is (Score:5, Insightful)
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.
No, it is not age discrimination... (Score:3, Informative)
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
jaded (Score:5, Insightful)
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
The third way (Score:3, Insightful)
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.
Only "Jaded"? (Score:5, Funny)
- 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)
Re: (Score:3, Insightful)
Ah, but which way do you go?
If you move from job to job on a regular basis, you're seen as an opportunist who won't stick around for long.
If you stay in one place too long, you're seen as being stuck in a rut and not growing your skillset (nevermind what the truth might actually be).
I personally prefer to stick with a given company long enough to learn the ropes in some detail, and I would have actually preferred to stay with my previous two employers until retirement (the work was interesting enough), but
Re: (Score:3, Insightful)
If you stay in one place too long, you're seen as being stuck in a rut and not growing your skillset (nevermind what the truth might actually be).
That mindset is probably not as prevalent as the opinions about job-hoppers you described ... It can also be countered by simply devoting more space in your CV to the skills learned/applied and work done during that time. But one thing I can guarantee: no employer wants employees that resign simply because they are concerned with the attractiveness of their CV above everything else (or any other things that are far beyond the employer's sphere of influence).
Re: (Score:3, Informative)
But one thing I can guarantee: no employer wants employees that resign simply because they are concerned with the attractiveness of their CV above everything else (or any other things that are far beyond the employer's sphere of influence).
Actually, I implicitly said so in an interview I was hired in recently. I've been working with a specific product for over four years, and I have gained certain general skills in reporting, databases and management information systems but those skills are topping out and by staying longer I'd become a product guru which would severely limit my work opportunities to that product. The CFO of the new company actually commented that he could understand after "being with a company for so long" because in the bus
24 months to burnout on average? (Score:3, Insightful)
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
Re: (Score:3, Insightful)
You know being jaded may be the case. As an IT Manager myself I have rejected a lot of older developers not because of skill sets but because of that jaded attitude
Firstly how do you know that a particular programmer has that jaded attitude beforee you've hired him? Secondly, have you thought that if you're having this problem that its because you're not effectively managing the guys (which is, after all, your job). Thirdly, have you considered that they might be right? (no, didn't think so)
I find that the
No really (Score:2, Interesting)
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 exp
Kids Today (Score:5, Funny)
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() ...!
Re: (Score:3, Insightful)
Experience (Score:5, Insightful)
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."
Youthful arrogance.... (Score:5, Insightful)
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.
Re: (Score:3, Insightful)
For simple projects that's true - where the application itself is straightforward and you just need people conversant in the tools you need to use to build it. That's not why you hire highly experienced people. No technology really takes more that 5 years to thoroughly master (although some complex domains may do).
Where you DO need experienced people is where the application is significantly complex or critical, where what the experience buys you is expertise in software architecture, and design. There are
Age Test (Score:5, Funny)
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.
by the age of 35 ... (Score:4, Funny)
This is relevant to my intrests (Score:3, Interesting)
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.
we just hired an older programmer (Score:5, Interesting)
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.
Cheaper young 'uns will work longer hours? (Score:4, Insightful)
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've experienced the following.... (Score:4, Interesting)
(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.
Re:"Elderly"?!?!? (Score:5, Funny)
"Elderly?!?!? I'm 41, you insensitive clod!"
Now get out of that igloo and back on the ice, Gramps. Polar bears gotta eat too.
Re: (Score:3, Insightful)
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.
Poorly phrased summery. (Score:3, Insightful)
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.
Its management Math (Score:4, Interesting)
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.
Re:Over 40 is "elderly"? (Score:5, Funny)
medium-term memory and stamina less (Score:3, Interesting)
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
Re: (Score:3, Insightful)
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.
Re: (Score:3, Informative)
They won't offer the older developer a job at any price.
Re: (Score:3, Insightful)
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".
Re: (Score:3, Insightful)
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
Re: (Score:3, Insightful)
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