Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Programming

Ask Slashdot: Am I Too Old To Learn New Programming Languages? 772

ProgramadorPerdido writes "I have been a developer for 25 years. I learned Basic, VB, C, FoxPro, Cobol, and Assembler, but the languages I used the most were Pascal and Delphi. I then concentrated on a now-non-mainstream language for 11 years, as it was used at work. One day I had the chance to move into Project Management and so I did for the last 2 years. Now, at almost 40 years old, I'm at a crossroad. On one side I realized developing is the thing I like best, while on the other side, the languages I'm most proficient with are not that hot on the market. So I came here looking for any advice on how to advance my career. Should I try to learn web development (html, xhtml, css, php, python, ruby)? Should I learn Java and/or C#? Or am I too old to learn and work a new language? Should I go back to PM work even if I do not like it that much? Any similar experiences?"
This discussion has been archived. No new comments can be posted.

Ask Slashdot: Am I Too Old To Learn New Programming Languages?

Comments Filter:
  • Stay Put (Score:5, Insightful)

    by Number6.2 ( 71553 ) * on Friday August 12, 2011 @10:57AM (#37068336) Homepage Journal

    I'm 55, a programmer, and I've been out of work for two years. I've had plenty of interviews, but no job offers. Here's my take on all of this: I'm too old to be a programmer. I'll put my "management hat" on and tell you why:

    1. I'm old. One 5 hour energy drink revvs up your basic 20 year old code monkey all day. I need a saline drip with caffeine in it all day to keep going.
    2. I'm expensive. I have 30 years of experience in the 'biz and a masters degree in CS. I'm not cheap. You could hire two 25 year olds for what I'm asking.
    3. (and what I consider to be my greatest failing in the corporate world) I've seen all the tricks. I've been exposed to every nasty little mindgame management has at it's disposal. And sometimes I have the bad manners to call people on it. This is called "having a bad attitude".

    So when I compete against 20-somethings in the worst economy since 1929 (I hesitate to say the worst economy ever), I lose. I should have made the leap to management when I had the chance, not because I would have loved management (I would have had to manage assholes like me, after all ;), but because at 40 you have TWENTY YEARS LEFT. The years go by really, really fast. You should really start thinking about a soft place to land when you're 60 now, because if you aren't in line to be a VP or a Director you ain't gonna make it at this point.

    The suggestion to "Follow Your Bliss" only works in an economy that's not run by sociopaths. Hell, it only works in a country that's not run by sociopaths. Strike one strike two. Tighten your belt, put as much money away as you can, and make sure you keep your health up. Because the era of "company loyalty" is over, COBRA for a family costs as much as your mortgage, and finding a new job is going to be a real challenge.

    Other than that, have a nice day! :D

    • Re:Stay Put (Score:5, Insightful)

      by AngryDeuce ( 2205124 ) on Friday August 12, 2011 @11:03AM (#37068436)
      Despite the fact that I am now horribly depressed, I would mod you up if I had the points to confer upon you.
      • Re:Stay Put (Score:4, Funny)

        by Number6.2 ( 71553 ) * on Friday August 12, 2011 @11:13AM (#37068604) Homepage Journal

        Heh. Don't worry about me. I'm actually in O.K. shape, thanks to contributing to an (>>>ROTH) IRA when I could. The point here is, follow your bliss when you're young, then screw your ass down and prostitute yourself when your old because teh Conservatiods want to give all your tax dollar to Haliburton and all your social security to Wall Street (did you forget that little maneuver during the Bush Years) and you can go live under an expressway ramp when you're 70. Unless that virus that only kills liberals and people over 60 finally gets approved (KIDDING! KIDDING!).

        Bitter? Me? Nah. I'm just a cranky old man...

    • Re:Stay Put (Score:5, Insightful)

      by jawtheshark ( 198669 ) * <slashdot@nosPAm.jawtheshark.com> on Friday August 12, 2011 @11:06AM (#37068482) Homepage Journal

      because if you aren't in line to be a VP or a Director you ain't gonna make it at this point.

      Which means, most of us will end up on the street if we want to stay developers or system engineers.

      I'm nearly 35, and I'm started to feel it. Like you, I have years of development under my belt and a nice amount of system engineering. I have a nice job, but management has changed and I see the first signs of decline. I've been looking around and ... basically, everywhere where I show up, I'm told I'm too expensive.

      I have another 5 years left in the field and I'm aware of it.... I have no idea what I'll have to do after that. Project Management? I don't think I could do it, I'll be rooting for the devs all the time because I understand them better than the users. I can't do it...

      I wonder what will happen if all a whole generation of IT people are out of work because they are "too expensive". Keep in mind that the age I'm in, means I'm basically starting my "life"... Married, mortgage, kids (or thinking of kids). The prospect of being out of a job in 5 years frightens me to no end.

      However, for the original question: If you could program one language, you can program in any language. It's inherent on the Turing-completeness of programming languages. It's all just a matter of syntax. Sure, mastering a language takes time, but you've probably see already much things and that means you can easily apply what you know to the knew languages.

      Web development, Classic development, or "App" development. Doesn't matter, pick your poison. In the end, you always end up writing to fuzzy customer specs and management that wants a Ferrari for the price of a Yugo.

      • Re:Stay Put (Score:5, Insightful)

        by Anrego ( 830717 ) * on Friday August 12, 2011 @11:13AM (#37068608)

        It's inherent on the Turing-completeness of programming languages. It's all just a matter of syntax. Sure, mastering a language takes time, but you've probably see already much things and that means you can easily apply what you know to the knew languages.

        I don't really know how much longer this will remain true.

        Yes, the fundementals are the same.. but programming is becoming more and more about gluing higher level components together. Knowing what these components are and how they behave is becoming the marker of being experienced in a language. This experience is of course largely non-transferable. As we move more towards this, I suspect jumping from one language to another will become harder. It's already kinda like that with Java. A c++ guy can learn java's syntax pretty quick.. but learning how all the defacto tools and libraries around it work (hibernate, jboss, spring..) takes time and experience specific to Java.

        • Re:Stay Put (Score:5, Interesting)

          by jawtheshark ( 198669 ) * <slashdot@nosPAm.jawtheshark.com> on Friday August 12, 2011 @11:46AM (#37069086) Homepage Journal

          Ah, you're mixing up programming language and frameworks. You do realize that the type of guys we are talking about have seen frameworks come and go? Heck, I've seen frameworks come and go and I'm only 34. Remember Enterprise Java Beans? I'm not saying that they aren't used any more, but they were all the hype back when I was a young programmer.

          It is true that programming has more become like Lego. Stick together the parts in the right combination and that's it. I am however convinced that someone with the "development way of thinking" who is give correct documentation about the required frameworks, can figure it out. Perhaps not as quickly as a language itself, but the odds are that an experience developer has seen something similar somewhere someday.

          • "It is true that programming has more become like Lego. Stick together the parts in the right combination and that's it." That is what other engineering disciplines do. I'm a CS and Software Engineer by training and trade. If you aren't in school learning how programs work underneath or you have very specific constraints on your runtime environment that prohibit the use of a library, then you need to be reusing libraries and frameworks. If you don't trust it, then you should be putting additional effort
        • This crazy components thing the young people have these days sounds cool. Kinda reminds me of when we had to learn to use a programming language instead of writing machine code. Those who started writing in 1s and 0s (or assembler, or C....) have probably already experienced the process of learning to work at a different level of abstraction. Also, if you don't feel like abstracting, someone has to write the tools and libraries. The big worry is that you are in competition with people who don't have mor
      • by Anonymous Coward

        I'm nigh on 58 and still a developer. I am content to keep writing code.
        I tried being a PM and it amlost drove me into an early grave. It is not for me.
        So I went back to developing.
        The company where I worked went belly up two years ago. Sure it took me a while to get another job. Not for the reasons stated but many companies couldn't hack the 'I don't want to be a Manager' answer to the where do you see yourself in 5 years question.
        Finally I got a job where they were happy with that answer.. sure I could ea

      • If you could program one language, you can program in any language. It's inherent on the Turing-completeness of programming languages. It's all just a matter of syntax. Sure, mastering a language takes time, but you've probably see already much things and that means you can easily apply what you know to the knew languages.

        See, I agree with you 100%, more if I could. In my years developing, most of the languages I now use to program are not the ones I was employed to do, but ones where I've been dropped into a project, had to hit the ground running and learn on the fly. It's not difficult, once you know the concepts of *how* to program.

        But. Try going in to a job interview and saying "No, I don't have 5 years of this language, but give me a week, some small changes to work on and access to google and I'll be able to pro

        • by mooingyak ( 720677 ) on Friday August 12, 2011 @11:52AM (#37069156)

          But. Try going in to a job interview and saying "No, I don't have 5 years of this language, but give me a week, some small changes to work on and access to google and I'll be able to program it as well as most of your other developers". It may be true, but it doesn't wash with HR people or project managers.

          This is just as frustrating from the hiring side. I'd rather someone who can demonstrate problem solving skills and some general programming background than someone who has nothing else going for them but 5 years of experience in our primary language. But communicating this concept to HR and the recruiters is painful at best.

          • The problem is this: Let's say HR gives you the benefit of the doubt and trusts your ability to learn the new language in a week. Then it turns out you overestimated your abilities, drop the ball, and generally fuck up. Then the higher ups confront HR on the issue...

            "This guy said he had 5 years experience?"
            "Well, no... but he promised he'd learn real fast."
            "Why didn't you hire someone with actual experience?"
            "Uh...."

            HR can see this situation a mile away, so when they're faced with hundreds of candidat

          • by Lehk228 ( 705449 )
            This is a breakdown in communication, HR will never understand computer programming so stop expecting them to. If your managers tell HOUR they want to hire java programmers that is what HOUR will try to do. The wording you need is along the lines of "application programmer 10 years experience, java experience a plus" systems programmer 10 years experience, c experience required, c++ and python a plus"
    • I'm sure you have another disadvantage too: You'll finish a task faster than the youngsters, meaning fewer billable hours for your employer!

    • Age: 50. Current status: learning OpenGL and Clojure.

      I very much doubt I'd get good shot at a commercial programming gig, but I'm really not interested in that game any more, and yes, 25-year-olds have much more enthusiasm for the agencies' screening questions than I do. (So, I also have the "bad attitude.")

      My advice is to both specialise and diversify. Identify particular skills that set you apart from the crowd, but also identify as many of those skills as you can. I'm holding down gigs as composer/sound

    • You could always start your own company. Use that opportunity to learn hot skills. Like mobile platform programming such as iOS and Android. Start as a consultant so you can keep your day job.

      Advantages

      1. you keep an income as you develop your career
      2. you create your own management position
      3. you develop advanced, in-demand skill sets that are only getter hotter
      4. if your day job disappears, you can build your moonlighting career
      5. if your moonlighting career fails, you have the skills to seek another job

      D

    • Re:Stay Put (Score:5, Insightful)

      by magarity ( 164372 ) on Friday August 12, 2011 @11:20AM (#37068702)

      2. I'm expensive. I have 30 years of experience in the 'biz and a masters degree in CS. I'm not cheap. You could hire two 25 year olds for what I'm asking.

      So it's better for your personal situation to stay unemployed than to lower your salary requirements?

      The suggestion to "Follow Your Bliss" only works in an economy that's not run by sociopaths

      But it works remarkably well in an economy run by hedonists!

      • by hansraj ( 458504 )

        I think he was saying that the choice was between being a developer or switch to management. I don't think he is worried about being unemployed.

      • Depending on where he lives this might not even be an option. Where I live, your minimum wage is tied to the years of experience you bring along.

      • So it's better for your personal situation to stay unemployed than to lower your salary requirements?

        So it's better for him to ignore his value just to work at someone else's defined salary? What's the point of the value of experience if you can never bank on it? If you are willing to start at the salary of someone with minimal experience at each new job, you might as well move to a new field/industry every few years and not bother becoming an expert.

      • by elrous0 ( 869638 ) *

        So it's better for your personal situation to stay unemployed than to lower your salary requirements?

        It doesn't work like that. Unless an employer is really desperate, they'll look at your salary history as a guide in this. If you made $X at your last job, and their job pays $X/2, they'll write you off as "overqualified." "Overqualified" is their polite way of saying that they're thinking "If this guy is taking ths huge pay cut, he's going to be looking to jump ship as soon as a decent job comes along. And he might have a bad attitude too, since he's bitter about having to work for such a shit salary. Bett

    • Re:Stay Put (Score:5, Funny)

      by ShadyG ( 197269 ) <bgraymusic@gm a i l . c om> on Friday August 12, 2011 @11:25AM (#37068766) Homepage
      Maybe it will make you feel better, maybe not, but even with the bad economy, today's market for software engineers is like INFINITELY better than it was in 1929.
    • Re:Stay Put (Score:5, Interesting)

      by Lumpy ( 12016 ) on Friday August 12, 2011 @11:31AM (#37068862) Homepage

      Your problem is you keep looking down the same road.

      You are a programmer, over the past 2 years you should have been looking at updating your skillset to slide to an industry that is desperate for people.

      Embedded programming.

      This is what I did 4 years ago when everything started to go sideways. While working as a Corperate Code Ape I started studying embedded systems. I found it was easy, you just cant be lazy and expect the system to have a 8 processor core with 22TB of ram. You get a 33mhz processor with 128Meg of ram to run your Linux OS and your app in. no you dont get Swap space...

      SO I slid over to that, I applied at a job and was hired instantly because of my extensive experience in programming and have been headhunted monthly ever cince.

      Stop trying to do what you are used to. Find a CS career that is hit and heavy demand and slide into it. Programming detonators for Cruise Missiles or lighting systems for hospitals is far more lucrative than anything you will find in a corporate CS job reformatting TPS reports for the Accounting department.

      Learn Industrial control, you know interfacing with real hardware.. The cool part is a bug can kill someone so they actually encourage you to take your time to test and fix bugs! It's refreshing!

    • 2 is the correct reason why you're not getting jobs.

      Ultimately, what you're saying is "I can earn more money in management than I can earn in programming" which is entirely valid. What it doesn't do is back up the assertion to stay where he is. The question is - does the OP think he has more to gain in cash than he will lose in happiness.

    • by S.O.B. ( 136083 )

      Hey, at 45 I'm not much better off.

    • by bi$hop ( 878253 )
      I'm 20 years younger than this self-proclaimed cranky old man, but I say fight for the chance to be a programmer if that's where your passion truly is! Turn off the TV, get by on less sleep, cut back on social events, and spend every spare minute working on projects that help you thoroughly learn the programming language you're passionate about.

      In short, become an expert at whatever you want to do. And don't listen to anyone who says you can't do it.
    • Re:Stay Put (Score:5, Insightful)

      by TrailerTrash ( 91309 ) * on Friday August 12, 2011 @11:58AM (#37069246)

      I started out as a developer, then 25+ years ago got pulled into the "business side". Now I'm a VP in a really, really huge company. So my perspective will be a bit non-Slashdot-traditional.

      If the OP has a job in project management, stay there. It may not be what you love, but's a regular job, and you are more able to help others avoid the snake pits you've encountered over the years than if you were pounding code. Display a positive attitude, and see if maangement is an option. It may be safer, but is more boring (trust me). You make that call, you can ask your boss to job shadow a manager, perhaps. But this will never happen if you don't have a good attitude, which incluides not ripping on stupid management decisions. If you disagree, keep your mouth shut, unless it's an ethics or compliance violation. Demonstrating that you see through the management BS and calling them on it will NEVER help your career, will NEVER reverse a bad decision, and WILL drag down team morale when the 20-somethings see that the veterans are opposed. You may feel smug, but it will never make things any better. No one will think you're smart, worldly, or wise.

      As a "business partner" here are some things never to forget:

      OF COURSE the business requirements are fuzzy. If the business side wrote very detailed, very clear, actionable, testable, realistic requirements, we wouldn't need half as many tech people. Our job is to figure out what needs to be done - not to have thought through every edge-case before calling you. Please help us through that.

      I dread walking into an IT meeting and seeing a bunch of 50+ people. Bear in mind I'm really close to that myself. I want to see people who WANT to get my project done. Most of the 50+ programmers I encounter are chiefly concerned with demonstrating they know more about technology than I do (rarely true), with telling me why a project CAN'T be done, why this isn't how WE do things around here, and that I'm not "following the process". Maybe my project is stupid, it's true - I've been there many times, on both sides. Or maybe you don't know as much about my job as you think you do, and don't have the perspective to effectively judge.

      Every career stalls. There is one CEO - or maybe one a year - but it won't be you, statistically speaking. So you'll top out somewhere. When you near 50, and find yourself in a boring job that either isn't what you love, or you've done it hundreds of times and can do it in your sleep, then start thinking about how you'll spend your retirement, and begin prepping. Give the company 8-9-?? good hours a day, then focus on building your future. Retirement is often 30 years long. How will you spend it? Is now the time to buy a small cabin down by the lake? Start a hobby that you love? Volunteer in the community? Go back to school? Even with 10 years left, most of the rest of your life will be post-work. Don't wait for your last year to plan.

      No matter what your job is, whom you work for, what industry you work in, or what country you live in, people want to work with other people who are positive and try to be helpful. Is your attitude, demeanor, and work product demonstrating that? If not, you can be sure you'll always get the crap jobs - working with the irritating business partner who has just as bad an attitude as you, most often.

      just some thoughts.

  • I work with a guy who's over 60 and is just now learning Java. He's being paid to do it, to support a scientific instrument.
    • by rjune ( 123157 )

      SAS -- I started with SAS at age 50. It has a very steep learning curve. After a couple of years, I crossed the line to where it increased my productivity and efficiency. I was told by my old boss that I didn't need to do it, but that absolutely defied any common sense. I have a lot of skills, most of which are obsolete. (Celestial Navigation anyone?) You have to keep picking up new skills. You are only too old to learn something new if you think you are. Hats off to your coworker who is willing to

    • by mcmonkey ( 96054 )

      WTF?

      I'm 40. Started on Java last year. Took my first foray in to C++ a few years ago. I'm also learning a lot about plumbing and carpentry hacking around my house. You're never too old to learn.

      At the same time....

      WTF?

      How many developers, network & server folks, etc. are the stage in their careers where they are training their "off shore" replacements and putting themselves out of a job? Programming as a professional move? You might as well open a buggy whip business.

      And that has nothing to do with

      • This accurately describes me, as well.

        My instinctive answer to the initial question is, simply, "no," but that doesn't really do it justice. You may have to stretch your mind a little to make it fit, but do it, and you won't regret it, even if you don't end up making the best use of it.

        You might also want to see if you have any other interests you can turn into a side-gig or career. In my case, I'm a sound engineer and event DJ for my side-gig. Offshore that, motherfuckers!

  • Too old (Score:2, Funny)

    by sakdoctor ( 1087155 )

    Yeah sorry, at 40 your brain basically fossilizes, and becomes a FIFO stack.
    If you learn a new programming language, you WILL forget the old ones.

    • ...becomes a FIFO stack. If you learn a new programming language, you WILL forget the old ones.

      Aw crap I'm already at that point and I'm still in my 20s :-( But at least I can still quickly re-learn the stuff that gets pushed out so maybe the fossilization part hasn't set in yet.

    • That's perfect, since the demand for things like COBOL and FORTRAN are dropping, and everything is becoming web based like HTML and javascript. Go ahead. Learn a new language and forget the old one that isn't used anymore. It's OK.
    • Re: (Score:3, Funny)

      by rlanctot ( 310750 )

      Don't laugh. Last week I started learning Ruby and I forgot how to chew.

  • Comment removed (Score:4, Interesting)

    by account_deleted ( 4530225 ) on Friday August 12, 2011 @10:59AM (#37068374)
    Comment removed based on user account deletion
  • by notbob ( 73229 ) on Friday August 12, 2011 @11:01AM (#37068408)

    I firmly believe you're too old to learn the day you stop learning.

    Never ever quite learning the latest and greatest in programming, to do any less is condemning ones own career path.

    Having recently joined the ranks of older programmers I still find that I can completely crush the new kids by leveraging that vast experience I already have.

    Dust off the learning hat and get back into the fight man, 40 isn't a time to lay down and die... last I heard 30 was the new 20 and 40 was the new 30... and we're all going to be broke in this economy so who cares in the end?

  • Just harder (Score:5, Informative)

    by DoofusOfDeath ( 636671 ) on Friday August 12, 2011 @11:02AM (#37068422)

    I'm about your age. My impression is that new learning is still possible, but it requires more time and effort. So I'd say it partially depends on how motivated you are.

  • by jaymz666 ( 34050 ) on Friday August 12, 2011 @11:03AM (#37068440)

    The concepts are what are hard to learn, the syntax is the easy part. So many similar languages may trip you up at time, but if you can work through the syntax differences and keep hacking at it it's not too difficult to learn.

  • It's simple (Score:4, Insightful)

    by whoda ( 569082 ) on Friday August 12, 2011 @11:06AM (#37068492) Homepage

    If you think you might be too old, then you are.

  • You're Never Too Old (Score:5, Interesting)

    by eldavojohn ( 898314 ) * <eldavojohn@noSpAM.gmail.com> on Friday August 12, 2011 @11:06AM (#37068500) Journal

    Ask Slashdot: Am I Too Old To Learn New Programming Languages?

    Barring extreme physical exertion and danger, you're never too old for anything. If you're too old to learn something new, you might as well lay down in your grave and wait for death on the grounds that adopting a fatalistic attitude toward new experiences basically ensures you're done with life. That's my opinion anyway. Seriously, if you can't do something new, what exactly are you looking forward to?

    I do have an important question though: how did you come to begin programming? I am unfamiliar with what would have been available paths back in those days. Did you get a degree via courses in logic and mathematics? Trade school? Taught yourself? Mentored?

    I believe Pascal is closest to a procedural language and Delphi is the object oriented equivalent? So that's a somewhat diverse start. Are you familiar with concepts like (but not limited to): closures, sets, Big O Notation and understand the difference between a framework and a library? These are things that I might not use daily coding Ruby and Java but I remember from school and I feel better prepare me for learning any new (or old) language. If you aren't familiar with these things, it might pay to consider taking refresher courses at a nearby college to brush up on them. I don't know how viable this suggestion is but on the grounds of learning new languages, it has proved invaluable to me in understanding why language creators made the choices they did.

    Should I try to learn web development (html, xhtml, css, php, python, ruby)? Should I learn Java and/or C#?

    Personally I would suggest Ruby on Rails with CSS for a solid UI. You're going to need to know concepts like RESTful interfaces and it might take some getting used to letting the Rails automagic do things for you but the resources are plentiful and free [railstutorial.org]. It sounds like it will be totally out of your comfort zone and that's probably a good thing if you're up to the challenge.

    Should I go back to PM work even if I do not like it that much?

    In today's economy? Why not make two resumes: PM and Programmer. If PM skills pay the bills, hop on it and work on programming as a side hobby. If the right Programmer position comes up and the pay is good, consider it but don't set yourself up for failure or take too large a risk if your home/dependents/nestegg are at stake.

  • learning a new programming language is awesome.

    however, if swelling persists for more than 4 hours...

  • by 140Mandak262Jamuna ( 970587 ) on Friday August 12, 2011 @11:08AM (#37068522) Journal
    You like coding and want to do coding. But you are likely to be far more productive using your skills to make sure more people benefit by your experience. And it would be more rewarding to you financially too.

    In WW-II Japanese air force promoted their combat aces to ranks so high they out ranked their base commanders. They kept assigning themselves most dangerous and glorious combat missions, eventually all of them died. But Japanese did have a few aces notching up dozens of kills. US, on the other hand, does not have any reaching even 10 kills. The moment a combat pilot notches up 5 and qualifies to be an ace, he is transferred to the training command and is made to teach those skills to a new crop of young pilots. Some of them eventually transferred to NASA test missions and flew research aircraft.

    So though you love coding, switch to project management. I am speaking from experience. I loved coding, and stayed in programming for far too long. I am doing project management now. You can always code in your spare time, doing what you like.

  • If you dont mind maintaining legacy code or systems then those skills will always be needed. If you insist on new project development then yeah it's time to either learn what is current or get off the pot.

    Either way, good luck

  • I don't think it is a matter of being able learning a new programming language. An good example would by father-in-law has recently taken up writing programs to generate art [john-art.com]. He is 71 and had some programming experience, but was an EE by trade. He learned java, c, and c++ as well as post script. Now as others have mentioned the real problem come with management, the body count, and corporate culture. Why would they want to have you as a programmer when they could have 2 college grads for the same price sinc
  • It depends on what sort of mental model you built to learn your first languages. If you started with one or two and stuck with them up 'till now, you might be stuck thinking in terms of those syntax/vocabulary models. On the other hand, if you managed to develop a lower (higher?) level mental model with which to contain your acquisitions up to now, learning more languages will be simpler.

    I'd say: Give a new language a try. You might be surprised at how easy it is.

    And remember: Writing software is like hav

  • I started learning XQuery (for native XML databases) before turning 40, but it was after turning 40 that the whole beauty of the language overtook me.

    There still aren't that many XQuery programmers out there, and their demand is on the rise. So learning a new language with a lot of potential and very little current competition may be what you need. Your functional programming skills will be very helpful with XQuery.

    For starters, the Open Source eXist DB [exist-db.org] project is great for getting up and running with a n

  • No one's too old (Score:4, Interesting)

    by Alioth ( 221270 ) <no@spam> on Friday August 12, 2011 @11:13AM (#37068612) Journal

    Being "too old to learn" is mostly an excuse. Unless you have a brain injury of some description, or a brain disease, you're never too old to learn anything. It might take slightly longer, then again - it might not.

    Nearing 40, I'm learning Verilog which is not merely another language, it's a hardware description language and although the syntax looks familiar to a language you write software with, how you use it is radically different. This has certain challenges, but there is no problem with actually *learning* it, nor some of the very big differences that "writing hardware" so to speak has compared with writing software. Also, while we had a slack period at work I made a start at learning Erlang, which looked like it had some useful applications for what we do, and had no particular problems learning it despite it being a functional language whereas everything I've done to date has been an imperative language.

    In fact to learn a new language within the same family (for instance, if I were to learn Python) today I find it much easier and much faster than I did 20 years ago because depth of experience can help avoid the dead-ends, and we have much better tools which can also help us to learn faster.

    This, by the way, applies to human languages. "I'm too old to learn a foreign language" is an excuse. "English speakers are bad at learning foreign languages" is an excuse. I started learning Spanish 3 years ago. Today, I'm at an advanced level and have even stood up in public and given talks in Spanish. I can think in Spanish and conduct my entire daily life in that language. I can even laugh at humorous programmes on Spanish TV, which proves that I'm getting to grip with it pretty well. Until 3 years ago I was monolingual so it's not that I'm getting a handy lift-up by knowing some other foreign language.

    If you believe you're too old to learn it'll become a self-fulfilling prophecy and your brain will wither away.

  • by the eric conspiracy ( 20178 ) on Friday August 12, 2011 @11:14AM (#37068624)

    Hogwash. I didn't start working as a software developer until I was 50. I learned Java, Perl and PHP in a year or so. I already knew C and FORTRAN at that time. Since then I've taught myself Python, Javascript, Scala and Ruby. I've recently started Erlang.

    A year later I taught my father C; he was in his mid 70's and wanted to right some software to do some statistical analysis of stock data.

    Don't let these whippersnappers tell you you can't do it. The fact is that is they know it, it's easy. The stuff that is actually hard is the math, and since you went to school more 20-30 years ago you have a far better education in the fundamentals that count than they do.

    NOW GET OFF MY LAWN.

    • Re: (Score:2, Interesting)

      by raddan ( 519638 ) *
      Get your dad on R [r-project.org] for statistical analysis. Even if you love to program (and I do), doing it in C can be a grind. R, like Perl and Ruby, has a HUGE library [r-project.org] which is dead simple to use (just about as easy to use as RubyGems), and very high quality. Plots are easy to do and look beautiful (especially if you use Hadley Wickham's ggplot2 [had.co.nz] library). We use it in our department [umass.edu] because when it comes time to do the analysis, we want to be focusing on the math, not whether we have some null pointer dereference h
  • Money or Love (Score:4, Insightful)

    by Tablizer ( 95088 ) on Friday August 12, 2011 @11:16AM (#37068634) Journal

    I've been in the biz a long time. My observation is that you probably have to choose between doing what you like and money. If you like money more than personal work satisfaction, pick the management route. It's the better choice for us geezers finance-wise. But if you truly prefer coding, and money is secondary, then go for it. You may have to dumb-down your coding resume a bit, for "experience" works against you, and keep your asking price mellow. Only briefly mention your distant experience on your resume, they don't know or care what a DEC is.

  • Getting proficient in anything is hard work, but age is only one factor. If you need to make a choice look at all the factors. Research areas you have domain knowledge, what open source applications are used in that area and what languages are those apps written? Leverage everything. What's the dominate languages in your geographic area, python, c#?

    • Ditto. The #1 advantage to age is domain knowledge. You need to play this up.

      Code monkeys are cheap, but a guy who knows his algorithms and has good domain knowledge is cheaper. Code monkeys will cut and paste, do naive things or write unmaintainable code. According to Alan Kay [lambda-the-ultimate.org], on average, 80% of the cost of software development is after the software has been released. This means that in order to beat those odds, good code needs to be written from the start. You should make this case in your job i
  • I see this a lot with developers who have worked in one language for a long time (while others are invented/evolved around them).

    My Father-in-law was a UNIX C developer for 24 years before being laid off and facing a very soft marketplace. He asked me (a java programmer of about 8 years at the time) if I could give him some pointers on getting started on a more marketable skill.

    I said "I can't give you any pointers, but I can pass on a good reference or two" *rimshot*

    In all seriousness after about a
  • You're just a boy (Score:5, Insightful)

    by CaptainOfSpray ( 1229754 ) on Friday August 12, 2011 @11:18AM (#37068670)
    I'm 66. In the last few years I've learned enough Python and PHP to do useful work, and learned Linux enough to get an LPI cert. Considering all these things are free to download, there's no barrier preventing you learning, except your own false belief that you are too old.
  • I'm an over 40 software engineer. I've found that a diversity of skills makes you more flexible in the marketplace. I learn at least one new language a year to stay current. Sometimes I learn more than one. When I change jobs, I try to go to new industries to broaden my exposure. When the economy is good, you can really take advantage of diverse skills to work your way into the up-and-coming industries. In a down economy, your diversity of skills means you've got more options than the one trick pony.

    P

  • While experience counts for a lot, managers and employers rarely see it that way. They will see your out-of-date skills and hire that 25-year-old who has all the modern languages on his/her resume.

    Want to keep your hand in? A couple of suggestions:

    - Even as a PM, you may be able to find an excuse for the odd proof-of-concept or prototype.

    - Program in your spare time. If you don't have a family, you have the spare time. If you have a family, take the excuse to learn Scratch, or Python, or some other kid-frie

  • by geekoid ( 135745 )

    In fact you would probably be better at learning a new language.

  • by LS ( 57954 ) on Friday August 12, 2011 @11:20AM (#37068698) Homepage

    As a 37 year old that has programmed 100s of k lines of code in several languages for the last 15 years, I've found that understanding fundamentals is more important. With a language reference handy I can write functional code in a new language immediately, and optimized code that accounts for language peculiarities in a couple months. Mind you I've really only been working with imperative languages mostly, so a different class of language may take more time. Anyway the point is that if you really understand the basic control and data constructs that most languages share, you'll get by fine with a new language. But as others older than I have pointed out, you may want to look at the bigger picture and longer timeframe re: your career. So far I've been getting away with ignoring my age as a numeral and just forging forward to the best of my ability, but life is limited and that strategy probably won't last until the end. In any case, age is just a number, and it has a strong placebo effect, so go with what youve got instead of what you are supposed to have at your age.

    LS

    • Individual languages are not the issue.

      Every so often, a new fundamental programming concept (or an old one with a new coat of paint) shows up in a group of newly popular programming languages.

      For example, Java and C# represent traditional class and single-inheritance-based object oriented programming, and go along with a particular philosophy of how you should analyse your problem domain and solution structure before beginning to program. It's that philosophy you need to learn and understand, then the lang

  • for my employer, on any job I might be project manager, systems architect, developer, sometimes even racker of hardware and cable puller. I still learn a new language now and then, and now and again actually use them at a client.

    Have you had much object oriented exposure? if not, get that way of thinking into your skill set with a widely versatile language that is used for command line, web, daemon and applications. I'd suggest Python, learn the basics, then do some web development, then go into a w
  • Pfft. I learned in the 70's on BASIC, Pascal and other procedural languages that ruined me for years. Fortran on punch cards? Did it.

    Now I have to learn new languages for nearly every new project. It's not so hard. If you have good basic logic skills all languages are pretty easy to learn.

    Tip: Become a consultant/contractor when you are old and wise.

  • ...no, you are not too old. Unless your brain is malfunctioning due to age, you should be as able as when you were a kid. It just requires more patience, from what I noticed.

    I recommend you pick C# over Java. (I am a Linux user, and yes, I find annoying I can't use WINE to run those, but that's not the point). C# is less portable but is faster. Java is slower, but portable. (And both have a lot of code references).
    Also seems there are concerns about Java's future (which I happen to see more realistic than t

  • At 40 I would have expected the OP to realize that once you learn how to program, everything else in syntax. It sounds like the OP has a robust background in coding, I can't help but wonder why s|he is expressing trepidation on this topic.

  • by Registered Coward v2 ( 447531 ) on Friday August 12, 2011 @11:26AM (#37068776)

    Can you learn a new language - sure. As another poster pointed out - is it worth it? Unless you want to compete in price with a bunch of newbies; probably not.

    A development team or shop is like a baseball team

    There is the rare superstar that gets top dollar because they can do things nobody else can' which is why they are rare and expensive.

    There are a few solid players who have decent careers because they have a good skill set and can be depended on to deliver. they make a decent wage but no where near the superstars. They stick around.

    The biggest group is the journeymen players - they hang around a few years but there is always a crop of younger, cheaper players coming up to replace them. they never get serious money. They get churned to control costs.

    Then there are the managers and coaches. They are valued for their experience; they know the game, seen all the tricks and can guide a team to victory. The may not make superstar money but they are paid well and they have longevity (as long as they perform) and options to move if they do well. They stay up on the game but don't try to play. Plus they decide who gets to play, where they play and who stays and who leaves.

    As others have pointed out, there's always someone whose cheaper or wiling to work for less when it's a pretty generic skill set. I'd use your experiences to move to a place where your knowledge and experience is what is valued; rather than try to build a new skill set. Learn new languages to be able to identify good vs. bad programming; but base your value on being able to identify problems before they hurt you or solve them as they come up.

    I can't code a line (unless it is Fortran) but I can manage a team and clients to get the job done on schedule and budget. It can even be fun -I've never believed you need to be a jerk to be a manager.

  • I'm 34 and learning more and faster than ever before. I pick up new languages and ideas like a fish in water. The more I learn, the easier it is to learn other new things.

    I can't believe that 6 more years would see me turn into a turnip.

    No, 40 is most definitely NOT too old to learn new tricks. My father think he's too old at almost twice my age, and I don't even agree with that.

  • C# is mostly Delphi (Score:5, Interesting)

    by canajin56 ( 660655 ) on Friday August 12, 2011 @11:30AM (#37068842)
    If you're familiar with Delphi, then C# should take about five minutes to pick up. It was designed by the same architect as Delphi, and you do almost everything in the same way. It just uses C syntax instead of pascal. But ha at being too old, my dad picked up Delphi in his 40s and it's his favorite for RAD. He still uses Delphi 7 (the last good one) for everything, and grumbles about there being no Mac version. "Use Lazarus, it's exactly the same" "No, too hard to use" "It's identical!" "No it's not". Then again, he's probably trolling, he was mocking my use of a smart phone "My phone makes calls and that's all a phone is for!" and then he bought a droid ;)
  • by Hognoxious ( 631665 ) on Friday August 12, 2011 @11:31AM (#37068852) Homepage Journal

    You aren't too old, but unfortunately you've used VB.

  • If you understand the concepts of programming, then the knowledge is transferable. I will grant to anyone that it is difficult to go from procedural to object oriented languages, but in the end, it is all "yet another way of telling the computer what you want it to do."

    What's great is that with few exceptions, it has all been done before a thousand times by many people who document themselves on the public internet. So if you are armed with a good, strong, general understanding of programming and a strong

  • by FirstTimeCaller ( 521493 ) on Friday August 12, 2011 @11:34AM (#37068900)
    Hell I did some of my best programming/system design when I was 40! But I do find it odd that you would be asking about learning a new language... that's something you should have been doing all along. Part of the challenge of being a good developer is staying on top of the latest trends and development environments. In fact, some days, the only thing that keeps going/motivated is knowing that there is always an opportunity to learn new things.
  • I'm in a similar age category. And some things are harder for me to pick up these days. But other things aren't.

    I'm not really trying to learn new languages at this point, over the last 15 years I've surveyed at least 150, and trying out small projects with at least 10 of the best ones.

    Right now I'm going "back to school". Studying AI http://www.ai-class.com/ [ai-class.com], and Algorithms http://mitpress.mit.edu/algorithms/ [mit.edu]. I briefly toyed with the idea of studying Knuth, but it didn't seem practical for what I

  • Age has little to do with it, save young programmers may have more energy and no social life. Too many hours is sign of a poorly designed project and management inexperience.
  • by Corson ( 746347 ) on Friday August 12, 2011 @11:37AM (#37068974)
    I too come from a (mostly) Delphi/Pascal background and switched to C#.NET about a year ago. It's amazing what you can do in C# and the learning curve for Delphi veterans is not too steep. Trust me, choose C#, you will not regret it.
  • I'm 50 and have been in this career for 30 years. Throughout my work life I've had to adapt to the changes in the industry, from Mainframes to minis, to PC, and now the mobile device. It can be done and I think you give to much power to inexperienced developers, not enough credit to managers.

    I can agree that cost, in this market, can be a factor, but then how much are you willing to cut. I dropped 15% to get my current job, but it was still within my budget and I get to work in a growing company. Are yo

  • I started on .net languages when I was 44. Now they are what I do all day long (Admittedly, .net makes things significantly easier than they used to.) I just bought an android with the specific intention of writing some real-estate apps.

    Non-programming skill sets enhance your employability as well. These days, in addition to programming in .net, I design automated testing system frameworks and the VMWare virtual machine environments in which the system runs. One day, I'm coding. The next, I'm tearing down a

  • by biodata ( 1981610 ) on Friday August 12, 2011 @11:48AM (#37069120)
    I was similar to you then at 40 decided to learn genetics (genetics is just programming right? :) . Turns out high-end biology is full of enormous data analysis and management problems, and now I mostly do coding and stuff, with a little project management thrown in, but in a more varied and interesting domain than billing systems I specialised in before. I picked up perl, bits of python, java, javascript along the way, and moved from the propriatory monolith databases to the open ones. You have a wealth of valuable skills already, and are not too old to learn something new. Be prepared to do it for less income, If money is your main motivator, stay where you are but switch to managing something bigger in a different organisation, that seems to be the best way to keep fresh and keep working up the ladder if you don't want to start something completely new.
  • by RandCraw ( 1047302 ) on Friday August 12, 2011 @12:03PM (#37069336)

    You're 39? You're just getting started. You have another 30 years of employment to go. Don't quit now.

    When planning your future, you should ask yourself two questions: 1) What kind of job do I want? And 2) what kind of work is plausible for me, given the state of the industry, my age, my skills, my location... and most of all,
    my attitude. Do I still want to kick ass or not? If not, that's your real problem.

    Professionally, learning yet another programming language won't mean much unless you can also show meaningful experience using the language to build something of value.

    More importantly, it's not proficiency in a language that will open doors at your age. It's the ability to deliver solutions -- on time, on budget, that work. If you've been a 'principal scientist', or 'software architect', or 'lead programmer', then you can turn your experience into an asset. These roles are out of reach for kids right out of school. But if you can talk a good game, show that you know how to design, coordinate, and integrate the many components needed to deliver a new software service to your employer (or a client company), then you're a rare asset and you possess skills that are far more valuable than being conversant in yet another programming language.

    BTW, I'm 53 and since I was your age, I've developed proficiency in several languages (high performance computing, image processing, matlab, R, perl, java, C*). But what I value more (and I think future employers will too) is 1) my ability to take a leadership role in driving a project to a successful conclusion. And 2), I'm willing and able to learn. I've completed several advanced courses part-time (3 grad CS/EE classes in the past 3 years). In doing this, I've shown that I can adapt to changes in the workplace, and reinvent myself as the work changed.

    Strategically, I'd suggest that you adopt a 'leader/innovator' attitude in your current workplace and in future interviews. If you look like someone with ability, a 'can do' attitude, and impress others as being engaged, inventive, and innovative, you can break down the negative stereotypes that often beset older techies. At least that's worked for me so far.

    A final word of advice. Do NOT express your opinion (*especially* negative ones) on any technology or business philosophy, and don't disparage the quality of your technical skills. DO emphasize that you have learned how to get things done, and have a track record of doing just that, ideally by understanding the business, anticipating needs, inventing and delivering solutions, ideally by leading others.

    Good luck.

  • by houbou ( 1097327 ) on Friday August 12, 2011 @12:41PM (#37069858) Journal
    Seriously, if you are asking the question, then you need to take a shovel and dig yourself a nice lil' hole and go for a dirt nap. I'm a practical idealist. Sounds like an oxymoron, I know, but yeah, I'm 45 yrs old and I keep learning new stuff everything. I'm a developer, an instructor and I do believe that the day I stop learning, the day I think I know enough, that's the day I should just kill myself. Do you like programming? do you like a challenge? That's what you should be asking yourself. You claim to have 25 yrs of experience, have you not learned anything yet? what's so freakin' challenging about a new programming language when you got all of the other ones under your belt? I have a basic, c, c++ and assembler background. You seem to have a similar one, with even more including cobol. What's out there that you wouldn't be able to conquer? So, it's not if you are too old, but rather, do you give a crap. If you do, go for it, it's always useful and it won't be a waste of time especially\ if it's a hot commodity to learn. Unless you are kinda mediocre as a programmer to begin with, but hey, that's a story between you and your previous projects/employer. And yeah, there are a lot of young ones out there in the market and they don't charge as much or work twice or three times the amount of hours to get it done. I laugh my ass off when I see that. Because for me, I can get the job done in half the time, and it's done right. Why? it's called experience. Every project I've ever done has been a lesson learned in trial and errors. Even in success, I learned that it could have been done better and basically applied this knowledge to my future projects. By now, having myself 20+ yrs of experience in the field, I've yet seen anything which doesn't relate in some ways to something I've done in the past. How you sell yourself is how you define the relevancy of you as a person, a resource and then skills you have to offer. Keeping with the current trends and lingo of the industry is all about learning, nothing different than learning a new programming language. So, do you give a crap? do this industry still make you excited? Those are the questions you need to ask and you are the only one to provide the answer. Cheers! Claude
  • by LodCrappo ( 705968 ) on Friday August 12, 2011 @12:43PM (#37069900)

    "Basic, VB, C, FoxPro, Cobol, and Assembler, but the languages I used the most were Pascal and Delphi."

    It's almost like you've gone out of your way to avoid every popular language (C being the one exception). You're in a more difficult position than most because you don't have much experience in any of the top languages employers are looking for (those being C++, C, Java, PHP, Perl, C#, Python according to most studies). How did you let this happen would be my first question. It seems hard to believe someone who takes their career seriously would manage to avoid experience with all the things employers want.

Our OS who art in CPU, UNIX be thy name. Thy programs run, thy syscalls done, In kernel as it is in user!

Working...