Ask Slashdot: Becoming a Programmer At 40?
New submitter fjsalcedo writes "I've read many times, here at Slashdot and elsewhere, that programming, especially learning how to program professionally, is a matter for young people. That programmers after 35 or so begin to decline and even lose their jobs, or at least part of their wages. Well, my story is quite the contrary. I've never made it after undergraduate level in Computer Science because I had to begin working. I've always worked 24x4 in IT environments, but all that stopped abruptly one and a half years ago when I was diagnosed with a form of epilepsy and my neurologist forbade me from working shifts and, above all, nights. Fortunately enough, my company didn't fire me; instead they gave me the opportunity to learn and work as a web programmer. Since then, in less than a year, I've had to learn Java, JavaScript, JSTL, EL, JSP, regular expressions, Spring, Hibernate, SQL, etc. And, you know what? I did. I'm not an expert, of course, but I'm really interested in continuing to learn. Is my new-born career a dead end, or do I have a chance of becoming good at programming?"
I'm happy for you and your new career. Get ready for a nonstop list of reasons why you're doomed, but don't listen to them. If you love what you're doing, do it. Make your own success. Ageism is as bad as racism, and just as illegal.
to ageism.stackoverflow.com.
Success has an element of surprise to it, but its not entirely out of your control either. My caveat is the argument that what you learn when particularly young is what you'll be a natural at the rest of your life. Learn a 2nd language before 14 years old and your entire life, new languages will come easily and without notable accent... but learn 2nd after 14 and it'll be hard, most will give up, and even those who succeed maintain a lifelong accent. It's a brain chemistry and stage thing. Programming is an analytical and problem solving sort of thing... if anything you've done during your developmental years is similar, then it shouldn't be hard for you to adapt now, really... and as with french and spanish and italian, the differences between, say, perl, python, javascript and php are not significant enough to deter you... the LOGIC behind them will be familiar... the differences are more in context, strengths, and dialect.
Go for it. If you're willing to learn new things, then age should be no obstacle. Indeed, I suggest that even older people (in their 70s and 80s) learn programming, as by exercising the brain, you may prevent certain brain problems (like dementia).
You might not be able to work as many hours as young folk, but if you're willing to work, and to continually learn new tricks and ways of doing things, then I can't see it as a problem.
Anyone who says that you are too old is at best an idiot, but maybe someone who just wants to take your job. Don't let them, prove the bastards wrong.
HELP MY ACCOUNT HAS BEEN HACKED BY AN ILLIBERAL ART STUDENT SET TO DESTROY THE INTERWEBZ!
Go for it. The only one that should be telling you what you can or can't do is yourself.
If you have a passion for something you will enjoy it and may become very good at it.
No career is a 'dead end career' unless you're awful at it, or it's just completely unneeded (or over saturated). If you've already started learning the stuff and they're paying you, keep at it.
Since then, in les than a year, I've had to learn Java, Javascript, JSTL, EL, JSP, regular expressions, Spring, Hibernate, SQL, etc. And, you know what? I did. I'm not an expert, of course, but I'm really interested in continuing to learn.
Go forth and prosper. Programming is not like professional sports or the ballet, where there are only a few hundred jobs nationwide to go around.
It sounds like you never aspired to striking it rich, nor becoming senior management. It sounds like you want a secure job that will last you until you retire.
IMHO, this transition forces you to find a family-owned business or a private company who doesn't focus solely on the bottom line. It does limit your options, but who cares? It sounds like you don't want 100x options, but you want a stable job until retirement.
In that case, go ahead! Keep learning, keep your skills up to date, and you will do great! Just don't expect a high wage, or to get paid like you are an industry veteran. You pay will be comparable to an entry-level programmer (or a bit better). Don't beg for promotions, stay low-cost, and you will do fine.
Even someone that is 70 can learn a new programming language and thrive. The only advantage the youngsters have is the ability to adsorb the information faster, they cant learn more, they cant do more.
Problem is you as an older person will not happily take abuse from management, thus you are less desirable than a young fresh out of college kid that will take epic levels of abuse and not complain.
Do not look at laser with remaining good eye.
I used to be an electrical engineer, working strictly with hardware. Then, a layoff and lousy job market forced me to make a career change. I went back to school for a grad degree in Computer Science. It was difficult for someone like me who started out without a software background but I've been working as a Software Engineer III for 1 1/2 years now. I'm now working with Java, Groovy, Spring, Hibernate, Solr...just to name a few. IT is a thriving market now and in the foreseeable future.
Is my new-born career a dead end?
Yes. But your old career was a dead end. All our careers are dead ends. Life is a dead end. We all have to deal with it. You can give up, or enjoy what you have while you have it.
Do I have a chance of becoming good at programming?
Without knowing more about you, I'd say a slight chance. But I'd say the same for a fresh graduate from some top engineering school. Good programmers are a rare find. The best we can hope for is your maturity and experience leads you to spend more time considering edge cases and maintainability and less time trying to impress people with cleverness and flash.
Your company sees you as worth investing some time/training in. That speaks well of you and of the company. If you didn't at least have some level of competency they would not have been interested in training you, but (and I'm totally guessing here) you apparently show up to work and make a contribution.
So yes, be a programmer! If you're really cool we'll make you a brogrammer.
Most of the ageism seems to come with the hiring company. If you're at a company that's already supporting you, and it appears they are, then you're not going to have problems as long as you stay. Obstacles may only start to crop up if/when you want to move. Even then I think the horror stories are exaggerated - we've got programmers in their 40's or 50's here who were relatively new hires, but we're a smaller and perhaps nontraditional company. I think you ought to still have plenty of options, but you may struggle if you try to pick certain large and established firms with a reputation for ageism, including most of the gaming industry.
Best of luck to you! I'm actually still pushing back my plans to reinvent myself as a programmer (trying to get through kids before changing career paths) and I know I won't get to it before I'm 40. Despite the general negativity about my prospects, I don't expect that to stop me from eventually making the transition.
The Quirkz Handbook of Self-Improvement for People Who Are Already Pretty Okay
My career is better than ever and I am over 40. Think our society just wants us older people to go away after a certain age. I know a lot of people my age in my profession become PM's, what a sucky worthless job btw. I plan on programming until I drop dead. Just read this study. http://blogs.wsj.com/ideas-market/2013/04/30/older-software-developers-may-be-better-than-you-think/ BTW most of the thoughts about the decline in mental abilities after a certain age are also myths.
I'm 37 and was recently promoted from senior dev to director of our development department at my company which means I do the hiring/firing now. I think ageism is real in this industry but, at the end of the day, what matters is results. If you can write good, maintainable, best practice code and deliver on time you will always be employable. Another thing that is key is you have to be willing to learn new things and re-invent yourself as technology evolves. Don't you dare get entrenched in one language, platform, or way of doing things always try new things and approaches. When you tell yourself or someone else "well this is just the way i've always done it" that should set off an alarm.
More tactically, my advice is to read good code and talk to good developers. You can gain a lot of wisdom by just having the guts to ask, expect some odd looks given you're older but all good developers appreciate good code and will help you produce good code. If anyone gives you sh*t about your age write them off as a waste of space and go talk to someone else.
I came to the datacenter drunk with a fake ID, don't you want to be just like me?
I hire programmers, and frankly at this point I am more inclined to hire an older programmer than a younger. The issue is about focus and discipline. Of course there are lots of young people who have learned how to focus on something for more than 30 seconds at a time, and I'm sure there are also some that have the self discipline to organize their life in ways that make them the most productive. But wisdom comes with age and for my particular management style someone who is self propelled and who has these qualities is desirable.
I think your only issue is going to be one of experience as you go forward with other job prospects. You'll just need to stand on what you have learned as someone who takes their career seriously, and is paying attention.
I am not interested in articles about life extension advancements.
With the worst first comment ever.
The legit question is: will I be able to continue to learn faster than a programming robot will advance and eventually replace me? The truth is that the programming robot will learn at an exponential rate, so there will likely be little difference between having 2 years of experience or 20 by the time the robot surpasses your ability. Perhaps the 20-year-programmer will have an extra day or two to try and hack into the robot, and likely that extra experience will help with that goal. But all programmers will eventually be replaced by the robot. Then, at long last, the hardware engineers can again gloat.
Often it's about interview techniques, not so much skills. If you don't know how to interview fairly well, such as being very nervous, then during recessions or downturns you may be out in the rain. That's the ugly reality. But then again, almost any career is like that.
Table-ized A.I.
My only specific advice to a late bloomer would be: don't sweat the "new" technology and acronym soup that changes every few years. Everything substantial was already done in the late 60's at Xerox Parc, or CERN and the NCSA in the late 80's, but comes out repackaged with new acronyms every time an architecture is refactored to fit the newest hardware capabilities. Focus on what you do well and ignore the rest. If anything, it's much easier to survive as a new programmer nowadays because the coding tools and online references are so powerful.
10 PRINT "Get"
20 PRINT "Off"
30 PRINT "My"
40 PRINT "Lawn!"
50 GOTO HOSPITAL
Table-ized A.I.
Being a good programmer is a matter of being a good fit for the role you're performing. If you have expertise in other areas and can use programming to apply that knowledge in a way that the computer can do the work that people do now, you'll never run out of automation work. Look around you at things people do by passing around spreadsheets or pieces of paper. Can you write tools to make that data flow easier?
I'm don't like telemarketing, spam, junk mail, etc. However, several years ago I got a job where I helped develop a team to implement a data warehouse for direct mail marketing. Knowing some of the traits of these scum up front helped me understand the business needs of the marketing people. I also learned a few things on how to get suppressed from such marketing as well as ways to poison data collected for such a purpose. The people I was working for saw the business value in not marketing to people who don't want the product - a viewpoint I could completely agree with. Just because you don't like something, doesn't mean you can't help someone do that thing in a more responsible and less annoying manner.
When I interview programmers, how they analyze and solve problems is far more likely to get them hired than what tools they have experience in. If they can solve a problem in their favorite language easily, I don't mind if they don't have as much experience as I'd like in the language we're using for a particular project.
There are lots of programmers working and making very good livings well after age 35. I'm 43 and just two years ago was hired by Google, with a significant pay increase. I work with lots of other guys who are in their 40s, 50s and even 60s and they're bright, very capable and -- obviously -- highly experienced.
Of course I'm talking about people who started when they were younger, but I see no reason why it shouldn't be possible to pick it up later in life.
If you enjoy it, and are successfully making a living at it, go for it. Ignore the naysayers.
Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
Like there was any fundamental difference between hardware and software engineering.
Indeed. I do both hardware and software.
When I do software, I sit at my computer and type C.
When I do hardware, I sit at my computer and type verilog.
The main difference is that C code is executed in sequence, but with verilog it is all executed at the same time.
I expect to be replaced by a robot sometime around 2030.
And speaking as a hiring manager, draw on how your IT experience will allow you to develop solutions that will work seamlessly with the whole IT ecosystem at your organization.
I know I've seen over the years many situations where a development team will say "OK the code is ready!". When I ask them what firewall rules they will require, they just look at me blankly and turn towards IT, because that's "infrastructure stuff".
Typically we have a name for Development staff who doesn't do that... Senior developers :).
Min
On the whole, I find that I prefer Slashdot posts to twitter ones because I don't get limited to 140 chars before
Yes, the guy should totally judge his employability by a theoretical programming robot that doesn't currently exist.
It's better to vote for what you want and not get it than to vote for what you don't want and get it.
- E. Debs
I say go for it. I'm 39 and have just changed FROM programming into something different, but my father was an Air Force pilot for 20 years, programmer for 10 years after leaving the military, was out of programming for 10 years in another industry, and has recently (as in, four weeks ago) gone back to programming at the age of 62. He was hired because he has proven over and over again that he is adaptable and capable of learning. In an economy that saw my negative-minded, high-school-only 56-year-old mother-in-law look for work for over 40 weeks, my father found his new job inside of a month, without knowing anyone within the company who hired him.
I'm not saying it's easy-peasy, but if you have skills and desire, you're likely to do well. Best wishes!
For conscience is the wound, and there's naught to staunch it
Where I work we've transitioned network staff to programming in their 40s and cobol programmers to C# in their 50s, and not once have we had any of them fail. Age related issues can hinder learning, but that doesn't mean everyone who is over 35 is doomed to fail in IT. The capability to learn new languages and programming techniques is different from person to person, and age by itself is not going to stop anyone.
...and does my Android tablet dream of electric sheep?
#naabhaprzrag, #sverubfr-000, #agi-fcbafberq, negvpyr[pynff*=' negvpyr-ary-'] { qvfcynl: abar !vzcbegnag; }
The legit question is: will I be able to continue to learn faster than a programming robot will advance and eventually replace me? The truth is that the programming robot will learn at an exponential rate, so there will likely be little difference between having 2 years of experience or 20 by the time the robot surpasses your ability. Perhaps the 20-year-programmer will have an extra day or two to try and hack into the robot, and likely that extra experience will help with that goal. But all programmers will eventually be replaced by the robot. Then, at long last, the hardware engineers can again gloat.
Management has been trying to get hold of those hypothetical programming robots for decades, and they never manage to do so. That's why they have to settle for things like under-30s and Third World code monkeys.
Someday, someone probably will manage to make computer systems that can program themselves intelligently. But a lot of predecessor functions need to be automatable first, and so far, little luck on those either. I'm fairly confident that anyone 40 or over isn't in any danger.
Ok, so I didn't start as late as you did (early 30's) but I turn 50 this year, and my career has advanced steadily during my life as a software engineer. If you like it and you're pretty good at it, I don't see any reason why you should worry. You may run into a company or two that could have a problem with your age, but my current employer placed a premium on experience. I *DID* work at an internet start up that seemed to buy into the idea that younger programmers were a better bet, but a friend from a previous job vouched for me, and I was hired as the oldest engineer there. The younger programmers scoffed at the idea that experience counted for anything, but soon the managers realized the the older workers were the most productive workers -- fewer false starts, grandiose solutions, bugs etc. YMMV but when the Internet bubble burst, I wasn't one of the ones that got laid off.
I expect to be replaced by a robot sometime around 2030.
10:30PM tonight: [knock knock] Are you Sarah Conner?
No.
The ads used to say "'system administrator", "desktop support", "server", "application", etc.
And then the nice to have skills: "html", "java", "CMS", "web".
Why did I not get hired? Even though I can wrangle a CMS, and figure out a lot of stuff hosed up on a site, I cannot re-write the offending jsp and get things running again unless it is a glaring syntax error. So though I know my way around the Microsoft office systems environment, can bring servers up reliably, and keep the joint running, what they wanted was 60% sysadmin and 40% web developer, with the emphasis on the web development despite the alleged share of time.
And they want to pay cheap sysadmin pay while they suck the web developer's time at the expense of really nailing down the network.
Of course employers want more for less. The lie is that you can't find people that can do it all, because you've grown accustomed to average sysadmin skills (and possibly average web dev skills also) but think you will get a bargain with two average skills sets in one salary.
Yeah, and the idea of my tax preparer moonlighting from their day job pretending to be a plumber is funny too. Not impossible, just improbable, and they weren't that good a plumber to start.
There isn't any fundamental difference between hardware and software engineering. It was never engineering, my friend.
And the robots will need what? Oh yeah. Software. Commodity hardware will make robots both affordable and worth the software for widespread use. Just like the personal computer made computing useful for widespread use.
deleting the extra space after periods so i can stay relevant, yeah.
The difference between a 20 year old coder and a 40 year old coder is usually 20 years of coding experience. That usually entails not doing silly things like pushing untested junk to production. Instead, it is pushing well-tested junk to production.
However, if this guy is just starting at 40, he may have more things in common with the 20 year old than the other 40 year old coders.
They have been saying this since the 60s, yet people still seem to be writing code. What seems to happen is, byt the time a computer catches up with a major development pattern, developers are already off to the next pattern of development.
I mean, an operating system basically does what we would have called programming 40 years ago, writing instructions to the processor, calculations, etc. The nature of programming has changed since then, as it will over the next 40 years. I could see there being an application that models relevant data, builds interfaces, and maybe even makes them look nice. But I doubt that will be the way we interact with computers by the time they can do it.
http://www.amazon.com/What-Computers-Still-Cant-Artificial/dp/0262540673
This book is one of the first, best discussions about the major challenges that AIs face. The articles about ambiguity tolerance really tell you all you need to know to understand this point. While AIs are pretty awesome at this point, they really do rely on clustering algorithms and normative pattern analysis to construct the facts they operate on. It's useful as a means of understanding the world, but it's not really the same as what most people would call 'judgement' and it's certainly not the way people work in the world.
I have a theory about why AI will never replace coders. Once a machine gets to the point where it can handle the tasks of a coder, it becomes commonplace. People strive for more, technology is necessarily an innovation market. Eventually something new comes along, it takes decades to come to grips with it. During that time, people are the ones working out what's useful and interesting.
In other words, it's all a cycle, and machines are constantly catching up by automating what we did before. They never lead, which is why we have coders.
I made the transition at about age 40, 25 years ago, and it was an excellent career move. But I also spent some time taking CSci courses as a part-time student. There are important issues you should understand that are not in any programming-language handbook or website. These include the problems of concurrency (race conditions, deadlocks), complexity of algorithms, and the basic data structures. Good luck to you!
The difference between a 20 year old coder and a 40 year old coder is usually 20 years of coding experience. That usually entails not doing silly things like pushing untested junk to production. Instead, it is pushing well-tested junk to production.
However, if this guy is just starting at 40, he may have more things in common with the 20 year old than the other 40 year old coders.
There is an element of life experience to it as well I think. It is often not until we get older that the value of stability and safety is fully realized.