In the ever changing world of programming, how often to you catch up on a new language or technology? I have heard it said that one should learn a new language yearly. Is that always true?
closed as not constructive by Yannis Rizos♦ Mar 8 '12 at 15:27
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or specific expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, see the FAQ for guidance.
How often do you expand your skill set?
You should expand your skill set continuously.
I have heard it said that one should learn a new language yearly. Is that always true?
Not necessarily, as most languages take more than a year of experience to really know inside and out. Do try to expand outside of your world of knowledge though for example if you've never tried functional programming, there are a lot of good lessons to learn for all programming by knowing some functional programming languages.
If you haven't tried dynamically typed languages and you'e only used statically typed languages, then try that as well. If you've only used managed languages with garbage collection, then try a more native language.
If you've never done socket communication then regardless of the language try it out. Your time doesn't always need to be spent learning basics of new languages, often you can learn concepts that apply to all languages equally.
When to learn it?
If you are a good programmer then you love to program, even on your own time. So take the time and learn things on your own time after work.
If you can't use it on your job because it's not appropriate you could always try to find a job that is more cutting edge as well.
How to discover what to learn?
It's always a safe bet to learn what's hot. And figuring out what's hot is easy if you are following some popular twitter figures, and reading blogs.
But above all if you have a big interest in something then consider learning that instead. It will make you unique and stand out above the rest.
Unless you want to get stuck in a niche (for example, those godforsaken Cobol programmers), you need to keep learning.
You should be expanding you skills constantly. Sometimes, all you need to is knowledge to your existing skill sets. You can always learn about some new library, or some new tool, or the new version of the tools you allready know.
About once a year, you should really try to learn something big. Learn a new language (especially one in a paradigm you don't currently know) or learn to develop on a new platform.
And of coarse, there is always Stack Overflow. I've learned a lot asking, reading, and answering questions on the site.
Some interesting views here! I'm a Java programmer by trade and love programming. Although initially when I first started work after graduation it was simply about getting on with work where I didn't think too much about broadening my skills set but since of late I have been learning some new concepts/technologies (time permitting balancing with family life) as this understanding sure is valuable and help make you a better programmer!
Company I'm working with recently starting thinking about introducing your own personal time space perhaps a few hours to a day every month to do some own work that interest you and beneficial to the company.
I'm not sure though if a new language can be learned every year but I guess to a certain extent you may not know the full inside out yet! But I guess even spending some few hours each week reading, trying something out or even reading some topics in stackoverflow you learn something new! Fast world out there!
Yes, you should always be learning something new, and a new language every year is ideal. Having said that, it's probably hard to keep up with if you have a day job and a life outside programming.
I think if I hadn't at least heard about and played with a new language for about three years, I'd start to worry that I was falling behind.
I try not to avoid new challenges. Even if I'm not skilled at that particular thing, I read up on it, ask more experienced coworkers. There is nothing worse than solving a problem and not knowing why it actually works. It will come back and bite you.