Slashdot Mirror


Too Old To Code?

Weyoun writes: "Mercury News has an interesting article up about age discrimination in the Valley. As a 23-year old software engineer, I'm doing great right now, but I'm terrified about what will happen when I hit 40 or 50. Software is the only industry I know of where one's marketability is highest right after college and decreases geometrically thereafter. Any ideas for a second career?" Better yet, is this only in Silicon Valley? Only in the United States? Talk amongst yourselves.

8 of 432 comments (clear)

  1. obsolete by cowscows · · Score: 5

    At least you don't become obsolete as fast as the hardware you work on. Now that would be scary.

    --

    One time I threw a brick at a duck.

  2. Mentorship by Sunir · · Score: 5
    I find it bizarre that we excise the people who know how to solve problems. We complain about buggy code, but we eliminate people who know the techniques to solving large problems.

    I feel computer programming is an apprenticeable skill. Indeed, it's similar to writing (as in English). It takes 20 years for a naturally gifted writer to reach the proficiency of a master, and only a handful of years for an apprenticed writer. We need something similar to a Master's of Fine Arts.

    Programming isn't just algorithms, it's mostly heuristics. They can't teach those heuristics in academia.

    As a young programmer, I know I've learnt more engineering skills by glomming myself onto master programmers than from textbooks that teach only theory. Indeed, I know that no amount of fancy diagrams will make a bad designer good; they may only make a good designer better.

    Sorry, I'm ranting. I just wish that finding suitable mentors was easier. If you want a silver bullet, that's it: Share information.

  3. Coding isn't everything (gasp!) by Anonymous Coward · · Score: 5
    If you plan to be coding when you're into your 40's, and also want to take 5weeks vacation and make $130k a year, you'll probably be disappointed. At that experience and that rate, you're more likely to be managing programmers. Which means less, if any, coding.

    I'm lucky. I'm 31, and essentially "chief programmer" where I'm at. Which means that, although I wrote much of the original code of the project, I haven't written any in months. But I do decide what code needs to get written (frinstance, what services need redesigning), who should write it (based on experience, etc..) and what priority the project should take. If I want to code, I can - although sometimes I have to make the case that it really is better for me to write something in a day than it is for one of the junior coders to write it in 2 weeks.

    Don't worry, it's not painful. Part of my job, based on my experience, is to know anything and everything I can about the field. Which means that I pretty much get to do whatever I want for a certain percentage of the time. I hack java, but I also contribute to an open source game, and I've recently started playing with PalmPilot coding. Do I hack 10 hours a day anymore? Nope. And honestly, I can't say I miss it that much.

  4. Obselence -- Something to fear? by Zoid · · Score: 5

    This is something I've started worry about myself lately. I'm 30 now and wondering if I can keep up. One of the major reasons I left my job at id Software was to find new challenges and learn more.

    I've been programming in C for like fourteen years now and it seems C is starting to phase out. C++ and other languages are starting to become more widely used and I was starting to fear that if I didn't learn C++ quickly, I'd get phased out.

    The other problem I have is that from over a decade of work in C, it's taken me a period of adjustment to switch to a different methodology such as C++. Sure I understand the semantic differences in changes from procedural to an object based design, but I felt lost for the first while in applying those theories to real code.

    I've found that in order to stay competitive, one must never stop learning. That may even include changing jobs in order to successfully find the training you are seeking.

    Due to how fast technology changes, I think it will be rare for a person to stay at the same job for more than a few years in the computer field. You just usually can't get enough variation in the job to get all the training and skills you need to keep advancing your knowledge and your career. If someone does find a job that does provide this, they are pretty lucky.

    --
    /// Zoid.
  5. It's not the knowledge, it's the hours ... by The+Code+Hog · · Score: 5

    Lot's o' good comments so far, but the main thing I see is that when I was 20ish, working 80 hours a week was 'cool'. Now that I am thirty-ish, I still do it, but only because I work for a company I have an equity stake in ... and every day, I think about how *nice* a 40-hour a week job would be.

    I can easily see that when I am 40, I'll tell some manager to shove it if he thinks he is getting more than 40 hours out of me.

    That's what I see the carreer threat as. Companies will be more willing to pay for some young guy to work gonzo hours and have no life than for a seasoned vet who will screw up the schedule by "only" working 40-45 hours a week ... because the gonzo coders are better at saving really badly managed projects.

    Look at the gaming industry; exclusively young gonzo types working for companies without strong management skills. They work in an industry where nearly every project involves lots of research, and research doesn't manage well.

    --
    -- "Vote Democrat. Because the current crop of conservatives are just bugnut crazy."
    1. Re:It's not the knowledge, it's the hours ... by DevTopics · · Score: 5
      I wish more people would read Tom deMarcos books.

      There ARE a few studies out there that show clearly: you CAN'T work efficiently more than 8 hours a day.

      I know it from experience (and I've been working for 20 years in this business - makes me feel like a kind of dino). One year long I attached a timestamp to program lines I wrote or changed. The result:

      The most stupid bugs and the worst design decisions I made at the late hours. Sometimes, I introduced a bug after over-working 3 hours that took me three days to find and fix. Now that's a lot of time to waste!

      If you look at the case studies, this is not only me. The productivity of a programmer does not increase after working more than 8 hours. The productivity will stagnate until ten or eleven hours are reached and will then start to decrease.

      But oh, its so cool to work more. Pity that this does not show up in the results.

      The reason for overworking is simple: if you don't finish at that impossible deadline, you can always say: "Look, its not my fault, I've worked hard". Maby you've worked hard, but you haven't worked smart. Maybe you should start to learn that programming is about working smart, not hard.

      --
      You found a sword: +4 damage, +5 moderator points
  6. On programming by Animats · · Score: 5
    I'm still programming at 51, more because I want to than because I have to. I've been a manager, I've cashed out of a startup, but I like programming.

    Frustrations of an old programmer:

    • Seeing the same dumb mistakes being made over and over, especially when you've seen it done right. (Examples? UNIX signals and IPC. C/C++ declaration syntax. Attempting to bolt lambda expressions onto C++ via templates. Direct-X. Buffer overflows.)
    • The rise of ritual-taboo programming, or "don't worry about how it works, just follow the example." This is a reaction to having to use APIs that aren't solid; i.e. not all the things that are meaningful to do with the API actually work, so you have to stay within some ill-defined safe subset. Lately, this has reached the point that some programming books contain only examples; there's no rigorous description of what the API calls are supposed to do.
    • Putting up with crashes. Computers shouldn't crash, ever. CPU reliability is quite good, ECC memory works great, disks have multi-million hour MTBFs, and UPSs are cheap. But OS reliability sucks. There's too much stuff in all the major OS kernels. It doesn't have to be that way. Check out QNX. (Incidentally, did anybody ever get their free QNX CD-ROM? I'm still waiting.) It's that way for Microsoft because they use it as a business strategy, but the UNIX/Linux crowd doesn't have that constraint.
    • Unreliable programing languages. All the current fast languages suck from a safety standpoint, and all the rigorous ones (the Pascal/Modula/Ada/Eiffel/Sather family) are essentially dead. Java's not bad from a safety standpoint, but despite all the claims of the Java enthusiasts, it's just too slow. What I mean by safety is that an error in section A of a program should not be able to mess up totally unrelated section B. In safe languages, most bugs are local and have well-defined effects. With unsafe languages, you get unexplained Blue Screens of Death.
      Many programmers hate the more rigorous languages, because it's harder to get a program to compile the first time. Wrong answer, people. Catching errors at compile time is far cheaper than catching them later. What you want is for the program to run correctly the first time it compiles. I write mostly in C++, but I miss Modula II/III.
    • Miserable security I used to develop secure operating systems for DoD. I'd expected that, over time, commercial systems would get more secure. Instead, they've become insecure to the point of it being ludicrous. The typical corporate environment now consists of farms of desktop machines with essentially no security, interconnected over a LAN with no security, isolated from the outside world by a firewall with just enough security to stop the dumber script kiddies.

    Despite this, it's a great time to be a programmer.

  7. Play to the stereotypes... by w3woody · · Score: 5

    One bizarre thing I've run into as a 34 year old consultant who is starting to run into this very sort of 'ageism' is that if I cowtow to the stereotypes that most young folks in their early 20's expect from a guru, I'm more likely to be accepted than if I simply walk in and act myself.

    What I mean by this is that if I walk into the office with all the latest gadgets hanging from my belt, hair up in a ponytail, and invite the young 'whippersnappers' over to my house or show off a two-seater sports car, they are more likely to say "wow, he must be a really frood programmer" than they are to say "obsolete fossil."

    I've tried both: leave the Handspring Visor and the web-enabled cell phone and iBook running PowerPC Linux at home, and I don't have a shit chance in hell of landing a contract. Walk in with all these gadgets, and I'm worshipped as a guru and a as a programming God.

    It's a damned good thing I know how to code, otherwise, it'd be very easy to snow the 20-something managers.

    My advise is to keep up with the latest gadgets and be willing to show them off at parties^H^H^H^H^H^H meetings--it makes you seem like a hip older guru than some over the hill lamer.

    It's stupid, but it works.