Ask Slashdot: Am I Too Old To Retrain?
Talcyon writes "I'm a 40-year-old developer, and it's become apparent that my .NET skillset is woefully out of date after five years of doing various bits of support. I tried the 'Management' thing last year, but that was a failure as I'm just not a people person, and a full-on development project this year has turned into a disaster area. I'm mainly a VB.NET person with skills from the .NET 2.0 era. Is that it? Do I give up a career in technology now? Or turn around and bury myself in a support role, sorting out issues with other people's/companies' software? I've been lurking around Slashdot for many years now, and this question occasionally comes up, but it pays to get the opinions of others. Do I retrain and get back up to speed, or am I too old?"
I've been lurking around Slashdot for many years now, and this question occasionally comes up, but it pays to get the opinions of others.
Right, this sounds somewhat similar to this question and you can take or leave my old advice. Some good replies to my post as well.
I don't get it. This is such a fatalistic and defeated attitude! Will I, too, give up the ghost at age 40? I don't think you're ever too old to learn something knew but I'm 30 years old and my idea of a fun weekend is reviewing a book on a new fledgling language or framework. And there's plenty of room for criticism for me concentrating on diversity rather than depth.
I'm a 40-year-old developer, and it's become apparent that my .NET skillset is woefully out of date after five years of doing various bits of support.
I'm sorry. Honestly, I really am sorry. I don't like that framework, I don't like that language. Also when I was growing up it was largely a "pay to play" realm and largely still is (although I know I can get my hands on an express IDE).
I tried the 'Management' thing last year, but that was a failure as I'm just not a people person, and a full-on development project this year has turned into a disaster area.
Again, a fatalistic attitude. It's possible you never found a good role of management for you. It requires more time but there's always a "lead by example" model for leadership. It's not as easy as delegating but you can earn a lot more respect. It does suck up a lot more of your time though. Also, good companies offer at least two ways to advance in development. One is management and the other is technical lead. If your company has technical leadership roles you could look into them.
Do I give up a career in technology now? Or turn around and bury myself in a support role, sorting out issues with other people's/companies' software?
Look, if you hate your job, get out of it. I don't care if you're 40 and have a mortgage to pay, start looking for something else that makes you happier than where you are now. Life is too short. You can't waste years hating your work. Support role will probably pay the bills but it's gonna suck, I suggest you give it a go and pick up some new languages in your free time and work on projects that you can host on github, Heroku or some VPS even if they are just functional and have no users. You can at least put those on your resume and say "I made this by myself and I can make stuff like this for you."
Do I retrain and get back up to speed, or am I too old?
It would be a lot easier if you were asking me how you get from A to B but what I'm hearing is "I'm at A and it sucks so do I retrain or what do I do here?" Tell me what you want to do, tell me what satisfies you at the end of the day and I'll tell you how to get there. That "or am I too old" part at the end of your question isn't even an option. It's quite inane, actually. How daft would I have to be to say "Naw, dude, you're forty years old, you're long in the tooth, your bones are half dust, you've got one foot in the grave, you're on borrowed time, give it up already and just roll over. Me, on the other hand, I'm never gonna be in your shoes, no sir. Gonna be twenty one FOREVER and Java's always going to be the de facto standard or I'll just YOLO out." I mean, seriously, who's going to answer that way?
My work here is dung.
... oh, wait, I'm 46 years old.
Other than that, the entire original summary could be me ... spooky.
"Flame away, I wear asbestos underwear"
I never ask myself this question. When faced with a new technology I dive in, start tearing in with gusto, and master it.
If you need to ask yourself this question, maybe you are just tired of being a developer in general.
/thread.
... it's not because of your chronological age.
Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
Personally, I've never understood the idea of needing to be "trained" to program or build software or systems. Why not just figure out how to do it? If you can't figure out how to solve problems and be valuable in something besides VB.NET, then maybe age isn't really the issue.
40 years old is so young if you take care of yourself! I'm pushing 40 and I know as well as when I was 20 that tech is what I love to do and that's what I am going to do. I have noticed changes in getting older, like getting in the zone takes a little longer, but using age as an excuse to not get the job done has never entered my mind. Figure out what you want to do, and fricking do it!
Which tells me it's not your age ... it's your ability. You have none. Oh, and I'm a 45 year old .NET 2.0 developer who has just learned .NET 4.0 for a new job, with a 20% raise.
Your in technology, like it or not this is a field that requires more continuing education as a matter of course (if not law) than a lawyer or a doctor. You should never ever be retraining or training. Instead you should constantly be working on your next thing skill and never ever become complacent.
You can't afford to work in this field in a job where you know everything. You have to find a job where you have 80% of the qualifications so that you can learn the other 20% and expand your skill sets. If you don't you become the expert who is 100% qualified at something that was relevant five years ago. The expert who is 100% qualified is also known as tomorrows dinosaur.
Never, ever rest, never ever allow yourself to be in a position where you cannot be challenged. Whatever job you find, it has to be one where you are picking up new skills and learning new things - whatever those new things are.
I have also learned it can help to talk to your managers and explain that you want to start learning more about the business side or whatever else you have an interest in. It is called initiative and it will set you apart from all the other people that show and simply do their job.
I was in your same position in my forties. An old mentor gave me this advice...What is the general area in computer technology that you like to do and then build on that. Building, in my case was finding a job in data architecture (starting position) and start doing and learning. This way you are interested enough to slog through the learning curve and still getting a pay check. Hope this helps,
I hope this caused some synapses to fire.
40? Seriously? You've got another 24 years until retirement so you better get your head in the game.
Tried management? Okay what went wrong? Did you just hop in without any personal and professional development? Take classes, do things like toastmasters, you need to refine your skills.
On the other hand maybe you want to stay on the technical side. First realize you are in control. You let yourself get out of date YOU need to fix it. It's not like the concepts are all that foreign. Put your nose to the grind stone. Take classes, join open source projects, Most importantly you're going to need to change jobs. You are likely typecast as the old guy with out of date skills. Figure out what strikes your fancy be it more .Net or Web Stuff, JavaScript whatever.
I would only leave if you truly aren't enjoying computer work anymore.
I find the problem is not so much age but family. I've got 2 kids and I can't spend as much time engrossed in tech as I used to. This is depressing, but I rely on my coworkers to understand as I grow as a person into, hopefully, something more than the straight tech I was before as I learn patience and other traits from having to deal with my life as a father and husband.
I am 51, and currently enjoying the best phase of my career to date. Front end development -- lots of work for JavaScript/jQuery developers at present, here in Minneapolis/St. Paul.
The best part is, I seem to be getting more respect as a Senior Man in my field ... mind you, that's not my job title, I'm just another contract developer ... but I hold my head high, let my confidence shine, and enjoy the generous measure of respect that people seem to give me.
Twenty years ago, my assumption was that I would be obsolete within twenty years, and that I should expect to degrade (as gracefully as possible) from developer to technical writer. That hasn't happened: I'm still a developer, and more in demand than ever.
This is only possible, I suppose, because I love to learn; in effect, I am constantly in training. If you have a similar mindset, I would advise you to Go For It.
-kgj
When I was in my 30's everyone told me that I wouldn't be getting jobs in my 40's.. I spoke to a lot of people at the time who were older and leaving the business because they could not get hired. At the time I thought such people just weren't keeping up with the times or were just B level people. Wrong. As I turned 45 and older I found less and less people willing to hire me.
:(
The problem is not in your ability to learn new tech most likely - the problem will be that people will not want to hire you. Why is this? Several reasons:
1. You cost more. Even if you are willing to work the same wages you will be perceived as costing more.
2. Your medical insurance costs to the company will be higher. Even if you don't actually use that insurance the company will be charged higher rates if they have an older workforce.
3. You will be perceived as willing to work less. Maybe you have a family or heaven forbid - a life! Unlike a 22 year old who likely has neither of these things you will probably be less likely to work 60 - 70 hour weeks on a salary.
4. Your boss will likely be younger than you and knows less. Hence you will be perceived as a threat.
So welcome to the wonderful world of I.T.! Now go away
Your best options for future career are to get out of development and into management or to start your own business.
Me? Eventually I opted to get out of the field and am retraining as an RN.
----- In Your Cubicle No One Can Hear You Scream...
As Anonymous Coward said, you just about said everything that needs to be said.
I'm in a partial management role. I suck at it. I've bought books on the topic and I'm trying to learn from my mistakes. But as much as I enjoy teaching other developers and learning from them - and I genuinely do - I like designing and writing code more.
There are free online learning courses at coursera.org and codeacademy.com and MIT Open Courseware for learning. If you're not ready to write an application for Heroku or Red Hat OpenShift, take a few free courses to learn the concepts.
Something I finally started to learn in my early 30s is that for most people most of the time, if you get really good at something difficult, it will become entertaining for you. Learning how to write my first programs sucked. Even working on code in a lot of my 20s sucked. But in my late 20s and now 30s I had kids and if I didn't get pretty damn good at my job, I couldn't command the salary I needed to pay the bills. I started busting my ass to go from low-mediocre to something better, and suddenly I was having a lot of fun. I can't judge my skills now, I'd like to think I'm competent but I may be barely past low-mediocre. Regardless, I can do a lot more than I could before at a lot faster pace, and I get to tackle interesting problems instead of relatively routine things. Those changes make the job fun in a way I never imagined even as a teenager dreaming of writing video games.
Now get out the way old man!
Oh wait, I'm older than you... All kidding aside, as long as you are still breathing and conscious, its never too late to learn something new.
---- Booth was a patriot ----
First of all, I'm a mite suspicious that this article is a plant. If being behind on .net was a career killer, we'd have folks jumping off their squat, ugly tilt-ups right and left. It'd be like 1929, with geeks.
At 40 the sky's the limit. At 40 I moved to a different state, got a job in a different field (shifting from tech to marketing) got married and had a kid. At 45 I changed careers again, (tech management) and again at 53 (business intelligence). Age is a number. It's will, focus, and energy that's important. You can always retrain, regroup, and succeed, if you have the will. Reading your article, I suspect you're having fun with us, but if you actually feel that way, and don't just need minor assurance, you've already lost.
Short answer: You can hone your skills or retrain at any age. If you think you can't, that'll be true also. It's up to you.
Oliver's law of assumed responsibility: If you're seen fixing it, you will be blamed for breaking it.
"I tried the 'Management' thing last year, but that was a failure as I'm just not a people person.."
Not people persons are perfect for the job, take a few breath courses, so that you can yell at people without exerting yourself and you'll be OK.
Gimme a break! I *began* my software engineering career at 36 after leaving an electrical engineering career, and I am still going full steam ahead at 62 (including earning a MSc in Computer Science at 51). I will consider myself too old for something when I reach 124. Until then, I see no reason to stop doing what I love. Ask yourself why you cannot do the same.
I'm 42. I've been a Unix/Linux sysadmin since I was in college -- about twenty years now. Or I was. You see, last year, I got a job with a new company, and after I'd been there about four months, my boss came to me and said, "Hey, you know how we've been looking for a new programmer? Well, we noticed you'd done some programming in the past (which I had, in college for my CS degree, as a hobby, and writing Perl and Bash as a sysadmin), and we're having a much easier time finding sysadmins than programmers, so we're wondering if you'd consider trying being a programmer."
I said yes -- with the agreement that if I wound up really hating it, I could go back to my old job. In the six months since then, I've gotten up to speed with modern Java (last time I'd touched it was way back when Sun was originally introducing it) and the Spring framework. The programmer who did most of our DBA stuff left in the course of that, and since I was the guy who was least important on the programming side of things, I also got tasked with taking over that -- so I'm learning MySQL administration now.
It's working out fine. I've found that I can't do like I used to in college, and read a book on a new subject and retain a ton of it without any real effort... but I don't need to. I've got enough general tech background knowledge that I can quickly find out what I need to know, when I need to know it. The stuff I do on a regular basis starts to stick pretty quickly -- and for the minutiae, it's really enough that I can remember "Oh, I read something about that." These days, with Google, if I remember that much, I've generally got the answer within ten minutes. Often less.
Some of the stuff I'm learning, I'm having fun with it. Some of it I'm not, but hey, it's a job -- if I enjoyed it all, they'd make me pay them to come here. And my old knowledge is still coming in handy -- when the systems crew can't figure something out, they come to me to ask about it. My old non-Java programming experience still applies in a lot of ways, and my knowledge of networks and Linux is often useful as well.
Honestly, unless something goes physically wrong with my brain, I can't see me ever stopping learning -- hell, my dad's in his 70s, and he's still learning new things keeping up his hobby of restoring and working on cars. It might get slower, but really, the big thing is just to keep going. If you give up and stop, you definitely won't learn whatever new thing you're trying to learn.
If you like what you do (i.e. develop in .Net), getting up to speed isn't that hard. The differences between .Net 2.0 and 4.0 aren't all that great. If you're worried that doing it on your own won't be enough, take a class. There are tons.
But your tone suggests that really the problem is you don't want to make the effort. I understand that. I'm 43, and often when confronted with the need to learn some new technology, I feel loathing rather than excitement. If that's your problem, then maybe it is time to switch careers. Congratulations on deciding you're not a good manager. Now find something else.
VB.Net is not a toy language. It is exactly as capable as C#. I do think it is uglier though. As to the original question, No its not too late to retrain. It never is.
If you enter the work force in your early 20's, at 40 you're less than halfway to 65, which is a "normal" retirement age... in other words, at 40 you're still in the first half of your career. No matter what you decide, it's not because you're "too old" that you'll succeed or fail. But in technology it really pays to like what you do and be willing to try lots of technologies, languages, systems, etc. Do side projects you like and if you find one you REALLY like see if you can make it your job. Or just find the highest buck-for-the-bang, slog through your workday and spend the money on insanely fun weekends and vacations. There are a lot of paths here, and I don't think Slashdot can tell you how to live your life.
(Disclosure: I'm 39)
E pluribus unum
I'd elaborate on the parent post, but it's hard to, since he covered a mountain of ground.
I'm approaching my mid-40s. I'm still learning new things, almost on a weekly basis as new things pop up. In my humble opinion, OP is approaching the question wrong - it's not "should I re-train", it rather should be: "...why did I let my otherwise continuous training slip so horribly?"
I know the answer, sort of. It's hard to get deep into a new language when the kids bug you with requests or questions that never end, and the wife wants to know when you are going to put that damned laptop down and cuddle with her in front of some stupid chick flick that you'll instantly forget once it's over. On the other hand, in this biz, you have to keep the training continuous. Slow down, and you fall behind... unless you specialize in COBOL or FORTRAN, falling behind too much is pretty detrimental to one's career.
As for the management thing, maybe it was just a shit position? I've done the management thing, and still do when the job calls for it... I find that the 'people person' skills are a minor (albeit powerful) part of it - the majority is paper-shoveling and leadership, coupled with a knack for keeping a billion disparate tasks prioritized as they arise and (hopefully) in deadline. I've seen asshats with a complete lack of people skills succeed wildly in management, simply because they can keep ten thousand different priorities and tasks all wired tight and done on time. May want to give that another go, but do it in a way that you report to other people - hopefully under people who are good mentors this time around.
Overall, yeah... it sounds like a life change/decision. Personally, follow what you love to do, and to hell with the rest. Dying a happy old retired garbageman or janitor is far preferable to dying as a miserable middle-aged CEO, yanno? It's your life - do what *you* want to do with it. Even if you (eventually) retire as a code-monkey? If you enjoy it, then for heaven sakes - do it!
Quo usque tandem abutere, Nimbus, patientia nostra?
VB.Net is not a toy language.
Of course not. Toys are supposed to be fun.
- Otaku no naka no otaku, otaking da!!!
I don't get it. This is such a fatalistic and defeated attitude!
The original poster wants a reality check. He wants to know a realistic path and idea of what he can do.
If you keep at it not wanting to be a "quitter" and never getting any bites or feedback, one eventually has to wake up and smell the coffee. And in IT, the attitude is if you're out of work then there's something wrong with you so get the hell out! So we're SUPPOSED to "quit" because we're no good. So, _I_ can't blame him at all for his "quitter" attitude.
The parent's post above is a nice vague motivational "get your ass in gear" type of thing, but offers no concrete advice and is completely worthless.
I myself was in the same situation. No one was able to give me concrete advice. Just generic pep talks such as the parent's and I didn't want to be a "quitter". So I kept going and beating a dead horse.
Here's my 2 cents:
If you do not have paid IT experience in the last 12 months, it is extremely difficult if not impossible to get another job. Over 12 months? Just leave the field. That's how bad it is. I know - I lived it.
Moving from one role to another in IT is very difficult. Hiring managers want recent experience in exactly what they're looking for. If you do not fit that their requirements, you're pretty much screwed. I've been out of work for years trying to get back into IT, taking classes, networking, and I can tell you that I wasted too much time and money. Being out of work is the kiss of death and there's no way of getting back in.
Then after years of struggling to get hired, I was finally offered this advice from an IT manager - "maybe you should think of getting out of IT". Finally someone who was blunt and gave me feedback.I wish I got is YEARS ago!
Sometimes, the most prudent thing to do is give up and change course.
P.S. And the implication from others that I'm somehow defective, really wears on you to the point where you start to believe it. And I can tell you, the IT field is the biggest offender.
Parent poster basically won the internet award for the day, heed his words.
Programming at it's core is creative work, and if that's what you love you need to stick with it a form that fulfills your passion and talents. For example, with your time in the field consider if you have what it takes to do more senior development work:
- it's not management though you will be responsible for code review and progress meetings
- you're less code-monkey and more architect which lessens the burden of bringing peak knowledge of new languages to the table
Q/A is also a relatively good side of things to consider. You need a functional understanding of code, but the work focus is shifted to your analysis skills on how real-world scenarios will beat the living tar out of someone's project :)
At this stage you're going to want to recognize your experience with software and the environments they run in as much as being able to make f(x)=y. It's very honest to recognize that you're not a people person, but that doesn't mean well-paying specialist jobs like what's above are out of your reach.
-Matt
--- Need web hosting?
You know, 40 wasn't where it it me. It was about 46 or so. And then it HIT me. I love learning, so don't get me wrong, but a couple years ago, I really noticed that stuff was just not sticking like it used to. Abstraction helps, but specifics come and go. I no longer try to remember them, Google search everything.
Agent K: A *person* is smart. People are dumb, stupid, panicky animals, and you know it.
Here's a hint. If you don't want to be sidelined as you get older, you must take all those years of experience and make them valuable.
People will hire you, at good rates, if you provide value. If they can get the same from a 20 year old, then they're not going to pay you enough to make it worth it. You have to give them something they can't get from a 20 year old.
Experience.
That means being better at your job than a 20 year old. Knowing when to make the right moves and when to mea culpa. Knowing what NOT to do. Becoming good at your job.
The original poster seems to have made the mistake that he didn't stay on top of things. And now he has a long hard haul to get back up to speed, plus he needs go the extra mile that makes him worth paying for.
If you didn't actually gain experience... that is, you just did the same things over and over without really thinking about it... then you might as well go flip burgers.
Otherwise, take control over your future.
If you need web hosting, you could do worse than here
That guy has problems. Age being the least of them.
20 minutes into the future
The problem is not whether he can actually retrain himself, but whether someone will hire him for his new .NET skills. 40 year old junior - or even regular developers - are rare: they normally want to be paid more than kids out of school, but don't have the productivity of the old .NET hands. Furthermore, even if he were to become a .NET expert, many companies feel that it is more efficient to hire a kid with some .NET experience right out of school and pay them a pittance, instead of forking of lots of money for an experienced developer.
A developer at age 40 should be getting very concerned about his/her career path. Old coders are not very common, and there's not much interest in hiring them. Architect is a very different skill set, and something that people are willing to pay an old person lots of money for.
So my recommendation: retrain, yes, but retrain with an eye on running developers, not being one. And by the way, being a people person is not a requirement for managing people. The question is, can you get them to do what they need to do, and can you remove roadblocks that hinder their productivity? Oh, and if you want to go into management, get an MBA. It's just a piece of paper, but unfortunately, it's an important one.
Those who can, do. Those who can't, sue.
I’m 49, jumped into LAMP from .net 4 years ago and loving it. Either learning new things trips your trigger or it doesn’t. If you’re just burned out and don’t get excited with new techie stuff, switch careers – the language syntax isn’t the problem.
It sounds more like you need to figure you what you want. What are you passionate about? What do dream of? Do it! Take big bag of knowledge and experience you earned and apply it to something you love.
You know, 40 wasn't where it it me. It was about 46 or so. And then it HIT me. I love learning, so don't get me wrong, but a couple years ago, I really noticed that stuff was just not sticking like it used to. Abstraction helps, but specifics come and go. I no longer try to remember them, Google search everything.
I'm 42 now, and have had a full-time .NET dev job for the last year. Before that, I was going back to grad school for a degree in Computer Science. I loved the education environment, but left because a) I needed the money (loans were stacking up), and b) this was just about the ideal position.
On top of that, I have never worked with .NET before, but the business was willing to take a risk because they needed the experience and were setting up a shop to take over a lot of legacy tech.
Turns out it was the best move I could make. There's only one other developer in the group my age; the rest are in their late 20s to early 30s--several with .NET only experience. But the other "old" guy and myself are pretty much running the place from an expertise point of view*, because depth of experience can matter more than single-language expertise. An array is an array, string functions work pretty much the same across the board, and it's more a matter of Googling "How do I do X in .NET?" than trying to figure out what the hell you need to do in the first place.
If you love learning, you never get stale; if you're tired of or worried about learning, find something that will excite you enough to want to learn how to make it happen.
* This is not to say that I am all that and a bag of chips--I struggle with the way .NET handles certain things, but I enjoy learning how to do it. And, if something isn't working, I can usually figure out what is going wrong on a fundamental level instead of just throwing in a cookbook answer and saying, "Magic happens..."
Also, I am sure that in a heavy .NET shop that's been around for a while, the story would have ended with me as "that old guy who didn't know what LINQ was," but my point is that it's not all doom and gloom.
Never confuse movement with action. --Hemingway
I'm 45 and a little over two years ago I got back into an engineering role after over a decade in management. It's never too late.
VB.NET is not VB6. It's not exactly a toy language. But everybody assumes it is. Also all object oriented languages and plattforms are basically the same. They mostly differ in syntax and libs. But the core principles remain.
.NET 2.0 isn't THAT old. They've added that WPF thing as new hotness in 3.5 and somewhat managed to make it run in 4.0.
Also this is the first time I've heard of REXX as a non-toy language. I remember it from my OS/2 days. What's next? TCL/TK? Hot diggity-damn. I've just shipped a version 1.0 of a product written in PHP running pre-packaged on a NAS just to see if it floats. Once the sales guys return with 5 sales and a couple of A leads I'll have it rewritten in something that allows the software to grow into something bigger. If somebody manages to chisel Michelangelo's David from a slab of marble using nothing but his eyebrows it is still a masterpiece. UML or no. And who the hell still does pure UML anymore?
Also
I'm a Java guy and have been since 1.2. And I wouldn't steep so low as to declare it the answer to everything. Least of which is reusability, You can avoid creating a complete mess in any language and have to constantly refactor to stay ahead of the curve.
20 minutes into the future
was it not sticking, or did you get to the age where you realised you didn't give quite as much a damn over the next damn thing that's been pushed as the next big thing only to realise it was just crap?
That's what happened to me, but fortunately I had already given up bothering to learn all the new nonsense that is designed to make you buy the next version of whatever toolset they want you to buy, and concentrated my efforts on actually making stuff that works (properly, ie I no longer really cared what technology I used, the product was the thing for me).
Mind, we're now doing an "agile" system that isn't anywhere near as agile as the iterative development I used to do 15 years ago... and the tooling is auto-conf magic bits that "just work" (yeah, right, until it doesn't). So maybe it wasn't me but the dumbed down kiddie tech we're pushed to work with.
I'm 63 (cut me in half and count the rings), and have been doing maintenance programming for 40 years. If you can't learn to translate to new language and styles, then you should never have gotten into the business.
Old coders are *very* common. ...
Everyone who started coding in 1950 is now *old* considered by mainstream standards.
New coders only know new tools, but have no particular new skill. As a matter of fsct new coders (below age of 30) likely have no experience in anything (except a certain platform/language). For solving problems you need problem solving skills, abstraction and an ability to express that. This comes by experience. Experience implies age.
The main reason why this original question is not insightfull is: someone focuses on one platform (.Net) which runs basically only on one OS (windows) which implies: he has no clue about computing even while he is already 40, cough cough.
At that age I would expect some mainframe assembly experience, some old school languages like fortran or cobol, perhaps smalltalk, but certainly C or Pascal or Modula 2. With over ten years experience I would expect basic knowledge about UML, some random agile method, some also randome more traditional method of project planning/conducting/managing.
So: do you have those experiences? If so, what are you scared about?
If not, hello! What are you doing in the software business anyway? Running for jobs where some one told you they are paid well? That only brings you so far
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
When I think back at the times I most enjoyed, it was when I was engrossed in designing or coding, whether circuitry or software. Is that true for you? Questions such as that are what you need to ask yourself. If not, well, try to think of other options.
We have engineers here learning entire new systems and languages at age 60. We enjoy it - it's one of the benefits of the job.
If you're looking at it as a chore, then the answer is that you should probably be looking at something else.
The good news is that with the way fads come and go, he can probably catch up by skipping a cycle. That is a key to remaining relevant as an older developer. The superior experience tells us which fad cycles we can skip while deepening our knowledge of more useful long term things.
... but you may be stuck in a rut. I think the aphorism "Adapt or die" applies particularly well to IT. I turned 44 this year, and I've been working with business systems since 1993. From then to now I've managed System/3x minicomputers, AIX big iron, Linux and FreeBSD servers, and of course the plethora of Windows operating systems from WfW 3.11 and NT 3.5 to current. At times during every era, I surely thought that I would never be doing anything else (sometimes with smug satisfaction (UNIX days), or with fatalism (Windows systems management)). In every case moving from one area of expertise to another required learning how to apply the knowledge I'd gained previously with new stuff. I think the only reason I still do IT work is because there's so much to learn, and the learning keeps me motivated and interested. .NET development and you aren't interested in starting over with another platform maybe you should look to moving outside of development. Put your years of platform experience to use doing something within the IT field but outside of development. Generalists who actually know how things work and why are hard to come by these days; it seems everyone's a specialist who only knows how to do tasks associated with their chosen sphere. Smaller companies especially need people who know how to do a whole lot of things, and who can come up to speed quickly when something new presents itself.
If you can't (or won't) get with the times in
Adapt or die.
Just nitpicking: programming is not a creative work. It is doing the obvious nevessary steps to transform a requirement into code. Or fix a bug.
The creative work is called: development or design or architecture.
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
Being Abe Simpson at age 40 is a sad thing indeed.
We can't bust heads like we used to, but we have our ways. One trick is to tell 'em stories that don't go anywhere - like the time I caught the VPN over to corporate HQ. I needed a new update for my employee handbook, so, I decided to go to the BBS, which is what they called a web download site in those days. So I tied a 28k modem to my DSL, which was the style at the time. Now, to phone a BBS cost a nickel, and in those days, nickels had pictures of Steve Jobs on 'em. Give me five jobs for a quarter, you'd say.
Now where were we? Oh yeah: the important thing was I had a modem around my neck, which was the style at the time. They didn't have 56Ks because of the war. The only thing you could get was those big yellow ones with a phone set...
20 minutes into the future
As for me, at 59, I am still programming professionally and learning whatever I need to get the job done
The most important skill a programmer has is logical problem solving
The particular details of languages and tools are relatively unimportant
I definitely don't consider myself to be "too old"
I'm 48 and have done primarily C++ for 20+ years. I was laid off in March and immediately downloaded Visual Studio and dove into C#/.Net like my life depended on it. I added .NET projects that I was peripherally involved with to my CV, and I wrote software all day every day, moving through Winforms, then to MVC. I also published a series of articles based on the software I wrote, about 15 in all. By the time I got into WPF I was hired into a position with a great salary and whole new hat-full of technologies: Oracle, ASP/.Net, NHibernate, EntityFramework, etc. Every time I touch a new one it goes onto my CV's skills matrix (which doesn't mention years, simply level of competency, which when you have 20 years experience competency comes very quickly).
The main reason I got away with it is because when I was asked (sometimes up-front, sometimes in the interview) to solve a software problem in Visual Studio, I was able to demonstrate very strong competency. Of the four demos I wrote, all four times I advanced to the next stage, and I got into three interviews. Of perhaps 20 other roles I applied for, I secured two interviews, one C++, and one because the manager misread my CV. In fact, the role I secured was a mistake on my part, as it sought XHTML/Javascript/CSS and I accidentally applied for it when I thought I was applying for a different one that was a better match and said they would ask for a demo. So when a request for a demo came in I thought nothing of it, sent it through, and when preparing for the interview I realised to my horror what I had done and prepared myself to crash and burn. But they saw the big picture and two weeks in, I'm up to my neck in ASP.Net/Oracle and producing good stuff.
Overall it took precisely six months to retrain and get employed. My first successful demo was two months after I started and yielded an offer with a top consulting company when the next position opens up, my second success a month later disappeared when the paperwork went upstairs for signature, and then it took two more months to seal the deal.
I dunno. I'm 41, and I still love tech and still love learning. But with age my horizons have broadened and tech isn't the central focus of my life anymore. It doesn't bother me if some great new thing comes out and I don't hear about it until a few days or weeks later.
And my learning is much more based on practical matters these days. When I learned Perl, I did it because it sounded cool and I just plain wanted to learn it. Now I don't invest the time unless it's either going to make me money, or I'm going to put it to use in my home somehow.
I can definitely relate to the OP. I still love technology and learning, but my interests are much more broad these days and I find it more satisfying to spend a weekend relaxing on a boat or hiking in the woods than sitting at a keyboard learning some obscure language just to be able to say I know it.
To the mod, how the fuck is that flamebait unless you are on the payroll of the aforementioned companies?
"The mob is fickle, brother." -- Gladiator.
"Tongue tied and twisted, just an Earth bound misfit
I'm pushing 40 and I know as well as when I was 20 that tech is what I love to do and that's what I am going to do.
So true. I'm late 50's, and my best gig was in 2008. A year after that, I pulled off a brilliant four day perl hack. Find something you've been itching to bang your head against and go with it. You'll regardless be far ahead of the twenty-something know-nothings who barely speak English but will work long hours for peanuts. Then sell yourself on your strengths.
Either that, or enjoy IT as a hobby and retrain yourself in something that will pay the bills (I like Heavy Equipment Operator; big toys, good demand, decent wage, easily learned :-).
"Tongue tied and twisted, just an Earth bound misfit
Part of what you say is right. There will always be a new BS system that is hot and new and whatever, but with the experience you have by now, you should be able to make good decisions about using them or wait until they're mature.
Tools WILL help you, until they don't, but at that moment your experience should help you understand the problem and help you solve it.
"concentrated my efforts on actually making stuff that works" makes me think you're not just making fancy websites. If so, your experience with design patterns and things like that should give you an intellectual edge over the new kid.
In your career, when you were young, you might have stumbled upon that old man doing Fortran (at least I did and he was good at it), but that was the only thing he was good at. It's good to keep up with technology, otherwise you will become that man doing Fortran and it WILL be you and not the dumbed down kiddie and he will be doing the cool projects and not you.
Privacy is terrorism.
40 is well into middle age. (The average male lives to something like 75. So take out 10 years for the "middle age" decade and divide by two. Middle age is your early thirties to early forties). So it's reasonable to be looking toward the end of your career and usefulness around that time. Maybe not so fatalistically, but at least to be pragmatic about it.
Also, it was always asserted (though I'm not entirely clear what it is based on -- I guess physiology and brain response) that you become progressively worse at learning after the age of 25.
If you're going to be a great developer, you will have learned everything of importance by age 40. Who cares about specific APIs, frameworks, etc? You've seen them all a hundred times before. You approach everything in terms of speed of light, concurrency decisions, failure modes, user expectations. You know a thousand algorithms, but know there are only 5 or so, the rest are just special cases. You point out that n log n sort is pointless because you have a DAG, you've seen this error a hundred times before. You can hack out a 30 line routine that runs perfectly the first time because you wrote a unit test first that hit all the edge cases: the implementation was totally obvious before you even coded it. And you take your junior developers out for drinks now and then, and you talk about code and debate how to solve problems.
If this is what you enjoy, you will be paid well at age 40, 50, 60, or more. Don't enjoy it? Switch careers.
Yeah, pretty much. As you get older, learning means knowing what to forget. You learn patterns, and forget the specifics. In the past 12 years, I've had to work on 6 gaming platforms, 7 languages, 4 development platforms, 8 API's, and on web, console, PC, and Java targets. This is the nature of the business. I would love the luxury of working on any one of these for more than 6 months, but that has never happened.
And I'm 52.
Now PHP is the toy language - the sort of toy that ships from China with shiny lead paint covering the sharp edges and removable easy to swallow parts.
C# isn't interpreted ; it's compiled to an intermediate language for a virtual machine, and the VM compiles that to native code on the fly. You can also pre-compile it to native code if you desire, but this forgoes certain runtime optimizations possible with the JIT method.
People had the same criticism of VB6, that it was interpreted - even though it used the same compiler as Visual C++. What got it the reputation for sloth were it's runtime libraries, and it's target audience - it's possible to write slow code in any language. Combine immutable String types with an audience of less skilled programmers and you're going to get some really slow programs. But if you did the same things in C, it would be slow too.
I've been doing this for over thirty years. I started programming in Basic and Assembler and have a long list of technologies that I used to do. They've all gone off the boards and I'm still always picking up new skills. When you stop learning, you're done.
Someone asked the 87 year old Da Vinci how long it took him to accumulate his vast knowledge. He replied, "I'm still learning."
===== Murphy's Law is recursive. =====
I am 37 years old... spent 31 years programming as a hobby or for a living. I got tired of coding for a living and became a Cisco instructor. In 6 months I've gotten 3 CCNPs, 5 CCNA, a CCENT, multiple specialist certs, juniper certs etc... I'll take my CCIE R&S lab exam in January.
I've studied 3-11 hours a day minimum every single day since I quit my job in February. I've also been a father of two young kids full time and taught classes most of the time.
Back when I was 18 I could stay awake and alert for nearly 48 hour at a time... now I make use of Red Bull, chain smoke and drink coffee by the liter. But I'll be damned if anyone will tell me I can't keep up with the 22 year olds or learn as quickly as them.
So... what the hell are you whining about... you recognized the problem... get off your ass and fix it.