|
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.
Dave B
|
|
|
|
|
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).
Mike
|
|
|
|
|
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.
|
|
|
|
|
Quote: 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!
But it is a bit of a young persons game!
|
|
|
|
|
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.
Ken
|
|
|
|
|
"Quote: I have worked with people of all ages who were useless "
Applies to people at all levels of the organization as well.
|
|
|
|
|
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.
|
|
|
|
|
On the other hand, having a good memory can be a curse: there are good and bad memories.
Fact: people usually focus on the last bad memory, not all the good ones previous.
It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it.
― Confucian Analects: Rules of Confucius about his food
|
|
|
|
|
OG wrote: 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.
|
|
|
|
|
Although the younger ones aren't as experienced they no only work cheaper but are willing to work longer to make up for lack of experience. Only problem is once they do get the experience they move on to greener pastures.
|
|
|
|
|
So thats the reason for this?
|
|
|
|
|
|
I'm 67 and got my current contract when I was 61 - I've always kept up with the latest tech and I can hold my own with most people - as JSOP once said I'm old I know stuff
"I didn't mention the bats - he'd see them soon enough" - Hunter S Thompson - RIP
|
|
|
|
|
I could have written that myself. Over the last 4 years I managed a transition from a desktop programmer to an ASP.NET programmer and made my employers happy. But people look at me and assume I'm over the hill.
Recursion is for programmers who haven't blown enough stacks yet.
|
|
|
|
|
I sold my first program as a student December 1971. 50 years later I'm still coding and I enjoy it. My official title is IT Manager but I leave the managing to ambitious youngsters while I code, tweak and refactor. Last year I switched from VB .Net to C# and now I'm starting to learn Python.
I've never regretted this path and given the option I would do it again. Knuth wrote about the "Art of Computer Programming" and art it is. Every day I discover new things and enjoy the beauty I find in this art.
|
|
|
|
|
I would say it depends.
I also would put my ability to get work done and out the door up against anyone! and I mean anyone. I have frequently at past 40 age (52) coded 2 or 3, 20year olds into the ground. I might appear to go slower but at the end of the work day I get far more done. Just because I know that taking my time and checking my work is better than lots of effort with no reward. Abe Lincoln quote. If I am given a whole day to cut down a tree. I am going to spend 6 hours sharpening my axe.
Also, Last year this time I lost my job. I got multiple job offers during the year and beat out lots of younger people for jobs just because I knew my stuff and also, I was very willing to admit when I didn't know my stuff.
Sometimes people are posting for Junior or early mid and they really want the senior. But they want to pay for Junior. All you have to do is sell them on what you deliver for them. I in all truth can say that I am always replaced with 2-3 people when I move on from a position. 2-3 Juniors at 60k are the same or more than 1 senior at 120k. I am worth it. Trust me.
I also cannot state this strongly enough. You have to demonstrate that you will be a team player. And not just with the other IT people but a team player for the whole company. You have to be willing to work with anyone at anytime. You cannot be a prima donna.
I think that about covers it.
To err is human to really elephant it up you need a computer
|
|
|
|
|
Quote: I have frequently at past 40 age (52) coded 2 or 3, 20year olds into the ground. That's not the question. The question is: would the 52 years old you code into the ground the 30 years old you?
Mircea
|
|
|
|
|
quite possibly. I remember working as a 28 year old with a guy who was 50 something. I learned so much from Ron. and he got his crap done and then went home. and I was still struggling. So yes I believe an experienced 50 year old could be 30 year old Rod.
To err is human to really elephant it up you need a computer
|
|
|
|
|
Good for you in this case!
In my case, at a point I realized the 30 years old me would run circles around the 60 years old me. I was working for a very good guy/company so I thought I cannot in good conscience ask for a raise. Also, other things outside my work became very important and I decided to draw a line.
Each one has a different path but I still believe age is a difficult obstacle to overcome for professional programmers.
Mircea
|
|
|
|
|
It might be true when it comes to standard work, but then you run into an unexpected design issue.
Seems to happen every day with my current contract. The younger developers are grinding through their tasks, and I am taking a bit longer. But then they come across an application using some technology new to them, such as writing an installer in WIX, and get stuck in how to proceed. They know that they can ask me for my help and experience, especially as I have worked with installer tech and WIX for over 10 years.
This is where we older developers shine - we have that experience with many different technologies if we took the time over the years to keep learning.
I should also mention that while these younger developers are whipping through their work, I am taking the time to understand the context of the code I am working on, cleaning up stranded code, searching for security vulnerabilities in outdated packages, and other similar cleanup work. I like to leave a project in better shape than when I found it....
|
|
|
|
|