As a developer that is much closer to 50 than many here are, I can say that it's a crapshoot whether I will be programming when I'm 50. I tired of it after a handful of years, but decided to stay on with it because I can't afford the paycut, and am still am going with it, getting close to 15 years now. But everyday, and I've tried another employer, I still can't stand it. I enjoy the freedom and art and creativeness, but when things don't work, which happens a lot, I waste time on it and feel stupid and depressed. Feeling smart 1% of the time and stupid 99% of the time and worrying about whether you will be able to continue it without getting fired is a horrible way to live. It has affected my health, my attitude, and makes me drink more than I should at times. But, we justify this with "we are making a good living".
Common things I think about doing are (1) buying and running a bar, but then I would have to deal with the alcoholics, prostitution, drugs, and other crap that goes with it (not worth it) and would feel that I was contributing to an evil in our society even though I love beer and good times, (2) selling old computer equipment and games (there is little money here, and I'm not a hardware expert, so screw that), (3) getting involved with my church (but they don't need more IT, I'm a developer anyway not IT, and I have no idea what else I have to offer), (4) helping humanity get into space (but I have little to offer there also), (5) developing Indie games (which I've done in the past to some extent, but I think that writing games just means that people will waste time away from their family and solving problems playing them), (6) going to work for a non-profit development group (but I'm a conservative, and I can't work with tree-huggers even if I have a very liberal opinion that software should be free or open source, which I realize is not the same). So instead, I take care of my family.
I would suggest teaching programming to those who may never have the chance to learn. It would benefit society and your own spirit. There's plenty of ways to go about this and many of them can provide a nice living.
Above all, I would suggest that you find one thing (outside of work) that makes you happy/fulfilled and jump headfirst into it. Community service, outdoor sports, painting, drums... whatever. You'll be less frustrated and more pleasant to be around at work and at home.
Markets and capitalism are supposed to fix this fundamental problem (archaic, stupid leadership) by reallocating resources where they can be best put to use, by this isn't a problem that mere computation (as in a market) can solve. The problem is that power is held by the wrong fucking people, most of whom are total imbeciles with no vision, and the runaway feedback loop where power and wealth beget same is too far gone for talent to break in and change things.
US-style corporate capitalism is an outright disaster but, while EU-style socialism makes life suck a lot less for average people, it doesn't solve the underlying problem either.
Eventually, the discrepancy between what's possible with technical creativity and what's being actually done out there will reach a critical point and, like an insulator breakdown, sudden and powerful change will happen. I have absolutely no idea when that will happen, though. We have to purge and recreate the whole industrial ecosystem in order to get to the kind of world that people like you and me want-- a world driven by creativity and challenging problems rather than subordination and nonsense.
> I enjoy the freedom and art and creativeness, but when things don't work, which happens a lot, I waste time on it and feel stupid and depressed. Feeling smart 1% of the time and stupid 99% of the time
Yeah guess what, that same thing gets at me ever since I started programming. I still like doing it, but that aspect is truly increasingly an issue in the activity since late 20s / early 30s now. How enjoyable you spend big chunks of your lifetime does matter after all, and you increasingly get that horrible nagging "time's flying faster every day now, I'm running out of a fixed resource one compiler error at a day" feeling..
(1) Knowing what's possible or will be possible with cutting-edge technology
(2) Understanding the pulse of the market
Each skill is already rare, but having both is an incredible combination.
Any task where our experience is of value would be satisfying for me to do. Unfortunately we have all these stupid kids around in our way thinking they know it all better than us. The worst is the regression of html, xml and javascript we are forced to use but are shit. All the good thing of "old" languages are lost.
Note that the languages will change, but the fundamental concepts and principles remain the same.
@chmike Personally I still learn very rapidly and when I integrate it with past experience it's very powerful. I make the joke that I'm like a diesel engine, one crank is equal to 10x the lawn mowers some younger programmers are using. That said I love learning new stuff from the younger crowd, I'm convinced they keep me young because they inspire me and I try harder to keep up while sharing with them the mistakes I've made so they hopefully avoid a couple of them! :-)
C isn't horrible at all. I'm one of those guys who find beauty in simplicity, so I consider C a very beautiful language. It's simple, efficient and extremely powerful. It's easy to learn but hard to master. All in all it's really all I look for in a programming language.
What I find particularly great about writing C code is that it keeps reminding me that programming is really a craft. I'm exaggerating a bit, but it feels like putting together something step by step, taking care of all the details, much like a clockmaker would, to produce an end result that works really well. Sure, it is probably more demanding than more modern languages but to me it's more rewarding as well.
It's 7am on a Saturday and I've been up benchmarking and optimizing on my free time. I figure it keeps that part of my mind sharp so it's ready when I need it. And besides, it's actually fun!
"Creator's machismo" and "intellectual exercise" are definitely both reasons I'm at this.
Well, I wouldn't say its horrible :) I suppose I'm a "kid" here at 25, but I've been programming in c since I really was a kid and I love it. And even though people are always ranting about some other new awesome languge, fact is, if you need to program a driver, or basically do anything thats really os/hardware programming, c is still by far the best choice out there.
The one thing I've found I need as I age is to exercise more and more just to keep my energy level up. I can do all-nighters with the youngest of them (but maybe that's genetic because my mom's still doing them too and she's pushing 80), but I pay a horrible price if I get out of shape.
And before someone objects, I actually like the occasional all-night binge hackathon - all things in moderation - I just bring better quality food than pizza and coke these days.
I'd love to know because my current understanding is that C++ has the same performance as C, but includes the STL which prevents you from having to reimplement more convenient data structures that handle memory nicely (like vectors) yourself.
The ability to create classes/objects is nice too and the language doesn't take away any of the freedom you're given in C either.
Am I missing something about it? Is it just more familiarity with the older language that makes it more comfortable?
History repeats itself.
Full screen apps, to me are a throw back to the 80's (before Windows and the Mac); and "Cloud Services" sounds awfully like time sharing to me; Centralized access point for distributed data reminds me of running apps on the old mainframes; Time Machine - real time TMS (backing up to tape in real time) - the list goes on and on.
All the kids thinking they invented new ways to share and use data. I feel like I'm knocking on a door reminding them that none of this is new. It's just been re-branded.
He has been there and done it all: punch cards, assembly, VB6, managed a development team and worked for 20 years as a Project Manager.
He told me a few weeks ago that he never wants to retire. Work less - sure - but he doesn't want to stop. And with an ability like his, he won't need to.
In 30 years, when I'm 62, I want to be like him :)
The problem older programmers face is that the world as-is still defines engineering as a subordinate role, and people know from experience that it usually ends badly when an older person has a younger boss. Maybe it "shouldn't matter" in some PC fiction world, but in the real world we actually inhabit where people are primates, it matters a lot.
Just as tall women and short men are "diagonalized out" by being contrary to society's expectations regarding height in coupling-- there are much more politically incorrect diagonalizations in dating, but I'll side-step them-- young people don't often get to manage (even if they could) and old people are disqualified for subordinate roles. The business world invented advisory positions for this purpose (the semi-retired older employee is effectively non-subordinate, because he doesn't need the job to retain an income, but isn't a full-time executive). That's how it finds a use for active older people who are ineligible (often because they just don't want it) for full-time executive positions but have extremely valuable experience and relationships. Advisory positions keep skilled older people from being diagonalized out by the traditional subordination model.
What's needed to fix this problem is for engineering to become closer to an advisory relationship than a subordinate one. If engineers had the level of autonomy seen at places like Github and Valve, age wouldn't be nearly as much of an issue. Right now, people look at a 55-year-old code monkey as a chump-- he's that old and he's still taking orders? But there is absolutely no reason why a 55-year-old can't program; it's the subordinate context rather than the work that is the problem.
I've been in jobs that I have no motivation for. It's a bad deal for me, and my employer, but especially for me in terms of opportunity costs.
http://www.helpguide.org/elder/alzheimers_prevention_slowing...
1) From a user experience / marketing standpoint - (target demo's have a better grasp of their own likes and "dislikes" when engaging an application.) - if one of the targeted demo.
There are "discoveries" that usually happen through conversation. A mature programmer can provide an entrepreneur perspective or another idea to improve the product due to the architecture of other programs (built in the past).
2) Depending on the Programmer; the older way of training code revolved around meticulous detail) - also very helpful sometimes in avoiding bugs.