While spending time recently looking for something new to learn that looked interesting, and it still being so close to new years, I was reminded of a bit of advice from the book “The Pragmatic Programmer,” learn a new language every year. But is learning a new language every year actually helpful? I’ve struggled with this idea for quite awhile, even before I had heard of the book. It has become, and still is in my eyes, an idea that holds a lot merit for many people, but not for me. I’ll admit that knowing only one language, or skill, can be very stifling to your career, but being a jack-of-all-trades isn’t necessarily the best position either.
First off, there is no way to learn a language in one year; it’s not possible. There are so many things to learn, and so many variables in that space, that unless you work with it every day for multiple hours a day, there’s just no way to learn and become proficient in that amount of time. The 10,000 hour rule states that to excel and have success, you must practice a specific task for around 10,000 hours. In one year, there’s a good possibility that you won’t even hit 1,000 hours. But after that one year, even though you may become knowledgeable in a language, the amount you won’t know is so vast that all the time spent learning something new may have been better spent learning more about the current languages you already have a firm grasp of.
Another problem is the time of one year. One year is a long time; the end is far, far away. I have vague ideas of what I’ll be doing, and what I wish I will be doing a year from now, but one year is too long of a time period to measure any real goal. Six months is even too long! The reason working on a project using Agile methodologies, and in this context I’m speaking specifically on iterative development, is so much better than waterfall is that there are real goals in a foreseeable future. If my team agrees to do X amount of work over the next three weeks, it’s easy to see where I am now, where I’m going, and the amount of time it should take to get there. I can see my goal progressing every day and it’s encouraging.
Learning a language, though, is subjective, so there is no real finish line to cross. Throw in the one year time frame and your well-intentioned goal is sabotaged before you even start.
All that being said, I am looking to learn something new in the near future, so any suggestions in the comments will be appreciated. If you totally disagree and think I’m off my rocker, your comments are welcomed as well! :)