Hacker News new | past | comments | ask | show | jobs | submit login
Half Life of a Tech Worker: 15 Years - Slashdot (slashdot.org)
99 points by holychiz on Dec 4, 2011 | hide | past | favorite | 92 comments

The fact that Google's employees are young does not say anything or imply anything about the half life of a computer programmer. It's just one data point. Here are reasons why it is skewed:

* Fast-growing companies at large scale do enormous amounts of college recruiting. That's because the quality of the pool is much higher than the pool of out-of-work programmers... not because young people are smarter or better programmers but simply because the candidate pool includes a cross-section of skills, whereas the candidate pool of out-of-work programmers is biased to programmers who can't find work.

See also: http://www.joelonsoftware.com/articles/FindingGreatDeveloper...

Thus, the average age at Facebook is younger than Google, at Google it's younger than Microsoft, and Microsoft is younger than IBM. It's just a question of when the biggest growth spurt occurred in hiring.

* Nobody was working as a software developer 30 years ago. Well, of course, not nobody, but this field has grown like CRAZY. Everybody knows that, but they don't think of the implications. Even if every software developer who started work in 1980 was still working today as a software developer, they would only constitute a small fraction of the current workforce because the number of software developers in 1980 was miniscule. And you would expect them to be working in relatively mature companies simply because those were the companies that were around when they got their jobs.

Bottom line--this "mystery of the disappearing tech worker" is a good bit more imaginary than real and is probably mostly explained by the kinds of people you're hanging around with, not a real social phenomena.

See also: http://www.wolframalpha.com/input/?i=computer+software+appli... (If anyone can figure out how to get older data than Wolfram Alpha displays, I'd appreciate it)

I wish I knew how the Googles and Facebooks hire a crowd of junior programmers and have them do these amazing things.

I am in the 5th year of leading development teams and have more than 5 years to go until my half-life is over. Yet, I have not figured out how to run a team entirely of junior programmers. Yes, they come with a lot of energy and current knowledge but there is also so much missing that people gain from, well, experience. In the field of software but also in all the adjacent domains that are so crucial for being successful as a team. I cannot image how I would do without having a few senior people around who can give things a little structure and a little broader understanding of things.

Also, most experienced folks, even if not super up-to-date with fancy technology, are a hell of a lot more productive than the shooting-from-the-hip youngster. They don't need to put in 12 hour days.

My other problem is that it's so hard to actually find good senior programmers. There are also a lot of people who got stuck more than ten years ago ...

My experienced as an unofficial team lead of a few programmers with various experience (which I conclude that they were Jr. Programmers with a few years of lack of mentorship) was to do the following:

1) Define structure

Set some rules. Coding styles, check-in etiquette

2) Find tools to limit mistakes

Static code analysis, automate build that breaks when #1 fails.

3) Always on alert

Do a lot of code reviews. A lot. Argue and fight over little things (variable naming convention, missing documentations, unclear code).

Now this might not sit well with others so get ready:

4) Become a "drill" sergeant

I find that becoming the "bulldog" sometime works. You've got to become some sort of "drill" sergeant. People may dislike you at first but if the project is successful, they can hate you all the way to the exit door all they like.

That was my experience. I made a concious decision to put the success of the project as the top priority. Even if it means breaking some bridges with other programmers. I hope they learn why I did those things in the future. If they don't, I won't quarrel or regret my action.

5) Be nice on other occasions

I may be the biggest jerk during code-review and check-in commits but when my co-workers stuck, I'll be gladly help them even if it means I have to sit with them and do my overtime. This can gain you some respect after confrontation/intense debate/being a jerk.

I always try to be friendly during office/release party. Give credit to the team, etc.

Just an alternative to #4 (which I have been on times with various degrees of success).

What's the #1 thing people are afraid of? Public shame. I have a theory that Scrum primarily works because of this. Just have daily Scrum-light meetings with your group. If you have 15 minutes with a group of 5-6 people and everyone has to say either "done" or "not done"... the not dones will of course have some silly excuse, but because of the time constraint you must cut them off, be curt, and say to the effect "so John can you help Dan with that right after we break?". And then everyone would make commitments on to what they would do that day. I guess in a way you can say this was being a drill sergeant, but the thing was I wasn't an a-hole, that 15 minute meeting every morning was just part of the process, it was expected.

After a few weeks of this everything moves at twice the speed. I had a team of 6 devs (including myself) burn through nearly 200 bugs in 2 months. That's every engineer fixing about 4 bugs a day. There was a hug chasm of talents on that team... we had the top guy in my dept as well as one of the weakest engineers on the same team. Everyone performed.

Perhaps there is a more euphemistic term than "shame", but I agree that Scrum and code reviews harness this shame in a positive way.

Nice list! That is pretty much what I am expecting of myself and other more senior developers.

I guess, I am not a super good "drill" sergeant, though. All I can do is leading by example, mainly doing a lot of pairing. But that is time consuming, so I might try to develop more of a sergeant attitude.

> I wish I knew how the Googles and Facebooks hire a crowd of junior programmers and have them do these amazing things

Volume. You are forgetting (and/or haven't been privy to) all their failures. Statistically if you do 100 things 1 or 2 of them will be amazing, the rest are crap. We've seen publicly a few of those companies' failures. I'm sure there are many more we haven't.

They haven't managed jr devs any better than the rest of us. They just brute forced it with shed loads of money and people.

  >> it's so hard to actually find good senior programmers
Most of them either find jobs through referrals, or have become consultants in order to avoid the unwritten rule in many companies that you can't make a higher salary than your manager (yes I know there are exceptions).

The junior programmers I worked with at Google were far better than the senior programmers I worked with at other jobs. Experience has value, but it's not the only attribute that matters when it comes to skill and ability. Taking the best kids out of MIT, CMU, and Stanford is a lot different than the junior programmers you'd encounter at most places.

We don't.

The most effective teams I have worked on at Google have a healthy balance of experienced and inexperienced engineers.

Senior engineers are in extremely high demand at places like Google and Facebook precisely because of the points you bring up.

Why do you have teams "entirely of junior programmers"? Maybe that's the problem to be addressed, not running them.

I don't know about Facebook, but Google doesn't seem to be hiring many college kids these days. It's hard to find a 22-year-old with both the skill and desire to work in Google's main languages (Java and C++). Also, what you said is quite true: a team consisting entirely of junior programmers is difficult to manage.

I found the hardest part to be the impatience :) But then one has to be fair and look at one self at that age and acknowledge that one was just as much a pain in the ass at that age. Karma pays forward.

iPhone programmers that interface with C/C++ code do, and they're young.

In the late 70s I worked as a compiler development lead at Control Data. I've kept in contact with many of them because one of the developers has held a New Years reunion party every year for the last couple of decades. Most stayed as developers through the years. It was and is a very talented group of people who ended up at companies like Google and Yahoo. You wont find an ex-CDC clump anywhere, because the ended up as singletons at later generation companies. It's not that they moved out of development; they are dispersed in a much larger pool of developers.

The phenomenon used to exist 30 years ago and may still exist at companies behind the leading edge. The highest engineering salary was near the lowest managerial salary, so if an engineer wanted to get a salary increase, s/he had to become a manager. But even in 70s CDC had established a separate technical salary track so good engineers didnt have to become bad managers.

What you say makes sense, but I wonder: do the big, high profile companies intentionally have a high churn rate on employees, especially young hires?

I heard someone talking about how IBM/Intell/etc... hire PhD's right out of grad school, train them for 6 months, squeeze all the creative energy and effort out of the employee they can for 2-4 years, and then expect the employee to want to go work elsewhere b/c they're burned-out. The productivity they get in those 2-4 years is worth burning out employees.

This also happens in finance, where jobs right out of school are 60-80+ hour weeks for a few years. Then you land a nicer position (likely in management) once you've cut your teeth.

Is there evidence that a similar thing is happening at the Google/Facebooks too?

My experience in finance IT business is different (but it depends on finance business itself - the difference between writing systems for mortgage industry is different than what quants write and that's different from guys writing integration/real time market data/trading systems).

But what's the most important thing in finance IT business is to keep with business knowledge. Having only pure IT skills will get you nowhere. You need to understand a business side of your finance domain which means being able to easily communicate with your clients/customers in their language. It's pretty common to see IT guys in finance having Series 7/24/63 or CFA certificates on their resume (I'm one of them). Again if you want to be in finance IT business for a long haul, focusing on general IT knowledge only is not enough.

I don't know that the vampirism is intentional. Even in investment banking, the most evil non-war/oil industry on earth, the bad hours have more to do with a dysfunctional workflow (the real work begins at 4:00 pm and has a next-day deadline, but it's only an 8- to 10-hour day of real work) and secrecy (i.e. hire fewer people and have them doing less interesting work => reduce leak risk) than intentional malice.

I don't think that's happening at companies like Google and Facebook. Companies like that bend over backward to prevent their workers from burning out (massages, healthy cafeteria meals). When people burn out after 2-4 years, they leave behind legacy horrors (speaking of vampires) and that can easily cancel out any benefits you get by working people 60+ hours per week.

Now we just need to figure out why so many tech workers _believe_ that older tech workers are disappearing. Part of it is, as you say, a demographic shift. I wonder if a big part of it is also due to the employee structure of large, non-software companies.

Non-software companies do hire programmers, but have difficulty recognizing the talented ones, and don't really have structures in place for rewarding that talent. So, the "successful" programmers in those companies quickly figure out that they need to switch over to management. These workers with only a few years of actual software development experience move up into management roles, and take charge of software development groups. What's interesting is that they have so little actual software development experience that they might be perceived as non-technical to their employees, hence the tech worker has effectively "disappeared".

IT industry is very young but in next 20 years it will be pretty common to see a lot of 40+ folks in this business. It's obvious that we don't see many 50+ folks in IT today since when they started 30 years ago IT business was more or less a niche. Plus majority of them were unable to keep with dramatic changes and knowledge absorption thorough the years.

Totally off topic, but I was really surprised that the intern salaries at Fog Creek in 2006 were $750/week, whereas today good interns get about $1500/week + housing in the Bay Area. Have salaries actually doubled in five years?

That looks like it would be at the top end of intern salaries but the figure as far as I understand (just did an internship a few months back) is roughly correct.

Another detail from about the 70s, would be that some of the people doing the programming may have been (extremely good) EEs: Intel switched from making memories to making processors, PARC was being ridiculously productive, and so on.

This lack of senior developers also leads to the chronic amnesia our industry has, that includes reinventing the wheel every 10 years (same wheel different color). The more the things change the more they stay the same.

I wish more people hear your opinion.

I'm on my late 20 and I went to my alma-mater library once a week in the past. I grabbed old books (Liskov, Bentley, Kernighan, some of the software engineering books, etc) a few times and I was surprised to see methods or techniques that people use these days and considered cutting edge were being discussed in a THIN, DUSTY, paper with YELLOW-ish color books.

There are plenty wisdoms in those old books yet these days people were gung-ho with the latest greatest.

I'm not saying that the latest greatest aren't advancing our thought. It's just that there are more noises than actual wisdoms.

The noise I contribute to the general low average age of our industry. Lots of strong opinions combined with inexperience leads to flame wars.

More people would be better off doing their 10 000 hours of practice before raising their voice in an opinion.

That said I always thought the guild model of apprenticeship would be a better model for developing our craft. But I'm not sure how one would go about setting something like that up.

Raising your voice to have an opinion and getting in lots of flamewars is a fine way to improve.

It's a problem in a lot of engineering fields. Even when older engineers stay around, the knowledge often isn't transmitted. Sometimes it's because you have gaps, where a company grew a lot, then plateaued with no new hires for a while, then grew again later. That gives you old and young cohorts. Not to be an old fogey, because the young engineers bring a lot to the table too, especially familiarity with newer technologies. But a lot of knowledge slips through the cracks. I'd imagine it would just slip faster when people retire in their 30s.

Might be worse in tech because you can reinvent the wheel, with less physical infrastructure that has to stay around. Or maybe that makes it better. I started writing up something about some of my experiences with institutional amnesia causing problems when you still have the old wheel around, since old factories don't go away easily. But it ballooned into a much longer story so I threw it up somewhere anonymous and submitted separately: http://news.ycombinator.com/item?id=3311015

I think the circular nature of tech is a good chunk of why older developers are seen as "stuck in their ways" or unwilling to learn.

At a certain point, you realize that people in tech are constantly promoting the holy grail. So you buy into it, learn it, and then see that it has different, or even very similar weaknesses to the old tech. Also, you begin to realize that domain experience is a very powerful thing.

So, I would rather be happy, operating in the 'zone' with the platform I know, doing 20% more work to hack around sub-optimal language feature, than spend time in distress, trying to wrap my head around a completely different platform, all because someone on my team is obsessed with the new flavor.

(for the record, I've been on both sides of this)

"by the time you hit 35 you better have a plan".

This should go for everyone, not just tech workers. We only get so many years on this planet, and assuming you make it to 35 and are reasonably healthy, you've likely got a lot more years ahead of you (another 40ish?).

You've had some education about life, work, money, etc. You've got no more excuses by 35. Have a plan. Have a backup plan. Understand what you'll need to do to execute on that plan.

For tech workers, this may be going in to consulting, doing a startup (two of the more popular ones), but it also may be moving around to different companies to keep tech skills cutting edge (or demanding that from current employers). Not everyone will be accommodating to your plan, but you have to execute. If current employers won't support you, find new employers.

There's probably many reasons people leave standard tech/dev work by that age - employers wanting cheaper/younger workers is the most popular reason/excuse, and there's probably some truth to that. But I moved out of that because much of it was boring. Some of the work was still interesting (data sizes, algorithms, etc) but the day to day realities of 'corporate life' grew tiresome. Never saying never - I won't rule out "corporate job" again - in fact, there's always some interesting companies popping up that need my skills/labor, and one day I may join one again. But my mindset is totally different about how I would approach a "job" again, and that mindset probably puts off many would-be employers anyway (making finding one both harder and easier at the same time).

So... what's your plan (those of you 35 or older)?

I would go even further than you and say "have a plan by 25" myself. Why dick around and be a fool for longer than is absolutely necessary? :)

I am all for learning by making painful mistakes, but one should cut the failure iteration cycle as short as possible. Learn the lesson by scraping your knees, not by breaking your legs, is my analogy.

This is good reading for those who, like me, are in their mid-20s: http://tynan.com/youngpeople

I look at my age peers and I am flabbergasted that they seem to spend all their free time on fashion, computer games, going to clubs, Facebook, etc.

I spend basically all my free time reading, engaging in self-improvement activities, and plotting for my eventual world domination (heh).

Sorry for ranting, but this is a topic that is close to my heart :)

I spend basically all my free time reading, engaging in self-improvement activities, and plotting for my eventual world domination (heh).

I'm 46. I spent my twenties doing therapy and reading endless self-help books and so on. It was the right thing for me but I eventually got what I needed from it, ditched all the self help books and began living more. A few thoughts:

It doesn't matter that much what most people around you are doing. It matters much more whether or not you have a handful of people close to you who are on the same page with you. There is only so much time in the day and it takes quite a lot of time to establish and maintain a close relationship. See if you can find somewhere between two and six people whom you get on really well with and quit worrying about what most folks are up to.

Reading self-help books and doing therapy had its place for me but looking back I consider it the slow-mode part of my life. It was something I did when I was too weak/fragile for stronger stuff. If you are up to it, find a mentor, do some traveling, hurl yourself into something new. Bite off more than you can chew and all that.

Your remarks in this thread read like someone who is very bright and hasn't yet figured out how to adequately meet their intellectual needs. This seems to leave bright people with a chronic gnawing hunger for "something more". Reading is a good thing but not necessarily the biggest mental challenge. If you can find some means to get adequate mental challenge/feed your mind what it hungers for, some of these other dissatisfactions may seem to magically disappear (or mitigate).

Some of your complaints (about the weather, vitamin D, etc) imply you aren't getting what you need physically. Work on that. If your physical health is sub-par, it really takes it toll. "A sound mind in a sound body" and all that.

Anyway, I enjoyed your remarks. It's the main reason I am replying. Best of luck with putting your plan together and finding what you need.

Wow! What a quality answer. Thanks so much.

See if you can find somewhere between two and six people whom you get on really well with and quit worrying about what most folks are up to.

I'm blessed in that I have around 4-5 such close friends already. And a few others that could go into that category in the future maybe. Main challenge right now is to find more such people who live in the same place as me.

Reading self-help books and doing therapy had its place for me but looking back I consider it the slow-mode part of my life. It was something I did when I was too weak/fragile for stronger stuff. If you are up to it, find a mentor, do some traveling, hurl yourself into something new. Bite off more than you can chew and all that.

Yes! I totally agree with this. I've been priming myself with endless reading and self-debugging and taking life slow, but now things are speeding up. I'm doing a lot more in practice, but at the same time I have a real hard time doing the kind of meticulous evaluating/notetaking that I used to do before. So I'm definitely in a transition period right now.

Your remarks in this thread read like someone who is very bright and hasn't yet figured out how to adequately meet their intellectual needs.

Wow, thanks. A little about me and my aims: I've been running a magazine for the past 2 years (http://www.interestingtimesmagazine.com) which has taught me a lot of things. I currently work a regular dayjob (writing code) but I can't say I'm really cut out for being a salaryman. Right now my goal is to pick 1 startup idea and go for it (http://ideashower.posterous.com). In the future, I would like to make some music and I also have a few ideas for novels kicking around in my head. So, yeah, I have a lot on my plate that I need to get out and share with the world!

This seems to leave bright people with a chronic gnawing hunger for "something more"

Absolutely! I've always been very existential and unable to see myself enjoying a "standard" life. I'm obsessed with proving to the world that I have what it takes. This is both good (drives me to excel) and bad (makes me come off as an arrogant distanced turd). I spend most of my time vacillating between the kind of philosophical lovecraftian uber-pessimism written about in Thomas Ligotti's "The conspiracy against the human race" and the gung-ho cheesy dopamine-fuelled positive thinking bravado of Anthony Robbins. Learning to just chill and enjoy life is a huge challenge for me.

Anyway, I enjoyed your remarks. It's the main reason I am replying. Best of luck with putting your plan together and finding what you need.

Would you mind if I contacted you? You seem like someone who gets me... :)

Would you mind if I contacted you?

Feel free. Contact info in profile. Gotta get ready for the dayjob now. :-)

I don't disagree, and wish I'd had a better plan in place by 25, but culturally in the US, we've had a generation or two that have taken longer to grow up. Kids living with parents until late 20s, harder job market, etc. 25 is great, but for some reason culturally we still accept 25 year olds being flakes.

So.. there's still some acceptable excuses for flitting away your 20s (not really acceptable to me, but I'm not in charge!) but by 35 there's just no good excuse to not have a life plan in place.

Ah, gotcha.

I'm in Sweden, and it's the same here, possibly even worse.

I've been reading self-help materials non-stop for the past 5 years. When I introduce this stuff to people my age they just stare at me like I'm an alien.

They also seem to have no concept of real individuality. Ie in Sweden most everyone my age looks like a bizarre hipster, 'cause that's what the fashion is and deviating is not an option (the most popular blogs here by far are vapid girls posting about their daily outfits).

Combine this with lack of sunshine, über-costly alcohol, super-cocky entitled chicks who wear basketball shoes all the time and refuse to smile, high taxes, shitty wages, inbred media, lack of gung-ho disruptive startup people to hang with, a culture of mindless consensus, public transportation which is always delayed, snow which refuses to arrive around Christmas when it's wanted and instead fucks you in February, a PM with doggy-dinner bowl eyes and a main contender who's some kind of mustached character who's very creative with the truth, inferior Christmas food, total surveillance of all Internet/phone traffic, getting your Vitamin D solely from a bottle of pills, annoying Stockholm people who think their Milwaukee-sized hamlet is the world, the gov't wanting to regulate everything, the law of jante, Stalinist gov't liquor stores where they scowl at you for buying alcohol, everyone expecting the gov't to fix everything, people being un-creative and uninterested in my ideas, everyone being dressed like some bizarro ironic lumberjack with Buddy Holly glasses, houses being like the albino rhinoceros in terms of their availability to the common man, all people (including chicks) filling their body with ugly tattoos and piercings and being proud of it, chicks who are more interested in dogs than men, supermarkets where they rape your wallet and then scowl at you for entering their premises, punctuality being more important than actual productivity, being hit on by fiendish cougars ONLY when you go out on the weekends, daring to exist and being scowled at, everyone uncritically relying on "experts" all the time, it being FUCKING COLD, etc, and you have one unhappy itmag :(

Fuck Sweden, give me my Green Card already!


I think you had better have a day off and perhaps investigate home-brewing.

Seriously, most people have more than one career, I'm on my third. I see no reason why the same should not apply to computer programmers.

Right now, I've slowly begun to realise that I can produce documentation and tutorials that people find useful. This may (or may not) lead to career number four.

I don't think I'm cut out to have a career per se, it's startups or nothing for me: http://news.ycombinator.com/item?id=3283401

Which got quoted on teh Internetz: http://unicornfree.com/2011/fuck-glory-startups-are-one-long...

Hummm, home brewing then. You career is being an employee of a startup? Do you have any side projects between startups?

What I meant to say is that I want to start my own startup in the not so distant future.

Sure, I run a magazine.

You have the entire EU to live in, go move to berlin. I know it will be better weather wise (but not ideal), everyone says how great it is for young people socially, and there is a tech industry growing there. And the rent is cheaper. Go become a startup employee, bootstrap yourself a bit, learn how it is to work in this industry for a while. Many european startups have a more relaxed pace, so you'll still have a life while working in less BS startup land.

I am intrigued, tell me more :)

Apply for jobs in Berlin, interview, get one, move. I've never been to europe otherwise.

"Go move to berlin".

Did that help? ;)

I hear Bolivia is really nice this time of the year...

Fellow Scandinavian here, and that rant sure hit home. Especially the whole hipster mania which is just relentless.

Then again, SAD and a lack of Vitamin D sure doesn't help brighten the day either. But it is nice to see that others also have a bit wider perspective on things.

Where you at in Scandinavia?

Trondheim, Norway.

As a younger guy I could have told you about all the things wrong with my home town in Southern California. A little travel helped me, and I enjoy coming home now. There are good and bad people all over... maybe you are looking in the wrong places?

"I spend basically all my free time reading, engaging in self-improvement activities, and plotting for my eventual world domination (heh)."

While withdrawing and plumbing the depths is an important and valuable experience in itself, it's worth keeping in mind to that all of the reading, self improvement, and self education receive their greatest value from taking that knowledge and living.

A fun evening is an end in itself sometimes. Though, not always! It's about balance.

Tell me about it. I went too far in that direction. Right now I'm trying to learn how to live :)

It's funny, I was 35 when I realized life was short, quit my corporate job, and started working on startups. My mid-life crisis, complete with impractical sports car.

At 35, I had enough experience that working on boring projects for idiots became physically and emotionally painful. I'm still working for an idiot, but it's the one I see in the mirror every day, and at least now I'm fully engaged and invested in what I'm working on.

Tell me more about your story, especially the part about startups.

I thought I had until 40, before mid life crisis. Now you're stressing me out!

Indeed, I was afraid to scroll down further and learn that, in fact, 25 is really quite late and 18 is the proper age for pulling your plan together... ike!

My tech half life was almost exactly 15 years. I am just posting this to vent. The last year of my life has been frustrating.

I had my first job at age 21. A month before my 36th birthday, I left my last job. I have not been able to get a job since.

I have applied for 58 jobs over the past year and have gotten a response 11 times. I got a phone screen for three of these jobs, and got to an in-person interview for one of them. All rejected.

I am not a superstar but I have built solid things including sites from scratch that are still running on the web. I worked on parts of an iPad app that has over 3 million downloads in the app store. I solved the programming challenges on the HR pages of two hot companies. (Didn't hear back from one, was told there weren't any positions for me at the other) I even was on a team that made it to a y-combinator interview. My other HN account has a decent amount of karma.

I just say all this to point out that I'm not the typical square sob story where some guy making crystal reports for 15 years get the boot from IBM and spends his days whining about H1Bs on patriot message boards. However, sometimes I wish I was one of those guys. I can't even get a job doing something like ".NET Sharepoint integrations" because I've never done it before!

I'm mostly zen about the whole situation but at times I catch myself sliding into serious depression. I've been working on iPhone UI programming to learn something new. However, in the back of my mind I know that even if I get a job, something like this will happen again when I'm 42.

I don't know how I would get a management job, but I'm not convinced management is a safe haven. I have two uncles who worked at IBM for decades. They were made redundant in their early 50s and never worked in the industry again. Then again, at least they made it another 15 years and were able to pay off their house.

I could write more but you probably get the point. My only advice is to make a lot of money when you are young so you can coast when you get old (35?). I basically think programming is like pro sports. You can be an amazing rookie in your early 20s, a kobe like superstar in your late 20s and even early 30s. But mid 30s you need to make way for the next generation.

Are you in the SFBA?

No. I used to be, though.

where are you located? I think in most metros, folks are starving for programmer talent right now. Move to a new city, go to meet ups and hack nights, and you'll land a job in no time.

You should consider moving back. I think its a lot easier to find tech gigs when you are based here.

Never stagnate. If you aren't valuable to employers, then it doesn't matter what your circumstances are. The difference between a low 20-something who isn't valuable and a 50-something who isn't valuable is that at least the 20-something straight out of college has an excuse. The 20-something is raw, and probably needs some training and experience. The 20-something may also be cheaper, though that may not be an issue at places which are fighting for talent.

This is why I like being independent. I'm forced to keep up with changes in my industry. I have to always be networking. I have to keep my selling skills sharp. When I have some down time I can plant seeds for alternative streams of income. These are the same things everyone should be doing, but you don't have to do these things when you work in the bubble of traditional employment.

In short don't get too comfortable. Work every day as if it's your last day at the company. I suppose this advice goes well for life in general. ;)

It it's my last day in general; I wouldn't be working at all.

As an older developer who has been developing for more than 20 years, I find that the reason for the "half-life" to be the impedance mismatch between the demands of a family and the demands of mismanagers (and their crunch time and death marches).

Eventually, developers start saying things like "I want to watch my kids ball game" instead of being at the office and dealing with the latest manager-inflicted crisis. 60 hour weeks are not family-friendly, and the developers that choose family over the office end up getting pushed out the door.

Yeah, as someone who will be moving into the 'married & family' stage in the next few years, I am getting concerned about the paces I will be expected to put in. I am not going to be working until 11 at night on my kid's big event. I'm going to be there for my kid.

You know, the young ones complain nobody hires them because they don't have experience and buzzwords on their resumes.

The old ones complain that they're discriminated against because they are... old.

Meanwhile business complain they can't find good people no matter how much they pay and Google & Facebook can't give enough bonuses to stop their people from being pouched.

So, who's right? Bunch of f-ing whiners all of them, if you ask me:

Youngsters should CODE and get the right experience.

Oldies should LEARN continuously, not stop and rely on their old stuff.

Business should PAY and PAY even more, while rewarding on merit, not people skills.

Now get off my lawn!

It must depend on the company because the company I work at now has almost exclusively older programmers, I think I'm one of only 2 developers under 35 and most seem to be at least 40. I think the technologies used influence this, I work with Java and it seems they tend to people with more experience, if its a startup working with the next hot trendy dynamic language then, yeah, they probably aren't going to see a lot of value in hiring a dev with years of experience but I think this says more about the company than anything else as they value trendiness over solid software development practices.

My plan is to be financially independent from what I love to do. I love coding because it's a medium for me to create something tangible out of nothing. I loved it before I was paid to do it for a living, and I'll love it till I become senile (the plan is to write lolcode when that day finally comes).

That said, I love other things in life as well - friends, family, girlfriend. All these loves are first class citizens and I can't tradeoff on one for another. When forced to choose, I always find a way to compromise. For example, when my girlfriend started grad school, I started working with Intridea (an all remote web and mobile consultancy).

I constantly in the process of finding ways to allow me to code what I want to, and still make money. I like to think of it as a daily and incremental refactoring of my life.

I have a plan ... It's quite simple - I only work at jobs doing what I truly love. I am motivated and do my best work and my employer reaps the benefits too. Being almost through my second half-life, this has served me well for almost thirty years.

At my 15 year mark, I was learning perl, html, css and JavaScript at the 20 year mark, it was PHP, now nearing the 27 year mark, I'm doing SSJS. Stop? Heck no, I'm just getting started.

One of my uncles retired at 66 still writing COBOL.

And I guess I belong to a group who partied too much during their twenties. I am now mid-40's and finally have a game plan that should have me independently wealthy by about 55.

At first I felt impatient about that result, until I stopped and looked around and realized how many of my peers were probably never going to be independently wealthy...

Perhaps they've all moved over to the defense industry? I work for a small (25 employee) defense contractor. I am 32 and the second youngest software engineer in the business. 32 is also younger than almost all the engineers at my previous job. Forget being anything resembling a lead developer until you are 35-40.

Being in my mid thirties I've seen many colleagues and friends go into management because it was the thing you do when you reach at certain age. Some returned to development and some stayed in management but they all at one point admitted "I miss development so much, I just want to code".

I recall making many plans (5-year, 10-year, 15-year) when I first graduated. It's funny looking back at some of my original plans to see how things varied so much.

The key is to stay flexible, always be willing to learn and set your priorities. Try to put yourself in positions where good things can happen. The path you take will likely vary greatly from what you envisioned, but if you achieve what is most important to you, then you have succeeded. There are many definitions of success, so be sure to measure your accomplishments based on your own definition.

I love IT, and I love being a code monkey and staying a working programmer with my various startup projects, but let's face it: although well-paid, the world treats programmers like crap. Long hours, working weekends, staying on call, impossible deadlines, complex and ever-shifting technologies, and high-stress deployments. It's no wonder that the people at hot-shot firms all look like they're in their 20s.

Some folks just get caught up in, well, life. They have kids, a house, and grow a life and hobbies. That means that they are no longer staying current, and their heart just isn't really in it any more. After you've kicked ass and conquered the world with code a dozen or so times, you've gained weight, you're missing out on the rest of life, and there are just a dozen more impossible missions ahead of you. It never ends. I'd throw out some kind of pithy remark like "work at a sustainable pace" but the sad truth is that a "sustainable pace" for a 23-year-old is not the same as it is for a 40-year-old. Not even close.

I like the model I've seen of moving great programmers into lead roles (with PM-type duties) and then "uber lead" roles, which also include some program-management duties. That way you keep your technical talent close. It's easier to teach a programmer business than it is to teach a businessperson programming. This idea that we move good programmers out simply because they start acting much more like middle-aged people than college students is hurting the industry. In my mind, the MBAs are much more expendable than some guy who has just spent 15 years of his life learning our business systems inside-out.

I, too, also love IT and programming. But lately because of the re-hash after re-hash (SOA vs REST, Java vs .NET vs Ruby, JavaScript, Functional, polyglot, Agile, XP, Scrum), I'm kind of losing it. Seeing programmers swinging their d*ck around saying language X is better or how their favourite tool is better drifts my heart slowly away.

I felt like I want to be a team lead or a manager whipping undisciplined developers to get better at ever lasting all-around skill as opposed to jumping between bandwagons too early.

So I made a decision to work my butt off in people skill, communication (and writing of course). Decided to branch out into PM and BA as well.

We'll see how things will develop.

I hear you. As a 46 year old "senior technical lead", I have to be choosy about what new things I commit the time to delve into.

That said, sometimes the little things matter, but you have to trust your intuition about the big picture to determine which techniques may be important in the near future, as be willing to understand that some of these technologies really are largely equivalent in many ways.

If I can just get my juniors to stop writing N*100 line subroutines, ironically coupled with "kangaroo code" with too many useless abstraction/indirection layers, and learn enough about the functional style (even though working in Java -- AKA "Object COBOL") to write small routines with clearly defined inputs and outputs, I'll be a happier man at this point.

Long hours, working weekends, staying on call, impossible deadlines, complex and ever-shifting technologies, and high-stress deployments.

Maybe I'm just lucky, but that hasn't been my experience at 3 companies over 15 years. Occasional crunch time yes, but overall I've averaged less than 45 hours a week.

I like the model I've seen of moving great programmers into lead roles (with PM-type duties) and then "uber lead" roles, which also include some program-management duties.

What's worked for me is putting a great PM on the team, where she (they've invariably been women) gets whatever information she needs from me, and then goes off and does the scheduling and meetings and internal negotiations that would drive me crazy if I had to.

I love EMS, and I love being a trauma junkie and staying a street medic with my various emergency services, but let's face it: never well-paid, the world treats EMTs and paramedics like crap. Long hours, working weekends, staying on call, impossible deadlines, complex and ever-shifting technologies, and high-stress responses sometimes involving deadly diseases and gunfire. It's no wonder that the people at ambulance firms all look like they're in their 20s.

Some folks just get caught up in, well, life. They have kids, a house, and grow a life and hobbies. That means that they are no longer staying current, and their heart just isn't really in it any more. After you've kicked ass and conquered the world with trauma saves a dozen or so times, you've eaten too many donuts and too much stale coffee and too little exercise and gained weight, you're missing out on the rest of life, and there are a never-ending series of impossible missions ahead of you. The calls never end. I'd throw out some kind of pithy remark like "work-life balance" but the sad truth is that a "sustainable pace" for a 23-year-old is not the same as it is for a 40-year-old. Not even close.

I like the model I've seen of moving great street medics into lead roles and senior roles, but there just aren't enough of those roles. You could keep your technical team close, but it's easier to train another new, green paramedic than to keep a senior EMT or medic from burning out. This idea that we allow good EMTs and paramedic to burn out is hurting the industry. In my mind, the MBAs are much more expendable than some guy who has just spent a decade learning our patients and our regional medical system and that ever-shifting patient IT system inside-out.

What you are missing is the inherently multi-disciplinary nature of programming. People who develop deep technology solutions by necessity have to get a crash course in whatever business system they are automating and improving. If you spend 15 years working on various projects, you have not only stayed current with a shifting base of state-of-the-art tech, you've also been exposed to critical parts of operations and learned what the issues, risks, and drivers are. You don't get that in the EMT world, or the brain surgery world, or the nuclear physics world. In those worlds, you have a single industry and set of problems that you live inside for your entire career.

There's also a huge bedrock of many business-related disciplines that don't change. Want to be a manager? I can throw out every book written in the last 20 years and still sit down and put together a damn effective course in management. Want to learn accounting? While GAAP has changed, many accounting systems are still using the double-entry ledger system that was in place in Dickens' time. The business practices of running an A/R system now is going to look very much the same as running that kind of business did in 1980.

Yes, it's true that great performers in any field will naturally pick up a bunch of things in other fields, but these are mostly peripheral to their job, not a critical part of it. Pilots may learn a bit about how radios work, but it's not the same thing as spending two years writing software radio code. Technology development is unlike any other field of endeavor because it is a meta-discpline: it encompasses all other disciplines. Everything you do in life, including being an EMT, is being assisted by technologists somewhere. Programming and technology development is the bedrock of every other kind of activity. Good technologists are not only experts in one area, they are experts in learning new areas. This is one of the reasons why Google is involved is so many things and so many other companies are not. You have a breadth of capability with 40,000 generic engineers that you simply wouldn't have with 40,000 rocket scientists, fishermen, or history majors.

I well understand your point, and I respectfully disagree.

There's a whole lot more practical knowledge outside of the technologies and tools that the programmers know about and use.

Some of the least educated folks I've worked with are arguably the smartest, and the most practical. Some of the most educated can be the most useless. You never really know what you're going to learn, and from who.

EMTs and firefighters or other folks working in other vocations outside of programming are commonly designing and building and experimenting; you'd be surprised what some of the folks have come up with.

As for the technologists, a lack of field skills or a lack of experience can work detriment of what the programmers are implementing. You need look no further than much of the medical equipment to realize how little the programmers involved truly knew about the problem. (And that's from my own experience using the devices, as well as many years of programming similar systems.)

Everybody thinks they're special, of course. And ego kills brains. Which was my point.

Maybe part of what this article is observing, is that so much of life has a 15-year half-life. Your family, your situation, your wife, the economy, your 'career', what you think you love. If any of this resembles exactly what it did 15 years ago, you're the exception, not the rule. It is change that is the constant.

Ok, before I go and offend a bunch of people, let me explain that I'm describing how things are, not how they should be. A lot of the aspects of the business world that I'm about to describe are morally wrong and deeply disgusting. I'm not defending those.

First, technology is a lot less ageist than mainstream business (i.e. BDC-land).

Here's the thing about corporate culture. Anyone or anything (a group, a project) that is judged to be not successful (regardless of reason, regardless of whether it's that person's or group's fault) is avoided like a corpse. What ageism is about is the (often unfair) negativity directed at people judged to have underperformed their age curve. In mainstream business, there's an expectation that a person will be in an informal leadership role no later than 32, be in an official leadership role (i.e. manager or executive) by 35, be a VP by 40, (S|E)VP by 45, and CxO by 50.

Here's where sciences and technology have an edge. There's absolutely nothing wrong with being a non-managerial programmer, scientist, or mathematician at 40, or even at 60. The best tend to peak later (with a few notable exceptions) so most of them are just starting to do their best work at this age. I repeat, there's nothing wrong in technology with being non-managerial at 40. No one looks down on you for that if you're great at what you do.

Contrast: in mainstream business, if you're still at the analyst/associate level doing line work at 40, no one will want to talk to you. Most investment banks have one "adult analyst" (i.e. someone in his late 20s or 30s working alongside college kids who use "steak sauce" as an accolade) and his co-workers mock the hell out of him behind his back.

There is a catch: by 35, you have to be really good, and you should probably have more than one specialty in which you can out-perform 99% of the competition. By that age, it's not enough to just be talented; you need to come with a seriously formidable skill set. The upside of this is that in technology, working hard and working smart means you will be good. The technology career is quite volatile but it's pretty easy to have reliable, steady improvements in one's level of skill. This is a lot better than mainstream business (banking, biglaw) where people can be passed over for no reason at all.

Money comes and go...but everyday passion is priceless... Don't worry about your old days...tomorrow is right now... 'Stay Hungry. Stay Foolish': The best Steve Jobs quotes

15 years??? How the frakking fsck do you guys endure writing boilerplate, filing TPS reports, going to meetings, and listening to PHBs for that damn long?

I'm not even 1 year in and I'm already busy executing my plans for freedom (by starting my own business, for instance).

Then again, I guess I don't have a single lick of salaryman in my bones. Others may relish the thought of a holding down a comfy desk job and not having to make your own decisions about what to work on.

I hate to break it to you kid, but no matter what you do you'll end up writing boilerplate, filing reports, and listening to assholes spout nothing on a very regular basis. Thats how business works and why it can suck. Running your own business will likely mean you have to endure more of these life-sucking tasks (but only until you hit the big time, right?!). This isn't to say that we must all resign to this fate, but you're deluding yourself if you think that self-employment or startup work is all that much different at the end of the day.

Its hard to read your comments in this thread without thinking that, no matter how proud about yourself you are right now, you're exactly the type who will fall to attrition within a few more years of your career.

Upvoted for brutal candor. I refuse to be that pessimistic about the future, though. There has to be a way.

That's the right attitude. :)

Maybe, but tech is an odd field in that there's so much money floating around, so plenty of "non-standard" approaches work better than elsewhere. Depends also on your needs: the bar for making $150k is much higher than the bar for making $50k. Heck, one of my college friends is currently traveling the world while doing part-time Ruby consulting and part-time tending to his passive income websites, with relatively low bureaucracy. It's not the big-time by any means, but also relatively independent. Tempting...

Definitely tempting, thats the dream for me. However, do you think he'll still be living that lifestyle for the next 2, 5, 10, 25 years? I'm working toward that dream every day, but its a purely temporal thing.

Even the $100k+ engineer salary talk around here isn't necessarily a realistic goal either. Sure, there's always been people making that sort of money but not to the extent that they do now. Is it a safe bet to gamble that you'll still make that money in their in positions? Is it a safe bet that salaries will keep going up at this pace, or that life will stay at a pace where you can afford to work so much?

Again these are my dreams and goals too. But its just not safe to walk around with blinders on all day.

"This isn't to say that we must all resign to this fate, but you're deluding yourself if you think that self-employment or startup work is all that much different at the end of the day."

The work may not be different. However, you have much more freedom in your choices and at the end of the day, your reward is much better for having to deal with boiler plates and life-sucking tasks.

I'm running a startup now and I've never felt like I've been wasting my life. I do, however, when I work for other people.

Yeah, exactly. It's not that I'm lazy. It's just that I want to do something meaningful and on my own terms. I have much more value to give to the world than I can express in a 40 hour a week coding job.

I crave the three elements of intrinsic motivation: Autonomy, Mastery, Purpose. More on that here: http://lateralaction.com/articles/dan-pink-rewards/

The interesting thing at least for me is that I find myself going full circle. Started coding on the c64 and Amiga then moved up the level of abstraction to java, ruby, javascript and now moving down to harder problems in javascript, c, c++. I figure since Moore's law is pretty close to dead, the cost payed for abstractions will start making older closer to the metal languages come back in fashion increasing the need for more "hard" knowledge in the next decade or so.

"I'm already busy executing my plans for freedom (by starting my own business, for instance)

Ah, one of my favourite fallacies. Hate to break it to you, but starting your own business more often than not leads you to have to do more things outside of your comfort zone or strengths, not less.

It's for this reason that businesses need...business guys, and also why tech people undervalue that need. It allows the engineers to engineer things.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact