Become a fan of Slashdot on Facebook


Forgot your password?
Businesses Programming The Almighty Buck

Tech's Dark Secret, It's All About Age 602

Posted by CmdrTaco
from the just-like-supermodels dept.
theodp writes "Universities really should tell engineering students what to expect in the long term and how to manage their technical careers. Citing ex-Microsoft CTO David Vaskevitch's belief that younger workers have more energy and are sometimes more creative, Wadwha warns that reports of ageism's death have been greatly exaggerated. While encouraging managers to consider the value of the experience older techies bring, Wadwha also offers some get-real advice to those whose hair is beginning to grey: 1) Move up the ladder into management, architecture, or design; switch to sales or product management; jump ship and become an entrepreneur. 2) If you're going to stay in programming, realize that the deck is stacked against you, so be prepared to earn less as you gain experience. 3) Keep your skills current — to be coding for a living when you're 50, you'll need to be able to out-code the new kids on the block. Wadwha's piece strikes a chord with 50-something Dave Winer, who calls the rampant ageism 'really f***ed up,' adding that, 'It's probably the reason why we keep going around in the same loops over and over, because we chuck our experience, wholesale, every ten years or so.'"
This discussion has been archived. No new comments can be posted.

Tech's Dark Secret, It's All About Age

Comments Filter:
  • by alphatel (1450715) * on Monday August 30, 2010 @12:10PM (#33416046)
    Anyone in the field who hasn't figured this out yet needs to be let go. Programming requires long nights staring blankly at mind-muddling objective languages. Experienced directors/designers have the foresight to be able to properly direct all that youthful energy to the most worthwhile pursuits, rather than just letting them wander aimlessly through some other other geek's code.
  • "Out code"? (Score:5, Insightful)

    by hsmith (818216) on Monday August 30, 2010 @12:18PM (#33416136)
    What is that? When I was younger I could code more, but I wouldn't say I coded better. Now I take my time and produce efficent, well documented, fully tested code - which functions 1000x better than my 'mass produced' code. Any *good* programmer programs well - not in volume.

    Any 50+ year old programmer should be able to keep up with 25yo programmers, knowing how to program isn't just knowing the ins and outs of the hottest language - it is knowing HOW to program so that you can swap languages efficently. (Yes, there is time to learn differences in languages, etc) But anyone worth their salt can jump where needed and go.

    Being said, if your first language was cold fusion and it is all you have done for the last 12 years, you may have a difficult time switching to C!
  • by RLiegh (247921) on Monday August 30, 2010 @12:19PM (#33416158) Homepage Journal

    If managers could pay people in their 50's what they people in their 20's, it wouldn't be an issue. As always, the bottom line is the only thing that really matters.

  • by radtea (464814) on Monday August 30, 2010 @12:23PM (#33416220)

    Programming requires long nights staring blankly at mind-muddling objective languages.

    You're doing it wrong.

    This is the same attitude that puts every project behind schedule, because 20-something morons who have never seen a project managed competently think it's supposed to be that way.

  • by DoofusOfDeath (636671) on Monday August 30, 2010 @12:24PM (#33416232)

    Programming requires long nights staring blankly at mind-muddling objective languages.

    No, inexperienced programming requires that.

  • by Jane Q. Public (1010737) on Monday August 30, 2010 @12:27PM (#33416256)
    Employers need to keep in mind that age discrimination is ILLEGAL in the United States... just as illegal as discrimination based on religion or race.
  • by alphatel (1450715) * on Monday August 30, 2010 @12:28PM (#33416260)

    "Programming requires long nights staring blankly at mind-muddling objective languages."

    Actually, no, it doesn't. I have never done this and never will.

    To each his own. More importantly, if you are being directed properly by experienced management then you see the meaning of the statement. The purpose is meant to divert overly enthusiastic but misdirected individuals from spending countless hours whiddling away at unimportant tasks which due to their lack of experience might put them at risk of staring blankly - nights or days is irrelevant.

  • by Monkeedude1212 (1560403) on Monday August 30, 2010 @12:32PM (#33416294) Journal

    Experienced directors/designers have the foresight to be able to properly direct all that youthful energy to the most worthwhile pursuits.


    100 times this.

    This to the power infinite.

    I'm reaching my 4th year of professional programming (so still pretty young), and I remember starting out I definately marketted myself as one of those fresh new guys who are up to date with the latest stuff. I would not be where I am today without the senior developer over my shoulder though - he is basically the bridge between what you are taught and what the real world is like. Universities, Colleges, Polytechnics, all churn out hundreds of monkeys like me, but those guys who stick with it are the valuable ones, and I hate to see them under-appreciated. We recently had our lead developer with 10+ years experience in the company leave because of political BS, and while I'm capable at keeping the maintenance in check, I have no idea how to lay out the big projects that the VP's want done. Well, let me rephrase that: I know I could come up with something, but I have no idea if it is truly the best course of action, how easy it will be to implement with existing systems, or any of the logistical stuff on how long each section will take under the rest of the team with their experience.

    I only hope that I can stick it out long enough to develop my skills to be as helpful to some protoges some day, and that they too will be appreciative of me.

  • by brainboyz (114458) on Monday August 30, 2010 @12:33PM (#33416306) Homepage

    But proving you've been discriminated against by age is difficult, at best. "The candidate we hired had skills more relevant to our business needs and displayed an attitude that meshed better with our company culture."

  • by Jane Q. Public (1010737) on Monday August 30, 2010 @12:34PM (#33416322)
    I worked not very long ago with one of those young "rockstar" programmers. While he was intelligent and a good worker, he had no formal education in computer science, and in some ways it showed. For example, he had no idea what a Big O() was, and did not have the necessary math or theory to be able to determine the efficiency of anything he was writing.
  • by ahodgson (74077) on Monday August 30, 2010 @12:37PM (#33416372)

    I have yet to see a developer fresh out of school even know what a SQL injection is, let alone code to prevent it.

  • by avandesande (143899) on Monday August 30, 2010 @12:38PM (#33416378) Journal

    I would like to hear from programmers that have been at it for 10 or more years that aren't 'burned out'

  • by sammyF70 (1154563) on Monday August 30, 2010 @12:39PM (#33416398) Homepage Journal

    The "alternatives" toward which a programmer is supposed to steer according to TFA are plain stupid and slightly offending by assuming that becoming a manager or a Sales ~person~ is a move "UP". How the fuck is your programmer background going to help with those? Not withstanding the fact that most good programmers I know don't have the skills needed for those jobs.

    It's like telling restaurant cooks to jump ship and become kitchen appliance salesman, or graphic artists that to move UP they need to open and run an art gallery full of stuff they didn't do themselves

  • by Americano (920576) on Monday August 30, 2010 @12:39PM (#33416408)

    and those of us trying to deal with people just starting out who think they know everything.

    It's rare to find someone who is young who values the experience we dinosaurs bring to the table.

    We've been around long enough to have broken it and fixed it again several times over so don't discount our skills just because we're old enough to be your parents.

    Sounds like you're indulging in a bit of casual ageism yourself! Delightful, innit?

    I'm 35. I work with lots of guys who are 15-25 years older than me; some are quite bright, excellent problem solvers, and their experience is tremendously valuable. Others are obnoxious, stale, inflexible, cantankerous pains in the ass. I value the former. I despise the latter - not because they're old, it's because they behave as if their age automatically confers upon them some sort of infallibility in all things technical.

    Not surprisingly, the latter group are also the ones - in my experience - who like to knock me (with ~12 years in the field) as "young," "unseasoned," and "still wet behind the ears," normally while I'm disagreeing with their approach and outlining why it's bad, and why a different approach would be better. Because apparently nothing supports their point quite as well as waving away technical limitations with "you're young, you can't possible understand." The former group tends to explain their proposals in such a way that it is immediately obvious why their approach is a technically superior alternative, instead of being condescending pricks to everybody with less experience.

    "Old enough to be my parent" is a secondhand appeal to authority - a) you're not my parent; b) if that's the only reason I should be listening to you, you probably aren't as good at your job as you've judged yourself. People old enough to be my parents earn my respect when I see that they are genuine authorities in the subject matter, they don't automatically get it by virtue of the fact that they've been sitting around the office longer than me. Just as I don't expect someone to assume I'm correct simply because "my college training is more recent than yours" - if I'm correct, then it doesn't matter if I'm young or old; if I'm incorrect, the same applies.

  • by dward90 (1813520) on Monday August 30, 2010 @12:41PM (#33416450)
    The difference between the computing industry and the other industries you mentioned is that computing is hundreds of years younger, and thus changing orders of magnitude faster.
    Medicine comes the closest because of continuous research, so doctors are required to stay current with continuing education (they have to do this to maintain certification).

    Businesses dump older programmers in favor of newer ones because it's cheaper to hire a out-of-college kid for an entry-level salary than it is to pay a career-programmer his substantially higher salary to learn whatever the newest, hippest, programming style is.

    Note: this is a bad thing. It's bad for body of work that is our code-base in every language, and it's bad for the intelligent design of large systems (which requires vast experience). However, it will take a large shift in the rate at which the tools we use in the industry change. If the entire field doesn't change hugely over the course of 2 decades, then someone who has spent the last 2 decades writing code becomes exponentially more valuable.
  • by hey! (33014) on Monday August 30, 2010 @12:42PM (#33416462) Homepage Journal

    Anyone in the field who hasn't figured this out yet needs to be let go. Programming requires long nights staring blankly at mind-muddling objective languages.

    That's simply not true. It's just *one* way of getting the job done. True, you need to achieve a flow state to be maximally productive. The reason for the late nights is to have time when you aren't interrupted. In other words, the belief that you *have* to stay late at night to be productive is the product of incompetent management.

  • False Economy (Score:5, Insightful)

    by strangeattraction (1058568) on Monday August 30, 2010 @12:44PM (#33416484)
    I leave at 5PM because my experience has taught me how to avoid many of the problem new coders create for themselves. I get twice as much done in half the time compared to when I first started. Looking back at my first experiences as a programmer, I laugh at all the late nights spent working diligently to complete code only to find that I had checked in something inadvertently or forgotten to check something in that broke the build. This in turn wasted many other people time simple because I was too tired to think. The idea that technology has changed tremendously and older coders experience no longer applies is LOL. First the technology has primarily gotten smaller and faster. And coding techniques have improved in some ways but degraded in others. It all still ends up as binary in the end, something many of my younger colleagues don't deem to get which leads to some extremely sloppy techniques. These arguments are mainly bull similar to memes like out sourcing saves money (usually at the expense of time and quality).
  • by royallthefourth (1564389) <> on Monday August 30, 2010 @12:46PM (#33416504)

    Maybe I'll be making $20 per hour until I'm 45 and unemployed thereafter, but at least I won't be like those damn factory workers getting paid $70k per year with a full pension!!

  • by bl8n8r (649187) on Monday August 30, 2010 @12:46PM (#33416518)

    There's no future in management, and geeks hate managing people anyway so wtf? I've been asked a few times and no, I won't do it. Thing is, I like writing code. I *enjoy* it. It's why I come to work and what I like to do. I don't *want* to referee the personalities in the office and I surely don't want to be the one who answers for everyone else's fuckups. Not to mention, excess management is usually the first to get cut when job reductions go around. who wants that? I'd rather be a hired hand for some consulting outfit. The benefits suck, and people think your dogsh#t, but if you can get over that it's a good application for experience and the change of scenery on projects is nice too.

  • by hey! (33014) on Monday August 30, 2010 @12:47PM (#33416526) Homepage Journal

    It's because hiring managers are afraid to hire people with more experience than they have.

  • by Mongoose Disciple (722373) on Monday August 30, 2010 @12:47PM (#33416530)

    are concepts that newbies assume can be handled by an API, or automatically garbage-collected...

    To be fair, for all practical purposes on many (not all) projects, they not only can be, but probably should be. Your primary focus is on the business or application logic and not on optimization or memory management -- unless it matters, and often it doesn't. For example, I have a sense of how to design a project and write code that supports a high degree of scalability and high availability of services -- but that's been relevant on only a small fraction of the projects I've worked. Wasting time building heavy scalability (for example) into a piece of software that would for certain only ever be used by one person or a handful of people at a time would not be the hallmark of a good programmer.

    (Though I agree you can get into trouble if you don't have any sense of when it isn't true that you can let these things slide.)

  • by King_TJ (85913) on Monday August 30, 2010 @12:49PM (#33416558) Journal

    What I've observed as an I.T. guy who often worked along-side developers is, management often decides a certain technology is the way forward for a given project. At that point, the experienced developers are sometimes left out in the cold, because although they may have, say, 6 years of good experience coding in Java, they didn't spend time on the latest Microsoft technologies. The "new kid on the block", by contrast, may have claimed experience in that area, so to management, he's the "better bet".

    Most likely, the REAL problem here is that management doesn't buy into or grasp the idea that the development language used is rather immaterial. If you've got someone with many years of experience coding in a specific language, it'd probably yield the best results to let them continue doing that. Ask them to produce product X or Y with whichever tools they're most versed in using!

    Instead though, there's an overall sense that programming languages get "stale" after a while, and a new product needs to be designed with a new language.

    I'd say I only have a few personal anecdotal stories to back this belief up, so it could be way off base ... except how much demand is there today for developers with experience in COBOL or Fortran or BASIC, or Pascal, or Forth? I've always worked in a "Support Specialist" or "Network Management" role, but I've observed all these programming languages come and go -- and it seems like such a bad deal for a developer. He/she has to put in so much effort to learn and subsequently master one, only to find it fading into obscurity.

  • by Mongoose Disciple (722373) on Monday August 30, 2010 @12:53PM (#33416616)

    I agree with you that most good programmers don't make good managers or salespeople. However:

    The "alternatives" toward which a programmer is supposed to steer according to TFA are plain stupid and slightly offending by assuming that becoming a manager or a Sales ~person~ is a move "UP". How the fuck is your programmer background going to help with those?

    A manager or sales person who both is legitimately suited for their job and is technical is a godsend, because they tend to be much less likely to promise their superiors and/or clients the impossible or impractical. They also tend to be better at "selling" the decisions that the development team has made and their tradeoffs.

  • by jythie (914043) on Monday August 30, 2010 @12:55PM (#33416640)
    *nod* That has been my problem with working around untrained 'rockstars'... they can be really bright, but they spend all their time reinventing things that have been around for decades because they did not know the solution already existed off the shelf.
  • by Surt (22457) on Monday August 30, 2010 @12:57PM (#33416660) Homepage Journal

    I would guess it is much harder to prove than race or religion. I mean seriously, we interview a lot of candidates. No one I have ever worked with expressed the thought that older people can't be competent in CS, whereas I have run into actual racists/religionists.

    Older people don't get hired because:
    1) They let their skill sets get out of date. We're hiring people currently skilled in java. I have seen some older people apply who only knew cobol, apparently, and weren't willing to learn enough java to pass a basic technical interview.
    2) Older people can appear tired. We're hiring energetic people with enthusiasm for their work. If you can't even fake it the length of an interview ....

    I say all this headed for my 30th birthday and knowing the clock is ticking.

  • by ConceptJunkie (24823) on Monday August 30, 2010 @12:57PM (#33416662) Homepage Journal

    You must work exclusively with stupid older developers then, because that kind of generalization is ludicrous.

    Experience can't replace knowledge, but knowledge won't do you a whole lot of good until you have some experience.

    In my experience there are good developers and not-good developers.

    The good ones "get it", and can adapt to new languages and platforms quickly and still be effective and productive.

    The "not-good" developers won't do well on the platforms they are used to no matter how long they work at it.

    I was able to get hired to work in languages I'd never used before and adapted quickly. Good managers, which are increasingly hard to find, can recognize this kind of thing. Bad managers are how mediocre people can thrive in a career they are no good at.

    Many, but not most, young kids fresh out of school "get it". They are worth hiring. Many, but not most, old timers with decades of experience don't "get it", and by that point they probably never will.

    But I don't care how smart a person is, years of paying his dues in the trenches is absolutely imperative to become a true expert.

  • by wagadog (545179) on Monday August 30, 2010 @12:57PM (#33416666) Journal

    ...and just as illegal as discrimination based on childbearing status and gender, I may add.

  • by dc29A (636871) * on Monday August 30, 2010 @01:00PM (#33416704)

    As a middle aged programmer, I always try to keep my knowledge up to date. Yes it comes at the cost of 'free time', but in the end, if I want to have a fun job, I need to do it (and luckily, my significant other understands it and supports me). The other options are: moving into management (which I despise) or be stuck fixing Hadean Cobol code. When I got my degree, I knew only Cobol, Assembler and C. Over the years I added VB, Java and C# to my list along with a bunch of frameworks like .NET, Spring, iBatis, name it. This self teaching has brought me a lot of fun projects in all kinds of languages running on all kinds of systems.

    But I can see where this animosity towards older coders comes from: the vast majority of them don't give a damn about new technologies/languages/frameworks. So when the boss decided to use one of those, they won't be able to keep up. In my group of 20 or so coders, maybe 2-3 are continually keeping themselves up to date with recent technologies. Some of the VB coders have hard time grasping class attributes in C#, because they never kept up with object oriented languages. Hell, some of them code in C# as it was VB.

    Unfortunately, due to the nature of this domain, I see only one option for me if I want to keep programming: learn or perish. When the next great recession hits, I can at least put multiple language/system skills on my resumé, while some older programmers can't.

  • ITT: (Score:3, Insightful)

    by O('_')O_Bush (1162487) on Monday August 30, 2010 @01:03PM (#33416726)
    ITT: A handful of above average, many average, and a handful of below average programmers giving advice, all thinking they're above average and qualified to do so.
  • huh (Score:3, Insightful)

    by buddyglass (925859) on Monday August 30, 2010 @01:04PM (#33416742)

    If you're going to stay in programming, realize that the deck is stacked against you, so be prepared to earn less as you gain experience.

    This makes no sense to me. If he'd said, "expect that your 30 years experience will allow you to command a salary roughly equivalent to someone with only 10 years experience" then I'd be on board with that. But to actually earn less because of additional experience? As in, "If you had 10 years experience we'd pay you X, but since you have 20 years experience we'll only pay you 0.8X"? That's nuts.

    My personal experience is that people pay based on the position, and the position usually has some experience requirements. No position requires more than 10 years experience, so any experience beyond that is superfluous. So the salary arc for a developer, assuming he stays in development (and not architecture, design, etc.), should steadily increase from year 0 to maybe year 10, then mostly plateau.

  • by PPH (736903) on Monday August 30, 2010 @01:04PM (#33416750)

    Productivity is secondary to one attribute that management (particularly of large organizations) seeks above all else: naivete. Management loves young, fresh faces. In spite of lower productivity and less experience on the job, what employers value is that unquestioning loyalty that comes with youth. Once people gain a certain amount of experience, they start calling 'bullshit' on the PHB's plans and that's the end of career growth.

    Its a management style inherited from the military where there's a need for cannon fodder. Grab the rifle and charge the machine gun nest. Once the grunts start to realize that there's a better way to get the job done, and not get your ass shot off, its time to bring in the new recruits.

    This isn't as true for smaller organizations or those with flatter management structures. Here, workers are expected to contribute across several levels of the software (or engineering) development life cycle. In larger groups, where these boundaries are more strictly defined and reflected on the organizational structure, such cross disciplinary communications are not encouraged. They are often viewed as an additional burden on the management structure.

    So, your best bet, once you have acquired this kind of experience, is to seek a job position in an organization that values it.

  • by Antisyzygy (1495469) on Monday August 30, 2010 @01:04PM (#33416752)
    Im pretty sure the reasons corporations chuck people is because they can hire a young ones for 50 percent the cost of you old people. They look at small term gains vs. long term sustainable profits. If anything the young ones should be guided directly by you older guys, not slapped in some new formation. Really, its a management issue because they do not recognize other peoples skills but their own as valuable. Management is one of the worst disciplines taught at Universities. It generates a whole bunch of dilettantes that believe the "business degree" hype and think "Well, shit I can get a job making big bucks if I do an MBA and still not work very hard at learning anything difficult." I believe this is why its very important to phase out MBA managers in general and only hire someone like an Industrial Engineer or in this case an actual senior level programmer to do management in any kind of production be it software or physical products.
  • by Fulcrum of Evil (560260) on Monday August 30, 2010 @01:11PM (#33416844)

    We're hiring energetic people with enthusiasm for their work.

    Shouldn't you be hiring competent people with some measure of perspective? I understand that this can masquerade as tired to those used to eager beavers, but I assure you that they actually get more done.

  • by buddyglass (925859) on Monday August 30, 2010 @01:11PM (#33416854)
    I'm not. I also don't take jobs that require me to regularly work more than 40 hour weeks.
  • by Anonymous Coward on Monday August 30, 2010 @01:12PM (#33416858)

    Thats because you can't go to school to be a good developer, you have to be one on your own. You either can logically link things together and not have to be told about SQL injections, or you can't and will never be a good developer. Its that simple. If you don't early on realize these kinds of things your head is up your ass.

    In fairness though, the last 4 interns I've worked with all knew about the dangers of not sanitizing all of your inputs.

  • by jeff4747 (256583) on Monday August 30, 2010 @01:15PM (#33416902)

    That's funny because every time there's a massive security problem, it's not a younger programmer at fault.

    [Citation Needed]

    In my anecdotal experience, it's always a younger programmer at fault. "I didn't put in error checking, 'cause it always worked on my machine" is quite common among those who have yet to be burned by such statements.

    And something like SQL Injection is a pretty easy problem to solve. I worked for a company that decided to use the filesystem as their database for their "Enterprise Class" product. As in each record was its own file. That way they could distribute the files across multiple servers. Then they decided to not abstract the database interface, meaning that any changes would require rewriting most of the product - not to mention all the bugs in the many different implementations. The young dude who was the software architect decided on this course of action because "Databases are too expensive". Result: Product could handle about 10 concurrent users on the biggest iron we could reasonably find. Sales: $0. But they paid my bills for 6 months during the dot-com crash, so they weren't completely useless.

    And don't even get me started on all the clueless IT admins that got promoted to oversee everything just because of their age and supposed experience but take that as an excuse to not keep up on any new technology and generally don't know as much as the people under them.

    I've met lots of younger people who insisted that the old farts just weren't keeping up on technology, which is why they were using this stupid Windows crap on the server. Unfortunately, none of the young folks were smart enough to ask the old dog why he wasn't doing new tricks. Usually, there's something like vendor tie-in, critical software that isn't available on other platforms, or management that won't pay for the transition.

    Your position on this matter also demonstrates another fallacy: the idea that your boss should know more about technology than you do. That's not his job. Your boss's job is to do the management thing(TM). Your job is to know about technology. Unless you want to spend all day sitting in useless meetings, I suggest you maintain this division of labor.

  • Re:Say what? (Score:5, Insightful)

    by PPH (736903) on Monday August 30, 2010 @01:15PM (#33416910)

    The problem at Microsoft is that, once someone has reached a level of experience enabling them to spot flaws in the overall product architecture, they become a burden on management. Questions along the lines of, "Why don't we just fix this crap?" interfere with getting the next release of crap out the door. So its time to move them aside and hire in someone who still thinks Ballmer is God.

    It's getting difficult to find such people without having to recruit in the third world.

  • Meh (Score:1, Insightful)

    by cheekyjohnson (1873388) on Monday August 30, 2010 @01:18PM (#33416956)

    Young != inexperienced just like old != uncreative. Such generalizations need to be thrown out the window.

  • by cayenne8 (626475) on Monday August 30, 2010 @01:20PM (#33416974) Homepage Journal
    "because 20-something morons who have never seen a project managed competently think it's supposed to be that way."

    I would venture to guess...there are PLENTY of 40-50yr olds that have yet to see a project managed competently...

  • by darien.train (1752510) on Monday August 30, 2010 @01:20PM (#33416980) Journal

    This is the same attitude that puts every project behind schedule, because 20-something morons who have never seen a project managed competently think it's supposed to be that way.

    In my experience that's usually because some 30-something moron passed a lot of their bad habits onto their subordinates as if they were revelations from the lord himself.

    I personally tend to shy away from hiring developers who brag about living in the office as it says to me that they don't know how to work smart, only hard (which leads to sloppiness). Living in the office also leads to "office as home" syndrome which totally destroys your developers ability to know when they're working or not. This leads to a never-ending cycle of almost-working developers eating up time and power through all hours of the night without a lot to show for it.

    90% of the time a smart and hard 8 hours is all that's necessary to get what you need out of your devs (or your job if you are a dev.) If you're constantly working all hours of the night you're either:

    1. Getting ripped off by your employer

    2. Being managed by an incompetent

    3. Incompetent yourself

    4. Some combination thereof

    I wish I knew how to better articulate this to others but I can never seem to get the point across. Something tells me posting this here isn't going to solve that but I can dream.

  • by BZ (40346) on Monday August 30, 2010 @01:20PM (#33416986)

    Well, in all honesty web workers are explicitly NOT like worker threads. In particular, they are shared-nothing, as opposed to the shared-memory model of worker threads. While it's possible to use worker threads in a shared-nothing manner with careful discipline, that's not how they're typically used.

    All of which is to say that we _have_ learned something over the years, even if the "something" is that shared-memory multi-threaded programming is somewhat error-prone and pretty much impossible to debug sanely when something goes wrong...

    Of course we have also learned that programmer/debugger convenience is worth a few machine cycles, and that works fine until you start trying to pump MB/s worth of data across that shared-nothing boundary. Then you discover that we do still have hardware limitations and start implementing some sort of COW setup. ;)

  • by Kjella (173770) on Monday August 30, 2010 @01:22PM (#33417010) Homepage

    Some years ago, I was reading a flame here on slashdot and one of the insults was calling RMS an old dinosaur from the 256 color era. I grew up with the 16 color Commodore 64, so that made me older than the dinosaurs. That was the first time I felt really, really old and I was 24 at the time.

    On a more serious note though, I will say that I am a better coder than I was 10 years ago but so much has changed. My professor would keep going on about bits and bytes like the difference between a short and long really mattered and "look to embedded". Well here we are and seriously nobody could give a fuck if a variable is short or long, possibly if it's in a huge array or many database records but mostly not even then.

    Don't get me wrong, I don't think going through everything from BASIC to assembler to Pascal to MFC to Java 1.0 was useless, it's background and general knowledge but it's not very to the point. In fact, some of it would today be anti-patterns you should unlearn. In short I think you can subtract several years of useless skills, if I went back with modern tools and libraries I think I could achieve the same level in maybe 5-7 years. And the further back you go, the less relevant it is to modern programming.

    And by modern I mean high level, we still need people to hack in C but not for most applications. There are jobs for COBOL programmers still, too. But today if I was building a house I'd rather do it like modern construction. Lots of prefab, but it still takes skill putting it all together.

  • by cayenne8 (626475) on Monday August 30, 2010 @01:26PM (#33417074) Homepage Journal
    "I'm going to have to start my own business again. Searching for a programming job when you're over 50 is a Sisyphean endeavor. It's all a go until you get to the interview and, no matter how well that goes, the job goes to a younger candidate. "

    Interesting. You might consider incorporating yourself (if not already), and doing the contracting thing? I mean, I've done mostly that the past years....and honestly, they never really know my age, especially since all my interviews have been phone interviews!!

    Hard to tell your age if they can't see your face!


    But seriously...look into it...places that want contractors WANT someone experienced, and that can come in, be the gunslinger and get things done, and they PAY extremely well too. I find MANY more 'older' people out in the contracting world than young ones, and they don't seem to have a problem getting work at good pay.

  • by DrgnDancer (137700) on Monday August 30, 2010 @01:33PM (#33417178) Homepage

    Which is exactly what the second programmer mentioned in the summary is talking about. You're having to figure it all out again, instead of learning from the mistakes of your predecessors. You lost everyone with more than ten years experience. Assuming that you're no smarter than the smartest guy just lost, that means that in 6 years time (your current 4 years + 6 more makes 10) you will finally be about as a good as the guy that just left. Whereas if he'd been there showing you the mistakes he made and helping you navigate around them you might be there in in 2 or 3 years. Worse, if trends continue as they are, it quite likely that in 5 or 6 years you'll be leaving, or forced out, and the next crop of people won't benefit from *your* hard won experience either.

  • Re:"Out code"? (Score:5, Insightful)

    by Bengie (1121981) on Monday August 30, 2010 @01:39PM (#33417248)

    Going along with hsmith:

    I know lots of "programmers" that copy/paste what they read for exercises in books and that's what they use.

    The problem is they never learn "why". They write just because that's how they saw it done in examples.

    I don't look at a problem and think, how can I program this. I look at a problem and think, if I was a computer, how would I do this. Once I figure that out, I try to figure out how to make the computer do that with my programming language.

    I love to know how things work.
    How does the .Net GC work
    How does .Net handle objects
    How does SQL decide to use indexes
    Why is a 64bit op non-atomic in a 32bit machine
    How does the CPU calculate floats/doubles/etc and how can I reduce math errors
    How can I take advantage of the 80bit double precision of x86 registers

    Which SQL object should I use for reading in data vs manipulating datasets. When should I use Byte Arrays to manipulate string instead of String methods. How can I re-use objects to not use so much memory. How can I reduce lock contention for multi-threaded programming. How can I use bit flags to reduce the amount of data stored in a struct. How can I reduce cache thrashing. How can I pack more important data into a cache line to reduce fetches. Can I use a hash table or binary search. How are managed objects stored in .Net and how can this affect threaded programming

    I may work in a high level language, but I don't think in the high level language. I program using logic, I communicate with the computer using a programming language.

  • Productivity (Score:5, Insightful)

    by natoochtoniket (763630) on Monday August 30, 2010 @01:39PM (#33417252)

    A lot of people seem to think that programmer productivity has something to do with lines of code produced. That misconception gets propagated by uninformed managers, who are basically looking for something that is easy to measure.

    In reality, productivity has more to do with achieving required behaviors with a minimum of code-writing. When a fresh-out writes 3000 lines of code, discards or changes 2900 of them, and ends up with a 700 line program that only sort-of works and only remotely resembles the design, after 10 weeks of working 70 hours a week, is that really productive? If an older guy thinks about the problem for two weeks, spends a day or two writing docs, writes a couple pages of code in one morning, tests it that afternoon, tweeks it a little the next morning, spends another day improving comments and updating docs, and has the whole thing finished and solid in 3 weeks, is that really less productive?

    Uninformed managers reward the guy who works 80 hours a week and writes lots of bugs. The buggy code needs to be fixed, which then requires heroic amounts of overtime. They reward the overtime, without understanding why it was needed. By contrast, the guy who gets it right the first time, and doesn't need to fix it, doesn't have to work those silly hours. The uninformed managers also do not understand why a program doesn't need to be fixed, and why overtime is not really needed, and so the better programmers are not usually rewarded.

    Programming is about function and behavior, not lines of code.

    Just for fun, I sometimes run 'uncrustify' on a mess of old code, or change a variable name, before doing a small logic change. My nontechnical director gets a report that counts the lines in each commit.

  • by ErichTheRed (39327) on Monday August 30, 2010 @01:42PM (#33417284)

    I'm in the unenviable position of getting older (35) and am starting to see the beginnings of this trend.

    The three suggestions the author offers are sage advice. Keeping your skills up and taking on higher-level roles are really good ways to ensure you'll at least stay employed. Point 2 is equally important - save like crazy during your prime earning years, so you aren't forced to be that 50-year-old guy who demands $125K for a $70K position because you actually need the income. The reality is that there is little hope you'll convince an employer that paying more for your skills is worth it. Management only sees you as a cost, and wants to maximize the amount of value they get out of you. Even if the 22-year old screws up a few times, the 80-hour weeks he's going to be able to pull to fix things will offset the extra salary. Counterintuitive? Yes, but it's standard Business School 101 fare, so we have to deal with it.

    It really stinks that you can't have a full career with a path laid out for you like you used to. if you're not the entrepreneurial sort (which I definitely am not,) you're going to be stuck either bouncing around in short full-time stints or even shorter contracting stints. I'm a systems person, and really enjoy solving tough integration/sysadmin problems. I hate people management and project management, so I've concentrated on keeping my knowledge current and not being the person constantly begging for raises. It's worked well so far - I have a pretty good reputation within my smallish specialty field. My next plan is to ditch full-time employment and start contracting - but even that's dangerous. Like the article says, those of us who are older have families counting on us; we don't live alone in a one-bedroom apartment with no financial concerns beyond next month's rent.

    The more entrepreneurial types among us older folk would clean up if they started a contracting firm based on the concept of companies paying for experience. I can't tell you how many projects (both business-related and IT-related) I've been on where a company hires one of the big-name consultancies (Accenture, Bain, Booz, McKinsey, etc). These firms hire Ivy-league graduates (early 20s, typically very little work experience) on the premise that they're smart and have a good reputation. Unfortunately, I've found their skills lacking, and they tend to learn on the job, causing downtime, wasted meeting time, etc. If some slick sales guy could convince a company that a bunch of people who have seen all the tech industry hype cycles, know what's really going on, and know how to solve problems based on having done it before, we'd have a working business model.

  • by dkleinsc (563838) on Monday August 30, 2010 @01:43PM (#33417300) Homepage

    Actually, inexperienced programming doesn't require that either.

    I've pulled exactly 1 all-nighter in my entire career, and that only because my boss specifically told me to do so. Anyone with any knowledge of human psychology knows that when you work late, you get slowly more and more stupid, which ends up costing you more than you gained in bugs you need to fix.

    The image of the all-night programmer needs to go away. (Ditto for other professions that call upon people to lose sleep, like medical residencies.)

  • by couchslug (175151) on Monday August 30, 2010 @01:45PM (#33417320)

    "I believe this is why its very important to phase out MBA managers in general and only hire someone like an Industrial Engineer or in this case an actual senior level programmer to do management in any kind of production be it software or physical products."

    Good luck getting the MBAs who hire MBAs to see that they aren't best suited for...everything. :)

  • by houstonbofh (602064) on Monday August 30, 2010 @01:50PM (#33417408)

    "because 20-something morons who have never seen a project managed competently think it's supposed to be that way."

    I would venture to guess...there are PLENTY of 40-50yr olds that have yet to see a project managed competently...

    Often it seems that project management is just a job title, not a skill...

  • by Americano (920576) on Monday August 30, 2010 @02:01PM (#33417540)

    No, it's still illegal. You just haven't been punished for it if you don't get caught.

  • Value (Score:3, Insightful)

    by VGR (467274) on Monday August 30, 2010 @02:10PM (#33417642)

    Companies have no interest in paying more for people more skilled in software engineering. They want people who can "just write code." The medium-term to long-term consequences of writing unmaintainable, disorganized, undocumented code are almost never recognized by management. And even if they were recognized, we live in a short-term-profit world, where it is standard practice to run a project or company into the ground by releasing a shoddy product which holds together just enough to avoid lawsuits.

    A company who values older developers is a company who values the quality and long-term viability of its products. Good luck finding one of those.

  • by gnasher719 (869701) on Monday August 30, 2010 @02:44PM (#33418026)

    I have yet to see a developer fresh out of school even know what a SQL injection is, let alone code to prevent it.

    I am not an SQL developer. So when I heard about this SQL injection business, curious as I was I had to figure out what it was and how it was done. When I finally found a web page explaining it, all I could think was: What the fuck. Only an absolute complete idiot would ever, ever take the contents of a user entered text field and plug it as it is into a string that is constructed to form a query. Not even in dBase would you do that. What a fuckup.

    Seriously, I wouldn't have know what an SQL injection is because, well, it is like I have never thought about how dangerous and life threatening it would be to stop breathing, or to take a bath with the face _in_ the water instead out of _out_ the water. When I first about "SQL injection" I thought it had to be some really clever hack that you had to be really careful about, but no, you only get SQL injections through code created by a total and utter imbecile.

  • by Kjella (173770) on Monday August 30, 2010 @02:51PM (#33418090) Homepage

    In my experience that's usually because some 30-something moron passed a lot of their bad habits onto their subordinates as if they were revelations from the lord himself.

    Well if you accept it blindly then you're just lazy. I have spent many hours picking apart code I didn't understand thinking I'm either looking at something very smart or something very stupid. I don't remember who said "Ninety percent of everything is crap." but it's true, however the other 10% can be utter revelations. Not clever code as in exotic trickery which raises complexity 10x for marginal gains, but simply elegant - not as in pretty, but functionally elegant - code that is extremely well designed and cleanly implemented. You should be very careful who you let teach you to code "right"...

  • by technosean (169328) on Monday August 30, 2010 @03:44PM (#33418646)

    I predict that one day Google will be crucified by the government for their blatant ageism. And I mean crucified. The racist equivalent would be if 5 African-Americans worked in their entire corporation.

    Just wait.

  • by Dr.Boje (1064726) on Monday August 30, 2010 @03:58PM (#33418832)

    Many, but not most, young kids fresh out of school "get it". They are worth hiring. Many, but not most, old timers with decades of experience don't "get it", and by that point they probably never will.

    That "many, but not most" part really eludes you, doesn't it?

  • by bjourne (1034822) on Monday August 30, 2010 @04:00PM (#33418856) Homepage Journal
    Self-aggrandizing much? Since there has been books with SQL injection vulnerabilities in their examples, Open Source projects with provably skilled programmers containing these flaws, it is not only utter imbeciles that do not protect against these types of attacks. Or maybe they are just complete idiots in comparison to your God-like skillz. That kind of narcissism makes it hard to actually improve technology and processes. Your solution to SQL injection is "dont be an idiot" while a more pragmatic and humble programmer would solve the problem by using an ORM layer which obviates the need to perform manual SQL string interpolation so that SQL injections can not occur. It is about thinking out of the box, not that everyone around you are idiots. Which you learn, sometimes, with experience.
  • Re:Late nights (Score:3, Insightful)

    by dkleinsc (563838) on Monday August 30, 2010 @04:21PM (#33419114) Homepage

    When you're in the zone, you're GOOD!

    No, you think you're good. You won't actually know until somebody else looks at your results. One of the first things to go when brains start getting impaired is the ability to judge your own capabilities.

    I also take some exception to the goal of "creative juices". For any system that needs to be reliable and maintainable, the last thing I want is a developer that got overly creative. That doesn't mean that there's no room for appropriate refactoring and the like, but a lot of "creative" code can quickly turn into "wtf!" code when somebody else looks at it. Great software is often the most simple, straightforward, even boring stuff imaginable.

  • by mcgrew (92797) * on Monday August 30, 2010 @04:47PM (#33419530) Homepage Journal

    The average person's IQ declines with age.

    [Citation needed]

    I found articles about IQ and race, IQ and sex, IQ and health, but not one dealing with age. AFAIK, your IQ only declines with age if you have alsheimer's or some other medical condition that would affect your brain.

    Decline in testosterone just makes you more laid back and harder to piss off. Nobody can think straight when they're pissed off. How productive are you when you're ina bad mood? Testosterone has a negative effect on IQ; have you ever seen a genius on steroids?

  • Re:Well I'm 50 (Score:4, Insightful)

    by aaarrrgggh (9205) on Monday August 30, 2010 @05:04PM (#33419794)

    Ageism isn't a problem for star performers... it is a problem for the "average" people. If you want to do your job for 30 years and never change anything about what it is or what you know... you will be out of luck ...and a job.

    It is true in nearly every position, possibly with the exception of some forms of sales or medicine.

  • by darien.train (1752510) on Monday August 30, 2010 @05:46PM (#33420352) Journal

    What I'm talking about is cultural and specifically related to business. I'm sure you've experienced the exact same cultural issues I'm referring to and can even empathize with them.

    The only dispersions I cast were on management types who poorly manage people who want to work hard but don't provide parameters or proper guidance for that hard work (in this case hard team work.)

    Maybe you should re-read the comment as I would never mock or cast anything other than praise on people who work hard. I do however mock people who think they're working hard but aren't.

    And comparison to hard labor, nothing is really "hard" work...just more or less mentally taxing.

  • by sarysa (1089739) on Monday August 30, 2010 @09:35PM (#33422296)

    Oh and one more thing: If you can't out-code quite naturally a college grad after 20 years in the game, you're in the wrong game, or in the wrong job all along. By naturally I mean without spending a lot of your own time learning.

    Sad but true. I'm 30 myself, and I've met plenty of 40-somethings who ended up teaching me a lot by proxy, and I've also met fewer 40-somethings whose credentials I'd seriously question. Same goes for degree levels.

    Can't blame geek sites for recycling these stories every 6-12 months, though. Doom and gloom sells, and it's as effective as filler for geeks as the flag burning amendment is for everyone else.

  • by GlassHeart (579618) on Monday August 30, 2010 @10:17PM (#33422566) Journal

    What you need to realize is that software bugs are frequently not created at one time. Instead, successive changes (sometimes years apart) that are each correct but done without full understanding of the system can conspire to create bugs. For example, the string in question may initially have been generated by a trusted source (another of your servers, for example) and did not need to be escaped or quoted. It may have originally been an internal tool where the users are trusted, and had to be hacked together in two hours. It may have been running on a much slower server, where this performance optimization was necessary, on the guarantee that some other front-end was going to check the input. And then, people quit or are laid off, and FIXMEs get forgotten.

    Frankly, you are naive to think only "total and utter imbeciles" can do this.

I am not now, nor have I ever been, a member of the demigodic party. -- Dennis Ritchie