Ask Slashdot: Am I Too Old To Learn New Programming Languages?
ProgramadorPerdido writes "I have been a developer for 25 years. I learned Basic, VB, C, FoxPro, Cobol, and Assembler, but the languages I used the most were Pascal and Delphi. I then concentrated on a now-non-mainstream language for 11 years, as it was used at work. One day I had the chance to move into Project Management and so I did for the last 2 years. Now, at almost 40 years old, I'm at a crossroad. On one side I realized developing is the thing I like best, while on the other side, the languages I'm most proficient with are not that hot on the market. So I came here looking for any advice on how to advance my career. Should I try to learn web development (html, xhtml, css, php, python, ruby)? Should I learn Java and/or C#? Or am I too old to learn and work a new language? Should I go back to PM work even if I do not like it that much? Any similar experiences?"
I'm 55, a programmer, and I've been out of work for two years. I've had plenty of interviews, but no job offers. Here's my take on all of this: I'm too old to be a programmer. I'll put my "management hat" on and tell you why:
1. I'm old. One 5 hour energy drink revvs up your basic 20 year old code monkey all day. I need a saline drip with caffeine in it all day to keep going.
2. I'm expensive. I have 30 years of experience in the 'biz and a masters degree in CS. I'm not cheap. You could hire two 25 year olds for what I'm asking.
3. (and what I consider to be my greatest failing in the corporate world) I've seen all the tricks. I've been exposed to every nasty little mindgame management has at it's disposal. And sometimes I have the bad manners to call people on it. This is called "having a bad attitude".
So when I compete against 20-somethings in the worst economy since 1929 (I hesitate to say the worst economy ever), I lose. I should have made the leap to management when I had the chance, not because I would have loved management (I would have had to manage assholes like me, after all ;), but because at 40 you have TWENTY YEARS LEFT. The years go by really, really fast. You should really start thinking about a soft place to land when you're 60 now, because if you aren't in line to be a VP or a Director you ain't gonna make it at this point.
The suggestion to "Follow Your Bliss" only works in an economy that's not run by sociopaths. Hell, it only works in a country that's not run by sociopaths. Strike one strike two. Tighten your belt, put as much money away as you can, and make sure you keep your health up. Because the era of "company loyalty" is over, COBRA for a family costs as much as your mortgage, and finding a new job is going to be a real challenge.
Other than that, have a nice day! :D
"If god did not exist, it would be necessary to invent him" --Voltaire
Yeah sorry, at 40 your brain basically fossilizes, and becomes a FIFO stack.
If you learn a new programming language, you WILL forget the old ones.
If you're still proficient with COBOL you can give ABAP a try since it's similar. There's a lot of SAP work around and, at least in my experience, the big corporate environment is willing to hire experienced developers.
English is not my first language. Corrections and suggestions are welcome.
https://secure.wikimedia.org/wikipedia/en/wiki/Assembler_%28computer_programming%29#Related_terminology
PocketPermissions Android Permission Guide
I firmly believe you're too old to learn the day you stop learning.
Never ever quite learning the latest and greatest in programming, to do any less is condemning ones own career path.
Having recently joined the ranks of older programmers I still find that I can completely crush the new kids by leveraging that vast experience I already have.
Dust off the learning hat and get back into the fight man, 40 isn't a time to lay down and die... last I heard 30 was the new 20 and 40 was the new 30... and we're all going to be broke in this economy so who cares in the end?
I'm about your age. My impression is that new learning is still possible, but it requires more time and effort. So I'd say it partially depends on how motivated you are.
The concepts are what are hard to learn, the syntax is the easy part. So many similar languages may trip you up at time, but if you can work through the syntax differences and keep hacking at it it's not too difficult to learn.
If you think you might be too old, then you are.
Ask Slashdot: Am I Too Old To Learn New Programming Languages?
Barring extreme physical exertion and danger, you're never too old for anything. If you're too old to learn something new, you might as well lay down in your grave and wait for death on the grounds that adopting a fatalistic attitude toward new experiences basically ensures you're done with life. That's my opinion anyway. Seriously, if you can't do something new, what exactly are you looking forward to?
I do have an important question though: how did you come to begin programming? I am unfamiliar with what would have been available paths back in those days. Did you get a degree via courses in logic and mathematics? Trade school? Taught yourself? Mentored?
I believe Pascal is closest to a procedural language and Delphi is the object oriented equivalent? So that's a somewhat diverse start. Are you familiar with concepts like (but not limited to): closures, sets, Big O Notation and understand the difference between a framework and a library? These are things that I might not use daily coding Ruby and Java but I remember from school and I feel better prepare me for learning any new (or old) language. If you aren't familiar with these things, it might pay to consider taking refresher courses at a nearby college to brush up on them. I don't know how viable this suggestion is but on the grounds of learning new languages, it has proved invaluable to me in understanding why language creators made the choices they did.
Should I try to learn web development (html, xhtml, css, php, python, ruby)? Should I learn Java and/or C#?
Personally I would suggest Ruby on Rails with CSS for a solid UI. You're going to need to know concepts like RESTful interfaces and it might take some getting used to letting the Rails automagic do things for you but the resources are plentiful and free. It sounds like it will be totally out of your comfort zone and that's probably a good thing if you're up to the challenge.
Should I go back to PM work even if I do not like it that much?
In today's economy? Why not make two resumes: PM and Programmer. If PM skills pay the bills, hop on it and work on programming as a side hobby. If the right Programmer position comes up and the pay is good, consider it but don't set yourself up for failure or take too large a risk if your home/dependents/nestegg are at stake.
My work here is dung.
In WW-II Japanese air force promoted their combat aces to ranks so high they out ranked their base commanders. They kept assigning themselves most dangerous and glorious combat missions, eventually all of them died. But Japanese did have a few aces notching up dozens of kills. US, on the other hand, does not have any reaching even 10 kills. The moment a combat pilot notches up 5 and qualifies to be an ace, he is transferred to the training command and is made to teach those skills to a new crop of young pilots. Some of them eventually transferred to NASA test missions and flew research aircraft.
So though you love coding, switch to project management. I am speaking from experience. I loved coding, and stayed in programming for far too long. I am doing project management now. You can always code in your spare time, doing what you like.
sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
nope, even IBM still calls it "assembler" at times
for example http://publibfp.boulder.ibm.com/cgi-bin/bookmgr/download/asmr1020.pdf or http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/index.jsp?topic=/com.ibm.mq.csqzal.doc/fg19060_.htm
you diaper wearing puppies can go off and make up your own rules if you want, but don't be surprised if we older and wiser suddenly beat you with our ear horn
Being "too old to learn" is mostly an excuse. Unless you have a brain injury of some description, or a brain disease, you're never too old to learn anything. It might take slightly longer, then again - it might not.
Nearing 40, I'm learning Verilog which is not merely another language, it's a hardware description language and although the syntax looks familiar to a language you write software with, how you use it is radically different. This has certain challenges, but there is no problem with actually *learning* it, nor some of the very big differences that "writing hardware" so to speak has compared with writing software. Also, while we had a slack period at work I made a start at learning Erlang, which looked like it had some useful applications for what we do, and had no particular problems learning it despite it being a functional language whereas everything I've done to date has been an imperative language.
In fact to learn a new language within the same family (for instance, if I were to learn Python) today I find it much easier and much faster than I did 20 years ago because depth of experience can help avoid the dead-ends, and we have much better tools which can also help us to learn faster.
This, by the way, applies to human languages. "I'm too old to learn a foreign language" is an excuse. "English speakers are bad at learning foreign languages" is an excuse. I started learning Spanish 3 years ago. Today, I'm at an advanced level and have even stood up in public and given talks in Spanish. I can think in Spanish and conduct my entire daily life in that language. I can even laugh at humorous programmes on Spanish TV, which proves that I'm getting to grip with it pretty well. Until 3 years ago I was monolingual so it's not that I'm getting a handy lift-up by knowing some other foreign language.
If you believe you're too old to learn it'll become a self-fulfilling prophecy and your brain will wither away.
Oolite: Elite-like game. For Mac, Linux and Windows
Hogwash. I didn't start working as a software developer until I was 50. I learned Java, Perl and PHP in a year or so. I already knew C and FORTRAN at that time. Since then I've taught myself Python, Javascript, Scala and Ruby. I've recently started Erlang.
A year later I taught my father C; he was in his mid 70's and wanted to right some software to do some statistical analysis of stock data.
Don't let these whippersnappers tell you you can't do it. The fact is that is they know it, it's easy. The stuff that is actually hard is the math, and since you went to school more 20-30 years ago you have a far better education in the fundamentals that count than they do.
NOW GET OFF MY LAWN.
I've been in the biz a long time. My observation is that you probably have to choose between doing what you like and money. If you like money more than personal work satisfaction, pick the management route. It's the better choice for us geezers finance-wise. But if you truly prefer coding, and money is secondary, then go for it. You may have to dumb-down your coding resume a bit, for "experience" works against you, and keep your asking price mellow. Only briefly mention your distant experience on your resume, they don't know or care what a DEC is.
Table-ized A.I.
You could always start your own company. Use that opportunity to learn hot skills. Like mobile platform programming such as iOS and Android. Start as a consultant so you can keep your day job.
Advantages
1. you keep an income as you develop your career
2. you create your own management position
3. you develop advanced, in-demand skill sets that are only getter hotter
4. if your day job disappears, you can build your moonlighting career
5. if your moonlighting career fails, you have the skills to seek another job
Disadvantages:
1. You gotta be brave and disciplined.
I'm nigh on 58 and still a developer. I am content to keep writing code.
I tried being a PM and it amlost drove me into an early grave. It is not for me.
So I went back to developing.
The company where I worked went belly up two years ago. Sure it took me a while to get another job. Not for the reasons stated but many companies couldn't hack the 'I don't want to be a Manager' answer to the where do you see yourself in 5 years question.
Finally I got a job where they were happy with that answer.. sure I could earn a load more if I were willing to commute for 3hrs a day but those days are behind me.
In three or so years I'll call it a day and retire. I will be able to afford to do that because I saved loads in my 20's, 30's & 40's.
to the OP,
Stay with it. There will be a job somewhere for you. Somewhere that will appreciate your experience and honesty.
Good luck
I'm 66. In the last few years I've learned enough Python and PHP to do useful work, and learned Linux enough to get an LPI cert. Considering all these things are free to download, there's no barrier preventing you learning, except your own false belief that you are too old.
"Cock Up Your Beaver" does not mean what you think. This sig is intended to clog filters and annoy do-gooders
As a 37 year old that has programmed 100s of k lines of code in several languages for the last 15 years, I've found that understanding fundamentals is more important. With a language reference handy I can write functional code in a new language immediately, and optimized code that accounts for language peculiarities in a couple months. Mind you I've really only been working with imperative languages mostly, so a different class of language may take more time. Anyway the point is that if you really understand the basic control and data constructs that most languages share, you'll get by fine with a new language. But as others older than I have pointed out, you may want to look at the bigger picture and longer timeframe re: your career. So far I've been getting away with ignoring my age as a numeral and just forging forward to the best of my ability, but life is limited and that strategy probably won't last until the end. In any case, age is just a number, and it has a strong placebo effect, so go with what youve got instead of what you are supposed to have at your age.
LS
There is a fine line between being a cultivated citizen and being someone else's crop. - A. J. Patrick Liszkie
Can you learn a new language - sure. As another poster pointed out - is it worth it? Unless you want to compete in price with a bunch of newbies; probably not.
A development team or shop is like a baseball team
There is the rare superstar that gets top dollar because they can do things nobody else can' which is why they are rare and expensive.
There are a few solid players who have decent careers because they have a good skill set and can be depended on to deliver. they make a decent wage but no where near the superstars. They stick around.
The biggest group is the journeymen players - they hang around a few years but there is always a crop of younger, cheaper players coming up to replace them. they never get serious money. They get churned to control costs.
Then there are the managers and coaches. They are valued for their experience; they know the game, seen all the tricks and can guide a team to victory. The may not make superstar money but they are paid well and they have longevity (as long as they perform) and options to move if they do well. They stay up on the game but don't try to play. Plus they decide who gets to play, where they play and who stays and who leaves.
As others have pointed out, there's always someone whose cheaper or wiling to work for less when it's a pretty generic skill set. I'd use your experiences to move to a place where your knowledge and experience is what is valued; rather than try to build a new skill set. Learn new languages to be able to identify good vs. bad programming; but base your value on being able to identify problems before they hurt you or solve them as they come up.
I can't code a line (unless it is Fortran) but I can manage a team and clients to get the job done on schedule and budget. It can even be fun -I've never believed you need to be a jerk to be a manager.
I'm a consultant - I convert gibberish into cash-flow.
If you're familiar with Delphi, then C# should take about five minutes to pick up. It was designed by the same architect as Delphi, and you do almost everything in the same way. It just uses C syntax instead of pascal. But ha at being too old, my dad picked up Delphi in his 40s and it's his favorite for RAD. He still uses Delphi 7 (the last good one) for everything, and grumbles about there being no Mac version. "Use Lazarus, it's exactly the same" "No, too hard to use" "It's identical!" "No it's not". Then again, he's probably trolling, he was mocking my use of a smart phone "My phone makes calls and that's all a phone is for!" and then he bought a droid ;)
ASCII stupid question, get a stupid ANSI
You aren't too old, but unfortunately you've used VB.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
If you could program one language, you can program in any language. It's inherent on the Turing-completeness of programming languages. It's all just a matter of syntax. Sure, mastering a language takes time, but you've probably see already much things and that means you can easily apply what you know to the knew languages.
See, I agree with you 100%, more if I could. In my years developing, most of the languages I now use to program are not the ones I was employed to do, but ones where I've been dropped into a project, had to hit the ground running and learn on the fly. It's not difficult, once you know the concepts of *how* to program.
But. Try going in to a job interview and saying "No, I don't have 5 years of this language, but give me a week, some small changes to work on and access to google and I'll be able to program it as well as most of your other developers". It may be true, but it doesn't wash with HR people or project managers. They have a ticksheet of skills and levels and they don't care a damn how easily transferrable any of them are - if you don't have it exact, tough.
-Never argue with an idiot. They drag you down to their level, then beat you with experience-
Hell I did some of my best programming/system design when I was 40! But I do find it odd that you would be asking about learning a new language... that's something you should have been doing all along. Part of the challenge of being a good developer is staying on top of the latest trends and development environments. In fact, some days, the only thing that keeps going/motivated is knowing that there is always an opportunity to learn new things.
Wanted: witty unique signature. Must be willing to relocate.
I too come from a (mostly) Delphi/Pascal background and switched to C#.NET about a year ago. It's amazing what you can do in C# and the learning curve for Delphi veterans is not too steep. Trust me, choose C#, you will not regret it.
I was similar to you then at 40 decided to learn genetics (genetics is just programming right? :) . Turns out high-end biology is full of enormous data analysis and management problems, and now I mostly do coding and stuff, with a little project management thrown in, but in a more varied and interesting domain than billing systems I specialised in before. I picked up perl, bits of python, java, javascript along the way, and moved from the propriatory monolith databases to the open ones. You have a wealth of valuable skills already, and are not too old to learn something new. Be prepared to do it for less income, If money is your main motivator, stay where you are but switch to managing something bigger in a different organisation, that seems to be the best way to keep fresh and keep working up the ladder if you don't want to start something completely new.
Korma: Good
You're 39? You're just getting started. You have another 30 years of employment to go. Don't quit now.
When planning your future, you should ask yourself two questions: 1) What kind of job do I want? And 2) what kind of work is plausible for me, given the state of the industry, my age, my skills, my location... and most of all,
my attitude. Do I still want to kick ass or not? If not, that's your real problem.
Professionally, learning yet another programming language won't mean much unless you can also show meaningful experience using the language to build something of value.
More importantly, it's not proficiency in a language that will open doors at your age. It's the ability to deliver solutions -- on time, on budget, that work. If you've been a 'principal scientist', or 'software architect', or 'lead programmer', then you can turn your experience into an asset. These roles are out of reach for kids right out of school. But if you can talk a good game, show that you know how to design, coordinate, and integrate the many components needed to deliver a new software service to your employer (or a client company), then you're a rare asset and you possess skills that are far more valuable than being conversant in yet another programming language.
BTW, I'm 53 and since I was your age, I've developed proficiency in several languages (high performance computing, image processing, matlab, R, perl, java, C*). But what I value more (and I think future employers will too) is 1) my ability to take a leadership role in driving a project to a successful conclusion. And 2), I'm willing and able to learn. I've completed several advanced courses part-time (3 grad CS/EE classes in the past 3 years). In doing this, I've shown that I can adapt to changes in the workplace, and reinvent myself as the work changed.
Strategically, I'd suggest that you adopt a 'leader/innovator' attitude in your current workplace and in future interviews. If you look like someone with ability, a 'can do' attitude, and impress others as being engaged, inventive, and innovative, you can break down the negative stereotypes that often beset older techies. At least that's worked for me so far.
A final word of advice. Do NOT express your opinion (*especially* negative ones) on any technology or business philosophy, and don't disparage the quality of your technical skills. DO emphasize that you have learned how to get things done, and have a track record of doing just that, ideally by understanding the business, anticipating needs, inventing and delivering solutions, ideally by leading others.
Good luck.
Come on, cut zget some slack. By his number he's probably been programming for about 3 days or so. As to the original question of "Am I too old?", just try & see. If you can learn a new language, then the answer would be "no."
Seriously, if you are asking the question, then you need to take a shovel and dig yourself a nice lil' hole and go for a dirt nap. I'm a practical idealist. Sounds like an oxymoron, I know, but yeah, I'm 45 yrs old and I keep learning new stuff everything. I'm a developer, an instructor and I do believe that the day I stop learning, the day I think I know enough, that's the day I should just kill myself. Do you like programming? do you like a challenge? That's what you should be asking yourself. You claim to have 25 yrs of experience, have you not learned anything yet? what's so freakin' challenging about a new programming language when you got all of the other ones under your belt? I have a basic, c, c++ and assembler background. You seem to have a similar one, with even more including cobol. What's out there that you wouldn't be able to conquer? So, it's not if you are too old, but rather, do you give a crap. If you do, go for it, it's always useful and it won't be a waste of time especially\ if it's a hot commodity to learn. Unless you are kinda mediocre as a programmer to begin with, but hey, that's a story between you and your previous projects/employer. And yeah, there are a lot of young ones out there in the market and they don't charge as much or work twice or three times the amount of hours to get it done. I laugh my ass off when I see that. Because for me, I can get the job done in half the time, and it's done right. Why? it's called experience. Every project I've ever done has been a lesson learned in trial and errors. Even in success, I learned that it could have been done better and basically applied this knowledge to my future projects. By now, having myself 20+ yrs of experience in the field, I've yet seen anything which doesn't relate in some ways to something I've done in the past. How you sell yourself is how you define the relevancy of you as a person, a resource and then skills you have to offer. Keeping with the current trends and lingo of the industry is all about learning, nothing different than learning a new programming language. So, do you give a crap? do this industry still make you excited? Those are the questions you need to ask and you are the only one to provide the answer. Cheers! Claude
"Basic, VB, C, FoxPro, Cobol, and Assembler, but the languages I used the most were Pascal and Delphi."
It's almost like you've gone out of your way to avoid every popular language (C being the one exception). You're in a more difficult position than most because you don't have much experience in any of the top languages employers are looking for (those being C++, C, Java, PHP, Perl, C#, Python according to most studies). How did you let this happen would be my first question. It seems hard to believe someone who takes their career seriously would manage to avoid experience with all the things employers want.
-Lod
That's not abstraction. I just want to "print", I don't care what does the printing. If I have to care about such details, it's the opposite of abstraction. The definition of abstraction is hiding irrelevant details. It may be relevant in special cases, fine, but not 99% of the time. Make it require more explicitness in just the special cases, not "always".
Table-ized A.I.
In other words, start a company. If you're not inspired, find someone who is -- you'll need a team anyway. There's no security, no health care - wait, that's pretty much of jobs. Especially if you lose a job. Some may call it a bubble, but however long it lasts, right now there's plenty of money chasing social media plays, and a few other techie kinds of things. Take it and you may succeed. If not, you're actually better off than you were before, because now you have startup experience, and are more likely to be hired into another startup.
Michael Odza, Digital Media Strategist