Ask Slashdot: Am I Too Old To Learn New Programming Languages? 772
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?"
Comment removed (Score:4, Interesting)
You're Never Too Old (Score:5, Interesting)
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 [railstutorial.org]. 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.
Stick to project management. (Score:5, Interesting)
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.
No one's too old (Score:4, Interesting)
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.
Re:Stay Put (Score:5, Interesting)
So: Are you twice as productive as two average 25 year olds?
By the time any decent-sized project ends, why yes, he is probably twice as productive. He has also created half as many problems for everyone else, gone down dead-end paths much less often, and is the one person the QA department likes.
I wish I had mod points. I've been writing software for over 30 years and completely understand where Number6.2 is coming from. Plus, I'm in kind of the same boat, facing many of the same decisions. I opted to jump to mobile development, which is new/great/fun, but the company I'm working for is getting cold feet. Makes one wonder about the future.
Re:Too Old to learn a programmign language at 40? (Score:2, Interesting)
C# is mostly Delphi (Score:5, Interesting)
Re:Stay Put (Score:5, Interesting)
Your problem is you keep looking down the same road.
You are a programmer, over the past 2 years you should have been looking at updating your skillset to slide to an industry that is desperate for people.
Embedded programming.
This is what I did 4 years ago when everything started to go sideways. While working as a Corperate Code Ape I started studying embedded systems. I found it was easy, you just cant be lazy and expect the system to have a 8 processor core with 22TB of ram. You get a 33mhz processor with 128Meg of ram to run your Linux OS and your app in. no you dont get Swap space...
SO I slid over to that, I applied at a job and was hired instantly because of my extensive experience in programming and have been headhunted monthly ever cince.
Stop trying to do what you are used to. Find a CS career that is hit and heavy demand and slide into it. Programming detonators for Cruise Missiles or lighting systems for hospitals is far more lucrative than anything you will find in a corporate CS job reformatting TPS reports for the Accounting department.
Learn Industrial control, you know interfacing with real hardware.. The cool part is a bug can kill someone so they actually encourage you to take your time to test and fix bugs! It's refreshing!
Re:Stay Put (Score:5, Interesting)
Ah, you're mixing up programming language and frameworks. You do realize that the type of guys we are talking about have seen frameworks come and go? Heck, I've seen frameworks come and go and I'm only 34. Remember Enterprise Java Beans? I'm not saying that they aren't used any more, but they were all the hype back when I was a young programmer.
It is true that programming has more become like Lego. Stick together the parts in the right combination and that's it. I am however convinced that someone with the "development way of thinking" who is give correct documentation about the required frameworks, can figure it out. Perhaps not as quickly as a language itself, but the odds are that an experience developer has seen something similar somewhere someday.
Re:Learn one, learn 'em all... (Score:5, Interesting)
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.
This is just as frustrating from the hiring side. I'd rather someone who can demonstrate problem solving skills and some general programming background than someone who has nothing else going for them but 5 years of experience in our primary language. But communicating this concept to HR and the recruiters is painful at best.
Re:Stay Put (Score:4, Interesting)
Quite likely. Having two people work independently on the same code is a challenging problem in itself. You have to spend considerable time delegating, and if the problems fall on the same code areas, merge conflicts become quite likely which also take considerable time to sort out. A 55 year old doesn't need to be two times more productive at writing code to be two times more productive in the organization.