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?"
TIme change...the future is bright
Keep on blazing
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.
Wal-Mart has a job for you. Best to let the Young Bucks do the heavy lifting of this thing you call "programming". Nobody wants to be your fellow brogrammer, go work in a book store.
If you want news from today, you have to come back tomorrow.
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!
and prove that it can be done to us all and get it over with! :)
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.
I have just poured hot grits down my pants.
Thank you!
Seems to me you have already proven your new-found career is going swimmingly, and that you have both the desire and capability to learn what you need to know in order to do (at least) passably, if not outright well (or better).
I met a fellow who in his late-40s was laid off from his job as a line worker at the local telephone company, picked up Delphi and ran with it. That was in 1998, He's still doing it and looking to retire soon and we've not found anyone to replace him yet. He could do this because he had problem solving skills, not because he was young.
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.
There is always a chance. if....
you never get hit with the non-existent age bias in the tech industry
you like the smell of curry and noodles
you don't mind ramping up on a skill set and then seeing your job get outsourced
you hit the lottery
you work AT the office
you can hide your grey hair (or if you have no hair, keep the dome waxed)
Life may suck, but if you enjoy what you do, you will always have something to fall back on, even if that something doesn't pay the bills.
Toil is Stupid. Don't be Stupid.
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'm going to invoke Betteridge's law of headlines, the answer is, "no"
https://en.wikipedia.org/wiki/Betteridge's_law_of_headlines
fjsalcedo,
Kudos to you and your company. Keep learning and exploring programming languages and techniques. But above all else, IGNORE what people on Slashdot tell you. Especially, since you are proving their dumb *sses wrong.
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.
I've returned to full-time development after 15 years in SA/devops work. I love it and have learned new and new-to-me languages (python and go). Some things came right back and some things still take a little time. Being good at programming is independent of career, it has more to do with drive and desire and motivation.
Your career has more to do with where you want to take it and your flexibility to adjust to the situations that let you go there as much as anything else. There are plenty of shops that wear out their devs and push them in ways that only the young-uns can handle for long periods of time. (maybe that should be people-with-no-life rather than young-uns?) And there are plenty of places that you and I can contribute at high levels and be productive. It seems like you're in the latter as they gave you an alternative and a chance to prove yourself.
dt
Anyone who says differently is a prick... Programming like all things, is a matter of doing it. If you do it, enough, you'll probably end up pretty damn good.
I don't know why so many geeks, media, and other arseholes, are so hell bent on thinking that only young people can do this. It's just wrong. Anyone can program if they try. I'm living proof of that, gainfully employed, programming-- after spending much of my life thinking I couldn't ever do it (I am only 28). The same also held true, at least for me, in regards to upper-division mathematics. I tried. I conquered.
If you try, you will too.
Good luck, mate! Just stick with it.
P.S. Contrary to popular belief, I've been seeing more software firms (lately) favor older applicants because the professional experiences goes a long way when it comes to working with someone.
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.
I think it's a great idea. You sound passionate about it and the learning process will help keep your brain "in shape".
I am a 53 year old Windows (C#) programmer and I have just started learning a new field (embedded C++) for fun use in my hobby, which is electronics.
I believe we should all learn something new everyday.
I see no reason why you can't become a good programmer. I work in IT and I see many people over forty having to learn new skills, because they are familiar with the operational systems and have too little on their plate (that is what bosses always think..).
Then again, you are becoming a grunt. You are pushed down from your career path, doing things that twenty-somethings do when they are just hired.
My advice to you: become really good in something. Pick one programming language you like, and start to design large scale architectures, interactions between high level critical systems and make sure that if they get implemented, you'll be there doing it. You need to get your career going, and IMHO software architect is the way to go.
Programmers after 35 begin to decline? Uhm... some of the most influential technology has been made by people way over 35. For instance Lars Bak released V8 in 2008. And then went on to make Dart. Walter bright and Alexanderscu are way over 35 - they are making the awesome D language (can't recommend it highly enough). If anything older programmers have more to offer. Examples are all over the place.
Maybe for some programmers energy levels decline because they don't take care of themselves physically and lose their energy after 35. But age is no factor. You could choose a niche that interests you and become an expert in it in less than 5 years. Master in 10. Do it if you love doing it.
Yes, many people have successful careers as programmers well past 40. There's attrition that correlates with age, but hey! If other people made it, so can you. Your background in IT means that you'll have to either work harder or work smarter than the 40-year-old that's spent his whole career programming, but you can do that, right? Well, only you can answer that.
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
was a crusty old tank sergeant who learned programming after 20 years in the Army.
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.
Your company knows what you're capable of, and is willing to pay to retrain you. And possibly avoid any nastiness with the ADA. Obviously, you go for it if you can't do what you were doing and it's the best option.
That is an entirely situation than a 40 year-old, fresh out of school with no experience, handing resumes out to HR. You already have a position, you just have to hold onto it.
As a programmer that started at age 6 self taught with a 386 given by my father. I can certifiably tell you that all programmers are a breed of people that do not have a quit and have an ability to adapt and learn. To me writing in a language is as simple as speaking in English to someone. You seem like someone who is interested in learning new things.
My biggest advice to you is that while learning programming is important and so is keeping up to date the simple fact is an IF statement has rarely changed in the span of my career. What you should be focusing on is how to build skills to make you valuable instead of learning every new fad. To do this you need to expand your views and mind on programming. The traditional role people take to do this is learn new technologies. I would urge you to expand your skills via projects and unattainable programming that you think you cannot do.
Never used sockets? First goal should be is to write a client server arch using sockets. As you have more experience building systems you will be valuable at debugging and creating new systems for companies. Do not be fooled that is what companies need. Not someone who can muddle with code. Expand your code brevity at all times and you will be successful. People see the value in someone who can understand every detail about a program or OS and if needed code a work around to any issue. That will keep you employed regardless of your age.
Many people are on the bandwagon of tech skill names are all that is important. Its more important to illustrate to everyone why you can code anything on the planet and why you are a 1337 mother trucker. That is something a majority of the people applying cannot do.
-Greg
Ask me,
My career ended at 42 when the company I was working for closed shop. I can't even get an interview even though im REALLY good at what I do and have 19yrs experience as a software engineer in assembly and C. I now work as a sys admin since it seems to be OK to be old working with that. The most amazing thing is that our "real" software engineers come and asks me for help all the time but my boss won't let me change position.
The stupidest thing I ever did was turning my passion for computers into my job...
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?
...when it comes to code. Can you read a piece of code and tell if it was written by a young dev or an older dev? Anyone that tells you coding is for kids is full of it. I am 38 and I will run circles around 75% of coders in their 20s... In any language. People on here look at code with tunnel vision. All code is part of a larger picture, be it an app or business process. Your experience in IT will give you an advantage because you will see the whole picture.
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.
Details change so fast in the tech sector that nobody's skills stay current. Everybody always learns new technologies, skills, and practices to stay useful and relevant. Spending more time in the programming field only means that you have a larger collection of familiar toolkits to rely upon, not that your existing toolkit is the best fit for the task at hand. One of the reasons that I like the programming field is because there's always something new to learn. I like earning a living while still at "school".
A lot of tech schools and community colleges offer 2-year computer programming associates degrees (and many other certificate programs). And they're usually pretty cheap and offer night classes too. I suggest you check those out.
And, no, never too old to change careers. I've done so several times and always ended up smoking my younger competition.
The cow says "Moo." The dog says "Woof." The Timothy says "Thanks, valued customer. We appreciate your input."
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.
In my experience as a programmer, what sets apart acceptable developers from great ones is the ability to teach themselves new languages, frameworks, libraries, and techniques. They're self-driven, and it shows. They don't 'learn faster' - they just learn more often. You take a person like that, and in a few months they can demonstrate value several times greater than a programmer with a decade of experience.
It seems like you've already shown that sort of initiative, so I'd say you're already well on your way.
Since the job market in the US for developers is currently incredible, I'd say you'll have both job security at your current position and in the near future if you want to jump ship. Also realize that the computer stars - the 'young kids' everyone was talking about when computer programming became a popular job - they're all in their early to middle 30's now, if not older.
Personally, I don't see much agism where I've worked. What I have seen is older people bunkering up - trying to make sure they always have a job on the one thing they know, not training others, not reaching beyond it, trying to force people to do things in old, proven inefficient ways, unwilling to change, etc. I've written someone out of a job before, by removing a completely unnecessary stack of bubble sorts (4 levels deep!) that cut the runtime of a mainframe process from 22 hours to 45 minutes. They didn't know what to do when it no longer took 1 person the whole day to cajole the process through safely.
So, don't do that, and you should be fine.
1) Can you become a good programmer
Certainly - if you can think logically, grasp the big concepts (Big O notation, indirection, recursion, etc), and find a language or two that you really learn, you can.
2) Is my new career a dead-end?
Maybe. There are lots of older programmers, but there is definitely an industry-wide tendency towards offshoring, which means jobs are fewer, and salaries are lower, unless you are really good, or good in a niche that is not popular.
No, programming ability does not decrease with age. I am approaching 60, writing the best code ever, and getting paid well to do it
Yes, there is extreme age discrimination in hiring. Most companies want young people, right out of college. They don't have health problems or families, and work long hours for low pay
Yes, if you work at it. Like anything else, programming is a skill that can be learned. Whether it comes easily to you or not is another story. Your age is completely irrelevant to the learning. The only area your age may have an impact is in finding a job, but it sounds like you've already got a good one.
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.
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
Programming isn't a dead end. You can move into management, or if you're happy programming you can still program. If you can't find a job, you can freelance. It's not the type of skill that you need a lot of fancy equipment for (i.e.- you aren't flying planes).
, or do I have a chance of becoming good at programming?"
Being good is subjective. If you want to be good at programming simply reading the right websites, books and learning new things will put you ahead of 50% of the programmers out there. If your idea of good is "Employable as a web developer" you should be fine. If your idea of good is John Carmack, then you're probably not going to end up being "good" by that definition.
Also to most employers, especially ones who don't delver software as their main business function the idea of a good programmer is someone who can deliver on deadlines, adapt to changes in specs, and get along with their coworkers. If you're going to work for a company that makes software as their main business practice, their standards will be higher. Their idea of a good programer is probably someone who has read TAOCP, knows design patters, knows whatever framework is currently trendy and can read the mind of their interviewer and know what books/blogs they like/respect.
Good luck. My dad was a programmer, just as I am. He was laid off when he was in his late 50s, and the only thing that kept getting him jobs were his contacts he built up over his long career. Another piece of advice: Make "friends" who appreciate your skills.
If you are in the IT field coding is not a mystery. It's like learning new languages that you speak but in this case write. Motivation is a huge factor as it's a constantly changing, ever learning field. People that say it's a dead end are often unmotivated and in crappy jobs.
Here's the deal with how most companies view older coders. They are tired, slow, unmotivated, overpriced and not very agile. I know several older coders who would be better dealt with using the peter principle. I'm 37 years old, and I'm slowly transitioning into leadership roles. I recognize that I'm not as motivated to sit there and master every detail like I was at 22.
As long as you are excited about your work, are energetic AND produce well you'll be fine. Eventually you'll want to transition to a leadership role where things move slower and you don't have to adapt as fast. That's just how the world works.
10 PRINT "Get"
20 PRINT "Off"
30 PRINT "My"
40 PRINT "Lawn!"
50 GOTO HOSPITAL
Table-ized A.I.
you're not doing testing.
Wal-Mart has a job for you. Best to let the Young Bucks do the heavy lifting of this thing you call "programming". Nobody wants to be your fellow brogrammer, go work in a book store.
You sir - I got it.
I'm 48.
And your post speaks to me on so many levels. (I'll spare the 1,000 word essay)
Rest assured sir I, at least, appreciate your post and fuck the mods.
Your epilepsy is a 1% neurological condition (99% of people don't have it)
Your ability to learn and apply new (to you) concepts after age 40 is similarly rare.
The old saw about "anyone can learn anything if they just apply themselves" is not true for some people, and as people age it becomes not true for more and more of them.
"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..."
That's just a myth perpetuated by naive 20 somethings who equate "good programmers" with those who are willing to and capable of working 90 hours a week. They haven't figured out quality vs quanity yet or that spending time with a member of the opposite sex (or same sex if that's your thing) can be as rewarding attaining 100% test coverage.
obligatory
https://xkcd.com/208/
Some people study to get a degree because they are smart and get the chance, some because it brings prestige, respect and higher salaries.
But the people who excel will always be the once who have a desire to learn and experiment through out their entire life. No matter the profession.
Gloat? The hardware engineers would have to battle with the influx of software engineers battling for their jobs. Pay goes down due to supply and everyone loses.
Get away from that Eclipse IDE!
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.
Go for it! In my experience, age is not a factor. In fact, I think it's harder to prove yourself when you're younger.
I've been surrounded my whole life by people who said you can't do this, you can't do that, you won't succeed... Guess what? I'm much further ahead than any of those people. I started programming at the age 15 and there's a huge advantage in ANYTHING if you start at a younger age because you brain is a sponge BUT, efforts can allow one to compensate for the slower brain absorption rate.
If you work hard enough, you will outperform some programmers who started younger because they take their skillset for granted and stop progressing.
Reading your post I understand you've been doing this for over a year and have learned a few languages. Keep in mind that languages don't make the programmer, it's the ability to structure programs that tells how experienced a programmer really. I'm sure the structure of you programs will continue to improve as you continue to learn.
What learning how to program, brings is that it is learning a new trait that may lead into you creating a product for yourself. Instead of always working for a different business. Programming allows you to start your own business and make your own products. Hence why it is never too late or too early to learn how to code.
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.
I'm 23 myself and learning so I can't really relate but we have 2 guys at our college going for a comp science degree and they are above 80, I believe one of them is 86. I have no idea why they are doing it but they have fun and it is interesting to see projects they come up with and learning from the problems they face. At one point the xcode debugger was just too complicated and it was interesting to listen to why and see what his reasoning was. I don't think it's ever too late, but it takes time to learn code and that is something you need to consider when learning, do you have time? why are you doing it?
http://Anveto.com - Web Design, SEO, Marketing, Analytics & Security
Becoming good at programming can mean a lot of different things. Skill wise, you'll know you're getting better when your code starts to feel like art. Career wise, being 40 with one year of experience means you should focus on establishing contacts. Maybe you'll get lucky and find a benefactor. Otherwise you'll need to have many clients to support you while you improve. It's like any other industry: brand recognition, product quality, strategic marketing.
After all, the people you need affirmation from are the ones with business problems that are looking for someone who can deliver, not anonymous people in an online forum.
I'm 65, and 15 months ago I was hired by a tier one Fortune 50 company as a senior systems engineer. I write code, develop algorithms, design systems, and lead the performance engineering for over 3000 servers world wide that support over 100 million users. Over the past year or so I've had to add a similar number of skills as you did, as well as dust off the old stats and calculus books so I could design the analytic tools needed for system performance/failure predictive analytics. We have PhD's in math and statistics to do the heavy lifting, but they only do what I tell them to, and I still have to validate their work and review their code. On top of that, I've had to become fluent in Amazon cloud services, Hadoop/big-data, and manage several hadoop clusters collecting the performance data for those 3000 servers (about 5-6 billion data points per day).
Our company has engineers of all ages, sexes, nationalities, and religions. I'm a 65yo white male American athiest... My team has a 20-something Finn, a 40-something male Chinese, a 20-something female Vietnamese Buddhist, a 30-something male Russian, and a 40-something Bangladeshi Muslim... :-)
In the end, it is what you bring to the table that is important, and your enthusiasm for the job.
Like there was any fundamental difference between hardware and software engineering. Once you can truly automate one, same is possible for the other.
CLI paste? paste.pr0.tips!
I'm in a similar situation. Albeit I started in my 30's, but I'm now 40, and have no formal education, no formal training, no degree of any kind.
Still, I'm (apparently) one of the most competent, skilled, and judging by how often I'm asked for help, well regarded, Developers/SysAdmin/Security 'expert' in a very large multi-national corporation.
My experience is that you can do whatever you want. The rest is just excuses. Computer Science is one of the few fields where you really can be entirely self taught and thrive. There's a sort of 'legend' of the self-taught 'hacker' in IT circles. (Hacker to me just means someone who's willing and able to pop the hood and figure it out.) It doesn't seem as strange as it might in other fields. Granted every company is different, and some are more stringent in their formal requirements than others, but given my experience here, I would have no worries applying for similar positions in any other organization, and defending my record (or lack thereof) with any interviewer.
If you have an interest in learning anything computer related, you can find a book/guide/man page/example out there. If you study, you'll get good at it. If you relentlessly seek to better yourself, you'll continually improve. You'll also look back at what you wrote last year/month/week and shudder. That means you're developing.
Don't worry about what anyone says. Just follow your interest. Do the very best you can, and know that you're going to make mistakes. Be open to anyone pointing out those mistakes, and try not to make the same ones over and over.
Formal credentials mostly mean that you've passed the tests required to obtain those credentials. If that's of value to you, by all means get some. In my experience they have very little bearing on someone's actual skills.
Agism in the IT industry has a lot more to do with companies not wanting to pay for experience than it does with any genuine lack of skills on the part of the older population. I know many people who transformed their careers from "low level" tech roles to full scale programmers.
One of the best programmers/Oracle admins I know didn't start working with computers until he was 43, and was then given the opportunity to learn on the job -- and learn he did! Keith knows more about Oracle and it's guts than anyone else I've ever met. He even has a handful of machines set up at home that he used to learn RAC configuration before going ahead with doing so for the business systems he was administering. (All old/used boxes, but it was the configuration experience he wanted, not a high performance home cluster.)
I do not fail; I succeed at finding out what does not work.
So you can certainly learn to code, and probably just as well as someone right out of school (that whole "learning is easier when you're young" thing is a crock of shit). The problem is that you will be *perceived* as "over the hill", "set in your ways", "too expensive", or just plain "too old" when interviewing for jobs. Ageism is rampant in the software development world -- I got a taste or two of it before I had even turned 30. That said, you might as well go for it, as it doesn't sound like you have better options, and with enough effort you *can* succeed, despite the ageism you'll face.
/thread
(I am a web developer with over ten years of professional experience. Your attitude is great and it sounds like you're learning fast. Don't listen to the know-it-alls who think they're hot shit. They're not, they're just loud.)
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
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.
I am 36 and love what I do. I'm a little different though as I got my first job programming when I was 16, so I've been doing Software Development for 20+ years. I've programmed in so many languages that it's almost a blur now. I've had jobs writing x86 ASM, Pascal, C/C++, Java, Python, and more. I've been a CTO, but, I loved the coding too much so I'm happy as a Software Architect for a major internet company. Who says you can't code at 36 or 40?
I don't think it really matters when you start, it's how well you do it. I've hired people of all ages, genders, ethnicities because they can code, not because of who they are. You will likely have some issues with your resume as you start out as people will say "Oh, he was just a NOC guy for the last 10 years..." type of thing and pass. But, prove them wrong and show results. Give example websites and have specific examples of the work that you did.
A lot of companies now days hire people who don't know what TCP/IP or a port is, yet, they claim to be web developers. If you have one thing, it's experience with the software domain and you are going to be able to look at problems differently than somebody out of college. Use this to your advantage.
Best of luck and welcome to the joy and pain that is programming!
Seriously. In an interview with older guys, the people doing the interviewing want to know:
You won't be constantly challenging their authority.
You will be open to new ways of doing things.
You want to learn.
You can learn (show evidence).
You can take orders and carry them out and execute well.
Won't be cynical and infect others with cynicism.
You can integrate well with the team (you're not a douche).
Don't badmouth previous employers. Don't come off like a know-it-all. Be eager and positive, both in the position and cultivate those qualities personally.
It sounds like you can learn, and you've got a positive attitude. Getting that first break might take some effort, but get that initial experience and you're golden.
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
If you're interested in programming, learn it and do it. Don't worry about whether you'll make money at it or whether your employers will think you're too old. Do it for yourself because it's fun and interesting. If the money or the job aspect comes later, icing on the cake.
I cannot speak for all the other languages you listed. But in my experience, as a Database Administrator, a lot of developers THINK they know SQL but honestly you probably don't. It is very rare ANY actually do. I have seen a few.
If you are anything like most devs you did some rudimentary SQL opened a cursor and dragged WAY to much data back to your program. That does not mean you "learned SQL".
I learnt programming over the last few years as my last job wound down and now I do it full time. I ain't great (yet!) but still learning more and more every day and all my previous non-programming experience will do me well as part of the client/project management aspects.
So go for it!
^^^ That was a joke.
Good luck with your career change. Contrary to what you might have heard, programming is not just for young people. There are qualities you gain with age. While you might not want to go up racing against kids for who can stay up longer coding, you've solved many more problems in life than they have. A large part of programming is problem solving. So you have an edge there.
There are many other things that get better with age, but I'm not going to change the subject.
I've worked in a variety of environments from intelligence agency with tons of money to 'agile' web/mobile app development shops with not tons of money. I find that the terror stories of hot, sharp 22 year olds are greatly exaggerated. I work chiefly in the ops side, but I interface with devs intimately. In my current position at a major financial institution, talent is viciously appreciated and coveted. Almost all of the developers and even the ops personnel are 40+. And they don't not innovate, they just do so differently. These are some of the elite crop of perl coders on earth, but they also are coveted for their industry experience and overall business sense that young grads will lack. I have always been the youngest around, and I guess I would be considered one of those hot, sharp 22 year old terror stories, but without sounding too douchey I have not run into too many of my dopplegangers. I have worked in one webshop where the leadoff dev was ~24 and he was quite good at mobile development. If that's your thing then I guess you might want to look out I guess.
I find younger developers approach problem sets with the sort of idealistic, strategic paradigm-shift thinking, eager to bring in sweeping innovation or incorporate a new product that will whizzbang everything to death. This works well in 'agile' shops that have things like scrums and sprints and what have you. It doesn't work so well in more established firms with audit requirements, regulatory constraints, and the risk of an underengineered solution rushed into production costing you millions of dollars per second. These firms value the old guard with the slower, fearless engineering approach to simply thinking a problem to death. Your code must be neat, it must make sense, but most importantly, it must be written by someone who has considered the business implications and thoroughly thought through the logic before the first keystroke has been laid.
tl;dr: You can rapidly gain experience with a programming language. What you cannot rapidly gain at a bootcamp clinic is years of temperance and introspection that has (hopefully) let to your brain being in a confident, mature cycle of problem solving logic and business sense.
If a robot looks in the mirror, does it really see itself ?
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
I highly recommend joining the Association for Computing Machinery, which is the preeminent computing society for software engineers (hardware engineers can play too). It's $200/year and worth every penny. You get access to a large online course library, a huge subset of O'Reilly's Safari Online books, and the entire history of all ACM computing journals, which often have landmark articles available nowhere else.
It's also worth seeing if a local ACM chapter is near you. You can connect at one of their meetings to any number of subject matter experts, who may well be willing to mentor you.
This is slashdot. If you want sound debate, go to Fox News or the Huffington Post
Yes, for god's sake, you can become good at programming at any age and should be employable. Unless you've reached a point in your life where you're confounded by the television remote, you probably have the mental capacity to learn to program (and even that's not a definitive metric). If you're competent and have the experience required for a posted position I've yet to meet an engineer who would hold your age against you. Just remember that if you look for a new job when you have three years experience as a web developer you're going to get paid like a web developer with three years experience.
I don't think your age is an issue, but the fact that you asked the question:
"do I have a chance of becoming good at programming?"
indicates that you have at least some level of doubt. And the fact that you have doubts about your own abilities raises doubt in my mind about your abilities.
I've found that technical skills come in last place over people skills and your ability to learn the functional side of the problem. Where I work, I was given a hint on how to advance my career. My managers told me that they can go out and hire programmers and people with technical skills all day any day. But, they can't go out and hire people who know our business. Therefore, solving business problems and helping end users be more productive is really a factor of your business knowledge more so than your programming knowledge. Knowing the business and solving business problems are what makes you valuable and respected where I work. So, if you can learn enough technical skills to solve business problems, then I think you should be fine. BTW, I'm 49. I finished my BS in CS when I was 41. I've been working for my current employer ever since.
You don't have a clue...
The difference between the 20 yr and 40 yr old programmer is that the former will push untested code into production and all that entails.
We get these discussions semi-weekly it seems that you at least have been unable to comprehend that it takes a mix of experience to make a coding team.
The hardware engineers can gloat when they learn or hire someone to write their user manuals :)
...and does my Android tablet dream of electric sheep?
#naabhaprzrag, #sverubfr-000, #agi-fcbafberq, negvpyr[pynff*=' negvpyr-ary-'] { qvfcynl: abar !vzcbegnag; }
Total BS, programmers get better with age, though they might be less inclined to work free overtime, hence the "bad old programmer" meme.
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.
What does 24x4 mean?
maybe yes, maybe no. As a 59 yr old programmer I have a little insight.
When I was 25, I could work til 3AM with no problem. By age 30, I was a little more tired and my wife did not care for me showing up at 3;30AM. After that, kids slow you down some more.
Also as you get older you get a bit jaded, not quite so excited with this years super-duper new programming language or API. You push back a little bit harder when a manager suggests doing something really new or really dumb.
Those are pretty good reasons for dropping out of programming. Push and pull.
On the up side, experience can make you a better programmer. You can say "you know, screen scraping with three levels of interpreted languages, two net protocols, two levels of terminal emulation and translation, that did not work so well in 1978, maybe still does not work so swift". Than again, maybe it does nowdays.
I expect to be replaced by a robot sometime around 2030.
10:30PM tonight: [knock knock] Are you Sarah Conner?
Then, at long last, the hardware engineers can again gloat.
No. Because the programming robot will deliberately leave the gloat() function as an empty stub in the hardware design robot's firmware.
Speaking as someone who is nearly 40 and has been programming professionally since the 90s, I have to say I appreciate your enthusiasm for the field. However when you start having to deal with PMs and web "designers" who don't understand why building a control takes more than 10 minutes, or building a site can't be done in a day, or why the site doesn't work exactly the way they envisioned (because they cannot properly communicate what it is they want) you'll start getting burned out and frustrated with web development. Top that off with having to make something that works exactly the same in multiple browsers, multiple versions of those browsers, and multiple devices and various browsers for those, yet be identical to the design target and the exercise in frustration that it is, I'd say yes, stick with development. But go for something better like device specific app development, or learn to code for mid-tier and write RESTful web services, or become a SQL guru. Web development is a godawful nightmare that makes you want to pluck your own eyes out.
True, I'd been scripting automated testing systems in C++ for 3 years prior to that, but at 40, was forced to learn vb.net and vbscript. Vbscript begat powershell. Vb.net begat C#. And these days, at 55, I just work through whatever syntactic abomination is thrown my way, no matter how fundamentally unnecessary and pointless (I'm lookin' at you, WPF).
Please do not read this sig. Thank you.
No, you will never be good at programming, but that's okay, because nobody is actually good at programming in my opinion. Some of the best developers I know still make horrible mistakes, introduce bugs, and have complete derp moments. However, we do get better at it over time, and one of the most awesome feelings is looking back at your old code and thinking "Holy shit, what was I thinking? I would never do that now." The awesome thing about this field is that there's always something to learn, always a way to improve. I got a late start professionally too, and I work with devs that are much younger and much older than me, and it's always a pleasure to learn something from them.
If you can approach this field with passion, an open mind, and a desire to improve, then you will do well. Good luck!
That programmers after 35 or so begin to decline and even lose their jobs, or at least part of their wages
This is FUD spread by people who are covering because they are not (and probably never were) very good at their jobs... or by people who are young and can't really say for sure... or who knows who else. I personally know several guys in their 40s/50s who have been making better strides then myself (20s/30s) ... it comes down to experience, personality and capability.
Employees and careers are not square pegs to be fit only in square holes. Everything is fluid and flexible. Are the IDEAL candidate if you are starting a career in development at age 40? No... but then again, are you literally out there, at age 40, seeking a new college hire position? I'd argue you'd be considered less than ideal for ANY career if that is how you are approaching it.
There is no reason you cannot build your personal portfolio by volunteering, writing your own free/pay apps, working open source, etc...
By stating a ridiculous anecdote of programmer decline at 35 you help propagate misinformation. Programmers get better with age: http://www.wired.com/wiredenterprise/2013/04/developers-age/
By linking age with success you've already failed.
My father switched to programming around age 50. One of his early jobs was complete replacement of the payroll system in his company (big outfit but I won't name it here.) He did it, arranged switch-over, and never a byte lost or missed.
You're not in the worst situation you could be in.
Our industry and the career options of our field change so fast, you have to learn new stuff each year, no matter how old you are. If your company keeps you around and basically pays you a salary for you to learn programming, what's you problem? Obviously they trust you and your valuable enough as a progger to them.
Most productive code is of low to mediocre quality anyway and no one cares, as long as it's finished before the deadline, so don't sweat it.
Good luck and enjoy your new career.
We suffer more in our imagination than in reality. - Seneca
I expect to be replaced by a robot sometime around 2030.
10:30PM tonight: [knock knock] Are you Sarah Conner?
I guess that's 8:30PM + 2 hours daylight savings?
I'm 20 and I'm afraid I missed the window for creating a mobile app that Silicon Valley VCs will pay millions for. Do I still have a chance to get on at a startup game developer for the Ouya or did I miss that boat too?
A friend of mine was paralyzed in an accident in his mid 50's, including loss of fine hand movement. He was a doctor (the kind of doctors who work with their hands) and so could no longer work. He decided to teach himself computer programming (he'd never done it before) and within 6 months had a professional entry level job. He is now in his 70s and still coding full time professionally. He didn't become the most cutting edge or advanced hot-shot coder, but a very good one nonetheless, and has managed to earn a good living for 15+ years. The key is this: he was extremely motivated because he wanted to work, and just as important, he is *extremely* bright.
So it CAN be done if you are smart enough, motivated enough, and don't expect to win the Nobel for your comp sci innovations, but set your goal on interesting work and a good paycheck.
Echoing many previous comments. Age does not matter. Like most endeavors you will get out of it what you put into it. It appears that you have put a good amount of effort into learning, and it appears that you have learned what you have set out to learn well. It is possible that the fact that you are older than the average person who is learning programming may work to your advantage. You have life experiences and other accumulated "wisdom" that may make up for some of the non-programming years that you spent your previous career.
Best wishes on your new career.
depends on the angle
rewriting history since 2109
I realize I'm about the 20th commenter to say this, but the popular negativity means naught. And here's my "look at me" data point: I went professional when I was 15. Nobody wanted to hire me because I was unschooled, and a smelly longhair to boot, but I made my own way. I'm 35 now, haven't changed careers (working in private practice now), have encountered absolutely zero age-related discrimination, and don't see any on the horizon.
Do you like it? Good. Do it. See you on github, and welcome to the party.
I know plenty of people that start martial arts with 35, 40 or 50 or much older.
With 3 - 4 trainings a week they make their first black belt after 4 - 5 years, sometimes faster, sometimes a bit slower.
The second black belt they make 3 to 4 years later. If they do continue and don't stop they make the fourth after 20 years of practice. In case of the 40 year old, that is obviously about the age of 60.
If you start martial arts with 60 you perhpas have no 20 years left of fitness ...
How does that relate to programming? Not at all :)
The claim that people in their best ages are unabe too learn anything is wrong, always was and always will be.
If you can become a good programmer depends only on you, your environment (stress or opertunity to evolve) your coworkers, your projects and most of all the pressure around you and the challenges of the project. From boring projects you wont learn much. From super stressing projects neither.
I wish you good luck and interesting smooth projects :)
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
The day you stop learning is the day you die. You're never too old to learn new things and become great at what you are doing.
People tend to generalize however from what you said you should have no problems with your career. The over 40 issue in my experience is that programmers either get burnt out on doing the same thing for a long time, or refuse to keep up with current trends. You will get people that say they have been writing shell scripts on unix for the last 30+ years, well thats great, but what else can you do since not every thing is a unix shell. The fact that your actually looking to improve your knowledge makes you even more marketable and desirable as an employee. people that just want to do the same thing over and over again till they die will not make it in todays IT world.
That's interesting. Someone who doubts his own abilities raises your doubts about his abilities. I'd have to say I have the opposite reaction. People who are overly confident in their own abilities always raise my suspicions that they may be incapable of introspection and self-correction.
Dear 40-year-old, who is not sure if your mind is capable of learning, do you also need advice on more mundane matters as whether you are able to feed yourself and do poopy on your own?
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.
Hi, sorry to be "tardy to the party" as it were, but I hope you'll read this.
Yes it's very good idea to become a programmer at age 40 because EVERYTHING THAT HAPPENS, HAPPENS THROUGH COMPUTERS. You will position yourself very nicely, whether you stay a programmer or go into even one more field bringing this massive ability to program computers (really to engineer large and stable systems, since anyone can hack code).
I've been coding literally (in the literal sense) as long as I could read, and before I could read well. Yet I am constantly astounded by how well people can program who took it up in college or even well after college. It just doesn't make sense to me how fluently some people can deal with algorithmic thinking, on the tactical level (step step step), on the design level (these modules do these things and go together this way) or on the style level (this is a cleaner construction), without years of experience and concerted study.
If you're going to do it, do it well, train for it like a sport. It's very interesting, though, and tends to drive itself.
I picked up programming in my mid-20s and, after a couple corporate jobs, have been freelancing for the last 11 years or so. I get contacted by recruiters on a weekly and sometimes daily basis, I have a nice network of SMBs that I occasionally work with, there has been no shortage of work. My rates are between 85 and 150/hr, and because I have an LLC, all profits are directly paid to the LLC. I pay less than 10% in taxes at the end of the year after expenses and deductions and what not.
If you're a good programmer, have decent social skills, and know how to sell yourself, you can easily make 100k+ a year while making your own schedule. Fuck corporate.
sysadmins and parents of newborns get the same amount of sleep.
I would say, if you go looking for a programming job working for someone else, the odds are against you. Companies will always hire young and cheap if they can get away with it. Even if you get a foot in the door, you're looking at years of climbing the ladder just to get to where the management thinks you should be at your age.
If you're making and selling your own software, nobody gives a crap how old you are - only how good your product is.
Simple answer: like 99% of things, you will learn faster than self-taught kids do.
The only advantage they will have over you is that they started before you. So they have had more time to learn. But kids are stupid. They approach things inefficiently and stupidly and emotionally.
So obviously you'll be fine. Now sthu.. stop wasting your time on Slashdot (trust me.. it's useless a high enough % of the time that/)and you'd be better off taking courses at udacity or codeacademy or something and learning more)
I've personally never worked with truly excellent developers that didn't start at least hacking in their early teens (or earlier). Doesn't mean it isn't possible, but there's a difference between being able to write code, understanding libraries, and truly start running code in your head while actually thinking in terms of the language. And the over 35 thing is garbage, IMO. You move on from programming to design (architecture) or lead roles, but IMO diminishing skills would be due to atrophy, not age.
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'm a professional programmer of 20 years now and not in my 30's any more. I've worked with some very good younger programmers that can run circles around me in terms of putting in 16 hour days when I'm basically toast after 8. What you probably have over the younger programmers is a maturity that employers appreciate. For example, younger programmers (imho) tend to be a bit more emotional, naive, insecure/defensive, not ask for help, obfuscate things trying to be 'clever', get a personal attachment to a project, etc. Older programmers tend to have checked their ego at the door a long time ago and have a healthy separation between personal/home life and work.
That said, sadly, there are many employers who won't hire an older programmer. They may see you as somebody trying to position yourself in an unwanted management role. They may also think they are getting two for the price of 1/2 if they hire that single kid just out of school who's willing to slave away for 16+ hours a day for peanuts.
Find a real world problem you can solve. Program an arduino to wipe your ass or something. Just find that problem and then write your own software to fix it. You'll have to keep your current job for a while while you start but if you can write a piece of software that is well received you can start selling licenses for it. Write an app for android phones and price it at 99 cents. Keep writing apps and build up that passive income. It's an uphill battle but at your age why not move towards working for yourself on your own terms? Your retirement time isn't far off.
The Blade Itself
Having been a programmer for over 25 years, I'm seeing more and more older people starting new careers in programming today. It's not uncommon for one of our new developers to be 40+ and be on to their second (or even third) careers. Stability in older employees being a large mitigating factor over youth (or so it was explained to me). I think you have a good future ahead of you if the nature of the work keeps you interested and you understand that this is an ongoing learning experience. If you're looking to transition into a Senior Architect or Lead Developer role you may be in for an uphill battle but not an insurmountable one (depending on interest, skills and dedication to the craft).
If you can learn all that, and retain it, your good. Keep doing what your doing and you'll have a bright career regardless of age. The reason why so many "older" folk are removed/forced/quit from IT is because they reach a point where they stop learning. Either through their own mind-set (I can grep so why use XYZ to do what I've been doing for 20 years, example) or from their lack of learning ability. I say, if you can learn to be competitive and have fun doing it and enjoy doing it then by all means your totally employable. I've hired older programmers simply because they kept up with the times and actually love what they do. It's the ones who continue to use java struts or EJB that I kick to the curb.
I think it was Goethe who once said "Tell me what a man spends his time doing, and I shall tell you his occupation". We have plenty of "actors" and "artists" who are just waiting tables until they get their big break. If you spend your time designing and implementing software, you are a programmer. It is once again growing extremely rare to find someone who spends their time programming who is not well-paid for it, (if they choose to be). If you find yourself between jobs, contribute to some open-source projects. Keep programming, and get your name out there. The robots will notice 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.
What a load of bullshiz. It takes many years to learn the craft of programming (unless you are from an Indian outsourcer). Once you've mastered programming you really should be learning architecture and networking along the way to become well rounded. Where I work you need to be able to develop, build infrastructure, configure servers, etc. At almost 50 I'm making six figures and am waiting for a 20 something to even understand the difference between run time and compile polymorphism on an interview.
... though not without exception. I would select interview candidates based on their apparent skill and intelligence, and would select the *older* candidate as a tie breaker.
At the end of the day somebody has to tell the computer exactly what we want it to do, and that somebody will always be a programmer.
I didn't START programming until I was 35 (with a fresh BS degree). I'm now 52 and at the top of my game. Yo, kids. Try and keep up.
Would you rather entrust maintenance of a production system with 200 million users to an average 20 year old or an average 40 year old? If you have already been in IT for a long time and understand other aspects of computing well, I only see advantages in your resume.
I'm turning 50 this year, and I spent most of the day coding today, at a job that pays me a lot better than I could have imagined when I started oh so long ago. I've been doing basically a very similar job since 1987, albeit with a lot of managerial responsibility. The exact nature has changed phenomally as I've been working on Wall Street in a number of areas, but I've thrived. Pretty much because I really enjoy the work and have always worked hard to do what I thought my boss wanted. Over the years I've managed 13 people on two continents, then to just myself and now back to a half dozen or more. I have white hair and work almost exclusively with younger folks but they're great to work with. I've never been happier in my career. The technology constantly changes, but as long as you love what you're doing it'll work out great. If you see it as a stepping stone to other things it might be, but you have to put in a bit more effort. Best of luck to you.
Or, they use things like the number of spelling and grammar mistakes in the resumes to help screen, and yours never seem to pass that mark.
Oh yeah, let's talk about ad hominem attacks, shall we? You see, the parent here is a moron. Why?
Well, you see, I can deal with spelling and grammatical mistakes, but Curunir_wolf is illogical. He is too stupid to work for me.
I started programming professionally at about age 50. I'm 72 now, and I still put in a full day pushing electrons around. In the past year or so I have developed applications in Web Forms and in MS MVC 3.0 (Repository Pattern, Entity Framework, and DbContext) . I am currently working with Web services, and overhauling a mission critical application. I am the local wiz for SQL Server, and work-in some Dot Net Nuke stuff.
If you like programming, you will be fine. I program at home in my spare time, which is normal for real programmers. Does that sound like you?
Gloat? The hardware engineers would have to battle with the influx of software engineers battling for their jobs. Pay goes down due to supply and everyone loses.
Once the software engineers are in, there will be so many bugs that the robots won't have an advantage any more, so it will be back to status quo.
Yes, the guy should totally judge his employability by a theoretical programming robot that doesn't currently exist.
Why not? The corporate yesmen and the bean counters have. And the botton line is that the older you are the less bullshit you will believe and accept without question. The younger you are, the less you will work for, the longer you will work and you will accept any and every thing you are told just to please your overlords. You didn't learn shit about how people were treated at the turn of the twentieth century and your overlords want to keep it that way.
Talent doesn't belong only to the young, it can come from anyone at anytime.
The mind conceives, the body achieves, the spirit manifests.
Awesome post, astute observations.
I have a theory about why AI will never replace coders.
I have a theory that AI will just bootstrap themselves to nature and their intelligence will take on a form of its own. Essentially, it will change and evolve so radically that its complexity will be far beyond our understanding and comprehension.
A few things will happen at this point.
1. We just dictate our desires for the machines to work for us mere meat bags.
2. The machines will dictate to us how to live and we reciprocate by treating them like demigods under a new nation of Dumbfuckistan. Why think hard when you don't have too?
3. They exterminate us for being just annoying.
Life is not for the lazy.
No, it dosen't!
Tomorrow is another day...
Every once in a while the world is wrong. Today on the age bias thing the world is wrong. Zuckerberg said "young programmers are superior." He is wrong. Bill Gates said “...a great writer of software code is worth 10,000 times the price of an average software writer.” So if a guy worth 10,000 time turns 50, is he suddenly worth less than the average software writer? Nonsense. It has nothing to do with your age.
The whole "40 years old" thing was never about the 40. That's just people labeling quickly. The reall issue is the "forty years old" thing. See the difference?
You're motivated to learn programming, you're motivated to program. So are 20-somethings. The issue with "forty" isn't the "40", it's the house, the family, the mortgage, the problems, the settling, the vacations, the health, the long hours, the weird hours, the focus.
You've already said that you were motivated, that your entire life was changing. Everyone's got some illness, but yours pushed you into programming, not out of it. I'm not saying that you were a charity case, but clearly someone saw that you used to be a very dedicated and hard worker, and simply needed a new focus for health reasons. So your illness actually worked in your favour.
If you play your hand correctly, you'll promote the fact that you're a responsible, mature, and dependable adult, and you'll easily beat out the younger competition.
The only reason that older programmers have trouble is simply because it's a industry with an easy burn-out. If you learned to program professionally when you were 20, and you became proficient at 25, and you settled into your preferred languages/toolsets/environments at 30, then by 35 you aren't interested in new languages and new techniques, none of which are better than the old ones but they are more popular.
For example, I fit that bill. I'm nearly 35, and I refuse to switch to new languages. I haven't even heard of half of the languages that you listed. So I'll continue with what I enjoy, the way that I enjoy it. In my case, it's my business, so no one's going to fire me. But over time, I'll lose more and more opportunities simply because my language of choice isn't being taught in schools.
At the same time, I'll eventually get bored with my same-old-perfect-techniques after, what, 20 years of doing them? That seems reasonable. And I really won't be interested in starting from scratch learning new ways of doing old things and being at the bottom of the learning curve again.
So that's when I'll likely choose to throw out absolutely everything and pick a different career. In my case, having already paid off the house and the car and such, I'll probably jump around through really weird jobs, because "I always wanted to do ..."
But in your case, it's all new, it's all fun, and you're right on the edge of the fore-front of the industry. That's your asset. That's where you can easily beat me too.
Around 2030, the poster will be retiring...
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.
I'm an analog/broadband RF engineer and I also do signal processing algorithm development and often code up said algorithms. Often the code I write I originally considered throwaway but it ends up going into production because its good enough. Engineering is the discipline of designing something , and coding/programming is implementing it. Sometimes the two are done simultaneously and by the same person (and maybe with an inappropriate job title), sometimes by teams of disparate individuals.
When I do hardware, I think it through and chart out the signal path and block diagrams and then "code" it (schematic/layout/mfg instructions), with some prototyping and simulations along the way. When I do software, I think it through and chart out the "signal path" or flow of information, and then prototype code snippets, test them, and then integrate them into larger concepts. I use matrix style math and discrete/sample theory a lot for designing both... my discipline of engineering is all about the measurement, flow and processing of information, and I tend to think about it in an implementation-agnostic manner. I've gone down several career paths that might or might not have ended with my job being replaced by several "low cost region" engineers. I've stopped worrying about that because I manage my career and anticipate demand shifts and adapt my skills accordingly. I'm more valuable now than I ever have been because I continuously improve my skill set and I teach others those skills along the way.
If you love doing it, Your'e in for a fun ride and i wish you the best. Just continue! My story: I had never coded a single row until i was at about 28. Now I'm 40, and it's still getting more and more fun to code. Learning new stuff, reshaping your old stuff etc. Java, C, Assembler, Frontendcoding with JQuery. One note though. It takes time, practice, time and experience to become really good. But eventually, you will.
When I worked out I wanted to write software for a living at the tender age of about 12, a seasoned software expert whom my father worked with tried to dissuade me. He told me that it was only a matter of a few short years until programmers would be obsolete, ironically replaced by the very systems they were creating.
This was in 1979.
After 30+ years in the biz I can confidently say he was full of shit.
I spent the second half of my 30s teaching myself lots of coding - Perl, R, Javascript, a bit of PHP, Ruby, Python, Linux admin stuff. I did bits and pieces of contract work during that time, but nothing too serious. Age 39 one of my open source buddies asked me to help him on a contracting project, so I've been ongoing subcontracting for him for the last three years on what's become quite a successful product.
39, work in marketing as my day job, would like to learn to code properly, am currently working through the Harvard CS50 open courseware and learning a lot. Only problem is time, I have young children and a demanding day job, finding spare time to experiment and learn is hard. I really wish I'd focused on this when I was younger.
Yes your career IS at a dead end except with your current employer - pretty well no other company will look at you if you're over 30 - the only thing that would make it worse would be being a woman.
People change careers mid-life all the time and make the leap to something new. There's nothing magical about programming or coding that means people can't learn it; but at any age, if you don't have a familiarity/comfort with computers, and if you don't "get" them, it will be an uphill climb. There are people who will discriminate against you, but the reality is that almost everyone gets judged unfairly for something at one point in their lives or another. And, while there's a lot of ignorant comments to your post, most of those people aren't hiring managers.
> It was never engineering, my friend.
Oh yeah it was, and is, my friend. Just not in your consumer-grade-piece-of-shit environment called x86/wintel.
CLI paste? paste.pr0.tips!
Hello! Is it possible to become a sysadmin after 25?!
So you've slave bots bringing up and production ramping your hardware after you type in your c and Verilog code. It's a dangerous yet very pervasive trend that seems to have set in these days reg hardware = computers building computers. What about RF, Switch mode AC and DC-DC. Guess one could synthesize that too. Sick.
Ok, I'll give you that, I can directly think of an example of a coder that started later in life and still didn't completely grasp the QA / Layered release processes of good software development.
I still think, it can go either way though, the 40 year old can have relevant process experience that is almost directly applied to IT (R&D is a good example).
Its always a good idea to have the slot machines make a lot of noise when they pay off.
Seastead this.
As opposed to my consumer-grade-piece-of-shit environment called x86/linux, a lot like what powers /.
Right. Someone else built that.
deleting the extra space after periods so i can stay relevant, yeah.
"Is my new-born career a dead end"? Absolutely not. If you want to do programming well into your 60s, then do it. Don't pay any attention to anyone who says you can't because they don't know what they're talking about. They may try to denigrate the "old farts", but those "old farts" know a lot of stuff that can't be taught in computer science class. And they write better code, too.
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.
The exact same statements were being made when I was programming in the 1970s - I think SQL was going to be one of the tools that meant we didn't need programmers anymore and end users could just produce what they wanted.
I am now in my 60s and have about 2 years ago returned to paid employment as a programmer instead of retiring (after having a career that eventually took me out of programming and into management) because I had continued as a hobby when I got too senior to do it at work, and it seemed like a good idea to earn some money doing what I regard as fun.
Some of the time I've had to learn new stuff (for instance .NET, C#, EntityFramework) and other times remember stuff I'd done before (Microsoft Access) but also much of the newer versions of techniques I had started deploying as a technical manager in the 1980s (version control, data modelling ) and stuff I picked up whilst persuing programming as a hobby (test driven development, Javascript).
I am continuing to be paid, and it doesn't seem like that will end anytime soon.
There no Dead End if one is progressing, building useful knowledge, producing meaningful results and show added value to his team. HTH/T
Changing from Nothing to One!
Is my new-born career a dead end, or do I have a chance of becoming good at programming?
Show us your code and we'll let you know for certain.
For a while, every new push was intended to replace programmers. Assembly language was once considered automatic programming, since it handled all the messy memory address stuff. COBOL was pushed, early on, as a way to get rid of those pesky programmers. In the 1970s, "fourth-generation languages" were supposed to allow anybody to program. People pushed declarative languages as a way to get away from programming.
And, in truth, this worked to some extent. Non-programmers can do more than ever before, whether it be setting up a complicated spreadsheet, entering report criteria, or writing Lua scripts in an on-line game. However, programmers have taken the new tools, every time they caught on, and used them to do more and more neat things.
Whenever we take real-world needs, we have to translate them into something precise and formal to be able to computerize them. Unless and until we have real AI, capable of understanding human thought, this will have to be done by humans, and that's the essence of programming.
"When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes
Unlike in Capitalism, Globalization demands you to be an "Highly Skilled Wage Slave" to get/retain a job
Casteism
I went back to school to do a comp science degree at 45. I know I will never work at Google, but most compute problems don't require rock-star programmers. I do make important contributions, and look forward to going to work every day!
I don't have to speculate: I started my programming career at 41. This was back in 1986, so it was a different landscape back then. I had working doing PC tech support for a very large insurance company for 3 years, prior to which I had almost no computer experience. I did show a strong ability to grok the technology right off the bat and I was passionate about it and pretty much poured myself into all aspects of it. It was also a very exciting time - there was a lot of inspiration in the PC world.
I started programming as a natural extension to developing support systems using dBase and then Paradox on DOS, so my first steps were in 4GL. But after a couple of years,I decided that I wanted to learn Windows Programming. That meant diving into hard core C programming and wrestling with the with Win32 API. I did rather well all things considered. At that same insurance company, I was one of the lead programmers for in house desktop OS apps and I was also personally responsible for getting Windows established as the standard desktop OS and gleefully managed to piss off IBM in the process. Then I watched MS turn into total douche bags when they attacked me and my department for getting Borland products widely used in my company.
I finally got sick of the corporate scene and joined a small consulting firm where I focused on 4GL development with Pardox For Windows and then Cold Fusion when the web became dominant. After 15 years, I burned out on coding. Now I'm a full time DJ, part-time support and networking tech - poorer but happy.
So, I say go for it: coding is still one of those things that either you can do it or you can't and if you're good, you''ll find work.
Being a good programmer is actually all about discipline. Something that is likely much easier for you than the youngsters. No one likes a programmer with tons of bravado and not enough sense. Code needs to use good design patterns and be well tested, not thrown together as a rapid prototype then squirted into production. The best way to program is to continually educate yourself and adopt new best practices. Continually challenge yourself to work on new technology that would be useful if you were to need to change jobs.
A lot of older programmers I've known fell into the trap of maintaining one component, working with one technology. They probably felt secure that it would be too difficult to replace them, especially if their code was unintelligible. But this, invariably, did not work out. And then they are left without current and marketable skills. I don't know if the passion for acquiring new skills weakens later as I'm still in my 30s but if you no linger have a built in drive, you must cultivate one to stay relevant. But, some programming skills remain relevant regardless of language or platform.
please, please read "Design Patterns" by the gang of four and "Clean Code" by uncle bob. They should be required reading in every CS curriculum. Sadly they are not. Those books? Recommended to me by an awesome white haired software architect.