views:

2117

answers:

26

After you get old, say past 30 or 40. Can you still keep up with the young coders from your company, those fresh out of school, who can code for 15+ hours on 10 cans of redbulls (most people in Google, Facebook, etc) ? And given the lightning speed with which today's programming frameworks and architectures evolve, can you keep up with the most up to date stuff and be as proficient at them as the next college grad?

I know for jobs like unix/c/embedded programming, it might be that the older the better. But for programming jobs in say web development, social media, search engine technology, etc. Do you become less and less competitive career-wise versus youngsters? For example, most coders in Google and Facebook, I believe are under 25 years old.

In other words, once you reach a certain age, would it be unwise to continue to be a coder, and is it better to try becoming a project manager or architect?

+11  A: 

No, its a smart, curious, information insatiable -(wo)man's job

it is not about speed, its about quality.

Decio Lira
s/man/person/ :)
Greg Hewgill
you are right! Edited.
Decio Lira
Good edit on that... :-)
McWafflestix
you and my boss need to have a chat.
Tom
I'm guessing he is a PHB kind of boss? :P
Decio Lira
You are implicitly stating that one who have worked for years in IT automatically codes slower but in higher quality. Have you heard term 'digital natives'? http://computerworld.co.nz/news.nsf/devt/AF426551C6F783D9CC2574B70071AF9C
Arnis L.
I didn't mean they code slower, I meant they make less effort to achieve quality due to experience. I don't really get why the article you mention has to do with the discussion.
Decio Lira
+2  A: 

I feel that by the time one gets older, everything has become routine. Even though the specific technologies change and the specific implementation may change, through it all there lies a very basic approach. Analyze the problem, break it down into manageable chunks, learn what you have to pick up, and then put your plan into action.

I get the sense that for most people, after doing this for years and years, they tend to yearn for something different because the challenge loses some of the excitement it used to have. So they seek out a different role, such as a program manager or a data strategist since it lets them apply their knowledge in a new way.

Cuga
+4  A: 

It's only sensible to step into the role of a project manager or architect if that's what you would enjoy doing. Age isn't relevant - having a beginners mind and a love for software development is what's genuinely important. If you keep your mind active, and make an effort to constantly learn new things, your mind will retain it's keenness and you can apply yourself to any new technology.

Bayard Randel
+44  A: 

The more experience you have, the better coder you are... The better coder you are, the less time you need to code something... The less time you need to code something, the less Red Bull's you need to complete it.

I think that the older you are, the less you need to code 15 hrs straight! You can do it in 8!

JFV

JFV
that's true but some poor or not enough big enterprise used to hire young people because they are cheaper, but they just got out from well known school so they should be good enough.
Boris Guéry
You are right. I know old coders who only need 4 hours. Why waste time with 15 hours? Ha Ha
Hideo
I agree completely, but with a caveat, just because you have been programming for 20 years does not mean you have 20 years of experience. If you have been learning from your mistakes and getting better each year then you have experience. I've met people who've been working for 10 years and have a lot more experience than some people who have been working for much longer.
ilivewithian
+15  A: 

Actually, older coders are not just able to keep up, but they're hands-down better. Even with new technology, the heart of software development is still essentially the same: discern requirements, design solution, implement solution, maintain solution. Experience provides invaluable skills at all of these. In addition, experienced coders have been through a seismic shift or two in terms of technologies, and are much more able to discern what the valuable and lasting points of new technologies are than less experienced coders.

There's a reason why older, experienced coders are paid so much more than junior coders; and as it is, they're probably underpaid for everything. I've known many (MANY!) managers who have claimed that they'd rather have 1 senior dev than 10 junior devs. In fact, most places I've worked at have hired junior devs almost entirely as an attempt to just give them experience, in the hope that someday, years and years down the line, they might start being able to be useful. But pretty much everywhere that I know that hires junior devs understands that they won't be useful for a long, long time.

McWafflestix
Except for the bean-counter types, who only want to know "why should I pay you $80K when I can hire a fresh-faced college graduate for $40K?" Never mind that they'd have to hire several of those fresh-faced college grads just to keep up...
GalacticCowboy
@galacticCowboy: yeah, but fortunately good experienced managers know where to tell those bean-counters to go... :-)
McWafflestix
A: 

It depends on where you are living... In France, HR are more looking for cheap and even unskilled people just fresh outta school instead of an old and expensive (but skilled) man. UK or Germany give more chance to people depending on their skills and experiments.

Boris Guéry
+3  A: 

Old coders have generally "been there, done that". That can either make them cynical grumpy old curmudgeons who sit in the corner and complain about all this new fangled soapy json ajax wpf malarkey and pine for the punchcard days, or it makes them incredibly wise. As a guy on the wrong side of 30, I'd like to think that the older you get, the more pragmatic you become :-)

Dan F
That made me laugh. :)
Arnis L.
+2  A: 

Don't assume that all coders are red bull guzzling twenty two year old insomniacs pulling all nighters on a regular basis in the cubes at places like Google and other software companies.

I think you'd be surprised how many coders there are in their 30s, 40s and even beyond in some of those companies. What matters is that you have talent, transferrable skills, and a good solid foundation.

Experience counts in software engineering just like it does in every other discipline. When I was in my early twenties, I would work crazy long hours. I would produce vast amounts of code, and was pretty arrogant about my abilities. As I reached my 30s, I realized that a programmer is always learning. If I see code now that I wrote in my early 20s, I'm occasionally horrified.

If you're good, and you're passionate, the best companies will hire you and retain you as a software engineer based on what you can do, not on how old you are.

Brian Duff
+2  A: 

I know more than a few "old" programmers whose careers aren't suffering one bit. Doug Crockford is a great example. He's over 40, responsible for popularizing JSON, and is one world's foremost authorities on javascript -- a language that didn't come into prominence until well into his career.

There's a reason most facebook employees are fresh out of college. Long hours at a company that has no prospect of turning a profit in the near future, despite market dominance? A chaotic, poorly managed development process? If you're over 30 with 10+ years of experience under your belt, you'd have to be out of your mind to want to work there.

Frank Farmer
+8  A: 

As an older programmer, I have no desire to work 14 hours a day. And, as an older (or senior or experienced) programmer, I don't have to.

=)

Travis
Exceptionally good point. I feel the exact same way.
McWafflestix
+2  A: 

If you truly love coding, older people can keep us with new technology as easily as young people. Young people have a reputation for being up on all the latest things, but there's no reason you can't be up on things related to the job you love.

Now, this may require "going back to school" in a figurative sense. People just out of college have probably learned java 6, .net3.5, the latest stuff. You might have been in college before java even came out. If companies are using these technologies, they want people experienced in them. Once again, its because of what they know, not because they're young. If you can learn these new things, you can easily rival any competitor.

CrazyJugglerDrummer
A: 

IMO, you have a crappy job if it requires 15 hours of work a day. I can see that sometimes, maybe once every 5-6 months, but never a weekly thing. We have an older developer at my company (we only have 6 developers), and he is on par with everyone else. I by no means thing that software development is a young person's job.

Gromer
+85  A: 

I'm 47, and I'm not as fast as I was at 27, but I can build bigger things in fewer hours because I've seen more problems, I've seen more solutions, and I'm better at reuse. I've also learned enough new frameworks that I know when I'm going to be more productive without the framework.

If I have to learn new stuff I can. I just spend 3 months learning git down to the bones. I did it only because I think my deeper knowledge will pay off in new research (my job). It wasn't worth the time just for the tool.

Programming is like judo: if you rely on youth and strength, soon there will be someone younger and stronger. If you rely on knowledge and you perfect your technique, no young kid with quick reflexes and sloppy technique is going to walk into the dojo and lay you on the mat.

Norman Ramsey
I like the judo analogy...
McWafflestix
Does the judo analogy means that a 30 yr old will kick your a** when you're 50??!!! :)
OscarRyz
I'm currently training in Judo and I can pretty much say thats so true! with the right technique, I've thrown guys twice as big, and half my age..
Darknight
I've had the same experience as Darknight, except I'm 51 and study shaolin kempo. Also, regarding strength, powerlifting champions are typically 35-50; men don't develop mature strength until then. Ditto certain programming skills.
Bob Murphy
Darknight, according to your profile you're 29! What is the physical condition of 14.5 year olds that are twice your size? ;-)
Guge
+2  A: 

That's a really good question. I think the answer will depend on the person. Some people are just very passionate about programming and they love to do it well beyond their 50s and 60s.

For the most part I would say by the time someone has been programming for 10+ years they begin to loose intrest. Unfortunatly a lot of people out there are just in it for a check, so to them it will never be anything more than a job. These are most likely the people you think of when you think about 30 - 40 year olds still programming.

As long as someone has passion, a desire and ability to learn the age is not a factor.

JD
+30  A: 

You have a lot of assumptions and points there.

  • Stimulants. There are far better stimulants available than those disgusting energy drinks. If "coding 15 hours straight" is important, 30 and 40 year olds should have no problem.

  • "Energy" does not directly translate into productivity. See, for instance, the Dreyfus Model of Skills Acquisition (or Heuristics and Biases, or Taoism if it feels cooler). An intelligent programmer will gain a lot from experience.

  • Coding isn't just coding. In all the software I do, a lot of work is designing what the code will be like, not just writing actual expressions. This is where experience plays in. You sorta make it sound like "coding" is simply "write lines of code", as if it's a data entry job with special constraints.

  • "Competitive" for "new" companies. There's probably hiring bias if you run into an arrogant hiring manager. And perhaps you met kids who don't know how nice things should be, and thus think HTML, CSS, and Javascript are just dandy. :)

  • Startup successes. You point out some wildly successful companies (at the moment anyways). They are pretty much statistically insignificant if you're wondering if you should keep programming. Startup coding talent is only one part of the picture. But you are right here in one way: older people are more likely to have other committments, such as a family, and a startup often needs to own your entire life.

  • Architects and managers do less?? You say that perhaps you should move into management, as if that's not going to require the work and intelligence. I'm sure there are plenty of situations where the managers or "architects" are not contributing. But that's sick. I'd be surprised to see a healthy team have developers working 80 hour weeks and having top-notch skills, and a manager or other lead taking it easy and not able to comprehend the devs. And architect? If the architect can't understand the coding level, how on earth is he supposed to pull it together? Or perhaps I misunderstood where you were going with that.

I've been programming professionally for over 10 years. Every so often I can look back, and I realise I could run circles around my old self. If that stopped happening, then yea, I'd get real worried in general not just about programming.

Disclaimer: I'm not yet 30, but I'm past 25, and totally don't get social media.

MichaelGG
Don't get social media - not even reddit?
Ankur
"Every so often I can look back, and I realise I could run circles around my old self." - Yeah, same here. I still remember when I thought I was the greatest programmer ever to walk the earth. All that has happened since is that I have learned a lot more about the accomplishments of others.
Tom Leys
Well put... ALSO, there is a reason youngsters have to code for 15 hours a day, because they DIDN'T DO IT RIGHT... and they are either doing it for the second time, or fighting with the initial design they slapped out 20 hours ago. Older coders do less coding for less time because they are good, not because they are inept.
Zoidberg
+1 zoidberg... I'll add: coding 15 hours doesn't mean 15 hours of productive coding either.
SnOrfus
HTML, CSS, and Javascript *are* dandy... oh sorry, sir, I'll get off your lawn now.... :)
Jimmy
doesn't this count as social media?
jk
Zoidberg: You say this like if youngsters had to code 15 hours to do good work while older guys know how to do it in 8. I know about as many good young coders as I know horrible old coders.It's not about age, it's about experience. And even then, experience is not always meaningful: some people are simply gifted, and they might want to work twice as much simply because they like what they do.Note that this has nothing to do with programming. This is applicable for all professions.
Xr
+2  A: 

This issue is directly tied to the fact that our vocation is not (yet) an engineering and/or scientific field.

Your age (and presumably your practical experience) is certainly an advantage in the areas of system conception, design, and overall implementation. But attention to minutia, flavor of the month technology, and working with poorly supported emergent technologies favors the young mind fascinated with shiny bling.

[edit to include a relevant link: "grown up" software development

However, the constant distraction of shiny technologies is a major weakness of the 'young programmer' - jumping constantly from one system to another and achieving nothing.
Tom Leys
A: 

I am 42 and have been programming as a job for about 14 years and in that time I have learned a great deal, and my current job for example is interesting, as it is so new to me, I doubt a fresh out of college kid could grasp working with databases where the database columns are defined in a table, there is actually no table with those names, everything is dynamically determined (see my latest question for an example :)

At this stage I am more of an architect and team lead, but I am also a very productive developer, but I am not just a coder, as I do have to design for what I do.

If a person is just typing for 15 hours then someone else had to do the design, and you have a job as a code monkey, just pounding on keys for hours on end (sounds boring).

Learning new skills is about curiosity but being able to determine the best tool for the job requires a great deal of experience, esp when you get to choose between different programming types, such as OO, FP, structured, etc as well as languages.

James Black
If I was working with you, I would have tried extremely hard to find an alternative solution that did not require a database in the database.
Tom Leys
Unfortunately the design was for an entity value table so that they can have maximum flexibility on the data in the database. The application can adapt to any data you want to enter in any column, to do some optimizations.
James Black
That reminds me our 'proform automat'. Black box that glued together expressions from bunch of tables, generated VFP code and ran it. No one actually knew how it works (including older programmers). In short - epic disaster.
Arnis L.
@Arnis L. - This system isn't too bad, it just had lots of stored procedures and triggers, and you interact with it through views. This way it works with SSIS and SSRS so the user doesn't realize that it isn't a relational database.
James Black
A: 

Not sure whether it's a young coder job; but here in Malaysia, it seems that it's a young coder pay job.

So a lot of people either drop out to try something else ( such as selling insurance) or drop up by becoming a manager.

Ngu Soon Hui
+1  A: 

Having been doing web development for 11 years now, I can easily see where things have improved from where I first started working but there is also the potential for older technologies to be things that new graduates don't want to know, e.g. do schools teach classic ASP these days? While the technologies have evolved, I have also moved up the chain somewhat and am not the junior developer so I'm not competing with those much younger than myself usually.

The wisdom of continuing to be a coder is beyond highly subjective, IMO. If someone moves into management and has a nervous breakdown, should that someone have stayed a coder? What if they really like coding and don't want to leave it?

What priorities do you have in life? If it is to make the most money as quickly as possible, then moving up in the corporate ladder to management or architecture may work well but for those that may enjoy what they do and just want to pay the bills, it may be just fine to stay in the trenches.

JB King
+1  A: 

once you reach a certain age, would it be unwise to continue to be a coder,

No.

and is it better to try becoming a project manager or architect?

Yes.

Daniel Daranas
A: 

Blah.

I like the Judo analogy, but Aikido is a much more apt comparison in my opinion. Programming is, in some ways, very chi / wu wei-ish. It's more about boiling down what you do into the simplest, most effective components and applying pressure to the pieces that make sense. It's hard to break into as you get older, because to know all the little nooks and crannies and tricks and pressure point equivalents, you need to put in a lot of time.

A lot.

That's not to say you can't do it. But solving progressively larger problems by knowing everything about the decisions about small ones involved in them is hard experience to acquire without lots of time and energy.

Wish I could just comment about the judo comment above. But then, whatever.

One little idea from Cryptonomicon comes back to me, though. "He had found as he grew older that hiring people to code for him was more time effective than coding himself." More and more, I think that unless you want to become a truly amazing know-everything-backwards-and-forwards programmer, or you love it for loving it, you should let someone else do it. Otherwise, you're only ever going to be a mediocre programmer anyways. I should know, I've spent a long time half-ass'ing being a good programmer.

Dylan
A: 

I hate the assumption that you are not employable after 30 except as a manager. Let me tell you, you will spend far more of your work life older than 30 than younger (unless you die young which certainly we don't plan to do).

Experienced people are more productive in general and that means over 30 most of the time. I don't have to work 15 hour days and neither should you no matter what your age as it is unproductive to do so. If you are, you are doing something wrong. Why do you think the 40 hour week came into being in the industrial revolution? Because factories found out that employees who worked more than 40 hours made more mistakes and thus it cost more to produce the product when people worked long hours. They didn't do it out of the goodness of their hearts for goodness sake.

As for comapnies that only hire just out of school? Well you get what you pay for. There are better companies around.

HLGEM
+1  A: 

I am under 30 and I work under 45 hours per week with very few exceptions. The disappearing knowledge in IT does concern me, and so I want to get more education and more knowledge in a particular domain - finance, biotech, math, chemistry ... - something that does not change as fast. I mean finance evolves, but not at the same insane speed. I want to be a jack of 2 or 3 trades just in case ... it also limits the competition pool - good for me :)

Hamish Grubijan
A: 

Some interesting answers to this question can be found in Peter Seibel's Coders at Work, where he asks this very question in every interview in the book. One impression I got was that of the older people he interviewed, those that were still actively coding were practicing some form of coding that allows you to keep less stuff in your head, like test-driven development or literate programming.

Also, many agreed with Seibel that people who are very good at reasoning about very complex software often write less clean and less decoupled code, which I guess applies to aging, too: the less you can remember and keep in your head at once, the cleaner you'll have to code, design and document. Which ultimately might be a good thing.

Fabian Steeg
That's not because of aging but of becoming smarter. Programming is hard only when you can't handle it and freeing head from remembering load of junk really helps.
Arnis L.
The point I'm trying to make is that if you're really smart and young you might be able to handle it without freeing your head.
Fabian Steeg
A: 

I do think that new generation fits more than previous one. I literally grow up next to pc (e.g. - i learnt typing on C64 keyboard before i learnt writing by hand). I was surprised how much I already unconsciously knew when started programming despite that i wasn't interested in programming at all for ages and most technical things usually came into play when I tried to run newest game I found.

Another thing - new gen are used to information overload. That can lead to way much greater ability to think abstract. And i believe - that's one of the main requirements for a programmer.

Anyway - I'm not trying to say that old people can't program. That's not true at all. Adapting is a key. Just like some years ago - electrical engineering became obsolete (partially, of course) and programming started to rule. As our lecturer told us at university - he himself knows few hobos he studied with wandering around with electrical engineering diplomas.

There's a nice TechEd presentation about IT future.

Arnis L.
A: 

As stated by others, your question seems to take for granted that all programmers do is code.

If that was the case, knowing syntax and being able to type fast would be the only useful metrics.

However, we are also required to think, and unless you are particularly unfortunate, your code has to relate to the real world. So you will have to interact with customers, try and tease out their requirements. Or you will have to understand a particular problem space, or business requirements. All stuff that you will definitely get better at with experience.

I code for a company making railway machinery. I've been here for nearly 3 years now, and I'm still learning stuff about the engineering involved. Stuff that is essential for doing my job properly. Stuff that you can't just learn with a few Google searches or questions on SO.

All in all, the kind of reasoning contained in the question plays right into the hands of the PHBs. Coders are just interchangeable warm bodies, so why not have two young ones for the price of an 'old' one?

There is one problem I can see with the onset of 'old age': which is getting tired of keeping up with the latest silver bullet which will solve 'everything', but which forces you to keep recoding your application without actually improving it.

That and having to put up with arrogant young whippersnappers :)

Benjol