The Lounge is rated Safe For Work. If you're about to post something inappropriate for a shared office environment, then don't post it. No ads, no abuse, and no programming questions. Trolling, (political, climate, religious or whatever) will result in your account being removed.
Agreed - if only the employers can see it this way.
There's also the notion that developers must move on and become managers, which is not something I'm keen to do. I'd rather keep on developing software. I could start to look at other non people management paths like design / architecture.
I did that (retired now)! I purposely avoided a management roll since the designing and coding are the fun job activities. I will admit to being a team lead now and then but that's not really a management job.
Many years ago the company I worked for (as an operator, but learning programming) would recruit programmers only from the graduate pool. So we had programmers with first or second class degrees who could not write a decent program to save their life. Largely because there were no CS degrees then, so they all had degrees in totally irrelevant subjects. It took a few years for that to change.
But my overall experience is that age has no bearing whatsoever. I have worked with people of all ages who were useless, and some whose skills were excellent. The main thing I did notice about the good ones, was their attitude to doing the job, and learning new skills.
I think effectiveness has to come down to how an older developer spent his career and the base knowledge they started with. Knowledge turnover in this field is extremely high. Understanding the core principles allows one to gain further knowledge more effectively. Where those who learn formulas to work with a technology that will become obsolete within 5 years are in trouble from day one. (i.e. boot camp and problem based self taught victims) The vast amount of knowledge required to truly be effective and make critical design decisions spanning many technologies takes years to acquire. And this may be a point where your interest and your employer's interests diverge. They need you to get the project done and know an investment in you may not be around in 2 years. You have a future you need to protect. So it is easy to see how so many would become stranded.
So an older developer who learned how to "work in a technology" that has become obsolete and did not aggressively acquire new skills and knowledge is in serious trouble when you consider the impact of life, family, and degeneration. Degeneration also varies greatly based on ones attention to exercising ones mind. On the other hand, one who started with a good foundation and aggressively fed their knowledge is probably in a position to "out develop" 30 "new kids" based on the ability to make proper decisions and not waste time hunting for information or going down bad paths due to a lack of experience.
In essence, there is no "standard" for effectiveness over age. It depends on the individual.
Then again, those who are hiring might have their own personal agenda also based on how the new hire will impact their own future.
Make sure you are an asset and you will never have anything to worry about.
I've spent the last 15 years working as a contractor and consultant in software design and development. And one thing that is clear is each contract is different, and you have to constantly learn new technologies in order to stay relevant for each of your clients. To me, that is just part of the profession, just like it is for other professionals such as medical doctors or engineers, or any other field where the technology is always changing.
In my last contract, I worked for a government agency with a union IT shop. The managers are largely untechnical, and the IT staffers don't seem to be very motivated to learn any new technologies on their own time. Some of these developers have been there 20+ years, maxed out their benefits, and have very little drive or enthusiasm for what they do there.
And it showed in the amount of technical debt and the use of obsolete technologies in their various projects.
I agree that as we age, we do lose some cognitive abilities. But that is counterbalanced by the experience we bring, the ability to properly architect and design a system. And we have learned how to learn, to pick up new languages and technologies as appropriate.
(I should also mention that before starting my contracting career, I spent 25+ years before that as an employee at a number of software companies)
Going back to the original question, employers tend to hire people under 40. I started my professional development career when I was 21, working for bleeding-edge companies and getting laid off on a regular basis. When I turned 40, no one would hire me. Not a problem. I became a consultant and got a good number of jobs until I retired at the age of 62. Still, working 10+ years later, but not for an employer or as a contractor. What I do now is "fun work", selling a few products on the internet.
So, yes, younger developers are cheaper and are generally the ones who get employed. Older developers are more experienced and usually have a broad enough experience that allows them to be a one-person show who can do all the work necessary from conception to development. Not every company can afford the staff needed to do a project, so a single, talented consultant is the best solution. Most talented consultants tend to be older (over 40).
In the general sense yes. Even though on average this is true - you cannot use it as a measure of a specific individual any more so than you can use sex or race to determine the quality of an individual.
Different people decline at different rates - it is also true (and equally useless) that smart people and those who regularly engage their brains tend to decline more slowly.
Medical fact or not, generalizing like that is rather dangerous, and not at all productive IMHO.
as we age, our memory and cognitive function declines.
Relative to our own prior state. Relative to the rest of the software development team? Meaningless. I was WAAAAAAAAAAY smarter and more productive than you when I was 25. Now I'm just WAAAAAY smarter and more productive.
Yeah, I think you missed his point.
age is NOT THE Determinant here that many think it is.
At 54, I am slowing down. I cannot possibly do a 27 hr straight programming session, as I have in the old days. Heck, I did a 16hr day and it jacked up my sleep for 3 days, and threw off fasting/eating schedule.
So, yeah, we get older. We get slower. It's true of EVERY career. In the old days, the old plumbers, electricians, etc. were mentors to the new kids coming in. (How much has brick laying changed in 300 years? Not that much!)
But in this WONDERFUL career, we can create our own custom tools that augment how we see the world. I was able to use a VM, restore, re-run a test with a subtle change, and copy/past 700,000 loglines into excel, and do a column by column by row comparison, excluding the date/time columns in a few minutes. It's about a 1hr full cycle.
But I started on Paper Terminals. I Wrote custom programs to compare log files in the 1980s. And to compare Master-File before/after effects of code changes, or to produce change logs. Which could THEN be compared.
The point. The tools changed. The DANG TOOLS CHANGE DAILY! You could put me back in front of that PDP-11 today, and inside of a few hours, it would feel almost natural to me.
But I now have 4 versions of 1 IDE, Rider, DataGrip, UltraEdit, NP++, PHPStorm, etc. etc. etc.
And every project I move to, they have 10 different tools.
Oh, and they are all updated constantly, even with breaking changes. THIS IS WHERE MY AGE SHOWS.
I remember leaving the MSFT camp and going Borland. Why? MSFT broke their C++ Compiler and stopped supporting 16 bit code generation. We had to maintain a 16 bit library, and the lead (younger) developer made EVERYTHING into New 32 bit code, using NEW Compiler features MSFT did not add into the 16 bit C++ Compiler. [The developer was UPSET that I found I could compile the code with BC++ as if I was dragging the company down the past... Without thinking that we had THOUSANDS of customers that were not going to 32 bit development any time soon. My next project was a Thunking layer, so we could actually call his code from 16 bit code. IRRESPONSIBLE to choose the path he chose!]
Anyways, we make more mistakes when we are younger, and we are more likely to go down some bad paths, or not see the writing on the wall. I believe I am a better developer, overall. I am a bit slower, but I am a LOT more thorough, and a LOT LESS Likely to make a fatal design mistake!
I didn't see a lot of change in my developer field (embedded design/programming). Things seemed to change rather slowly for me. For the last 20+ years of my career it was programming in C/C++. I might have to learn some minor difference in the RTOSes I'm using but other than that it's C/C++ coding. Tool wise, there really wasn't much of a difference between the IDE's I used. I did have to learn new algorithms. Mostly DSP related (filters, tone generation/detection, etc). It was fun to step into DSP programming (after the age of 50!).
Yeah, look, if I was at Chevron doing PL/X and COBOL, I am sure not much would have changed.
But admittedly, I wanted to write software for people/companies.
And then on the internet side, software as a service (ASP back in the day, and NOT web pages).
I have a friend who worked on the Kernal for Solaris. And is working in debugging for the big Storage Companies. Still doing the same stuff (Heavy C/ASM/Memory dumps... Reading through a core dump like it's a story).
There are jobs out there that don't change constantly, which is good. They are NOT usually customer driven solutions!
Heh, there's a ton of different types of projects I've worked on over the years in the 'embedded' field. It's just the development part that hasn't changed much. The biggest change was the switch from doing assembly coding to doing C coding.
As an "older Programmer" 40+ years experience in hardware and software, my experience shows it depends on who you are dealing with. I left the corporate world and startups years ago, been consulting since. Most of my clients do not understand the cost of building a product, hence they want to hire you on the cheap, which I refuse to do. If you want my years of experience than you have to pay the price.
I can't tell you how many projects I have rescued or fixed because the "newbie's totally screwed it up or the budget/expectations were unrealistic.
The H1B visas are not helping things here for American programmers. I only take jobs now from people I can work with that cooperate to get to the finish line, so I pass up many deals that look good on paper but are just a headache in the long run.
The key factor here is to make it work for the client, they are all results oriented and don't want to hear 'I wish I did this differently'or 'I'll fix it in the next release' They can't budget your time on this, so understanding the monetary and marketing constraints they are under goes along way to keeping employed. there is plenty of work, you just have to search it out. We need to get back to apprenticing the young programmers. Only actual experience will make them better.
I'm 50 plus and have so much trouble to tie my shoes that I never even tried it. Worse: the thought never even crosses my mind. Instead, I tie my shoe laces. And usually on both sides, so not just for one shoe.
the ones that can code are generally those that are still in the industry after 30 years
Yes, though I'd say that if they're still coding after even 10 years, they either enjoy it--which probably means they're good at it--or they're so hopeless that they can't even be shunted into another role, like scrum master, manager, or marketer. It should be easy to figure out which of these is the case.