A coworker recently forwarded me the Mashable article, "10 Programming Languages You Should Learn in 2014." Although the article provides some useful information on today's most popular programming languages and urged aspiring developers to learn at least one of those languages, I think there's some equally important advice to consider when deliberating on a programming language to invest your time in.
With that said, here's my quick and easy guide that provides some practical talking points and considerations if you're looking to learn a new programming language.
What's Your Development Career Goal?
If you're someone like me who wants to learn and get your feet wet with everything, then it might be worthwhile to narrow down your options. Although it can be tempting to dabble with every programming language under the sun, it's probably a good recipe for not accomplishing much of anything. Instead, ask yourself about what kinds of development you want to do. It might seem cliché, but ask yourself what you want to see yourself working on ten years from now. What types of jobs do you see as the most rewarding development experiences?
Michael K. Campbell has tackled this idea of specialization in his commentary, "Career Advice from a Developer's Perspective: In Praise of Specialization." In his commentary, he explains how he sacrificed his long-term potential and security by trying to tackle every project that came his way. As a result, he ended up making a career decision that made him more successful and happy in the long run. I recommend you check his commentary out; it's a great read.
Foundational Programming Knowledge is Key
When I was in the computer science program at my alma mater, Colorado State University, the department required you to take several different classes that taught core, foundational programming concepts. During my three years in the program, I had only learned a handful of programming languages: an object-oriented language (Java), an imperative programming language (C), and a multi-paradigm language (C++). In my naivety, I was a little angered that so much emphasis had been placed on so few languages. As I scoured the web for software development opportunities, I became flustered because of the amount of different programming languages that employers were hiring for.
With that said, I look back at those times and shake my head at my ignorance. To be honest, I seriously underappreciated the value in having a curriculum that focused on core foundational programming concepts. As I came to dabble in other projects, I felt that I had come away from having a general understanding of programming, and felt much more at ease in tackling projects in different languages.
Now, please don't mistake my advice as saying that you need to get a degree from a four-year university program. If that works for you, that's great. The advice I'm trying to convey is to learn a few programming languages to master key programming concepts that will be transferable to development projects in the future.
What Does the Market Demand?
During several different discussions with friends, Dev Pro contributing author, Wally McClure, urged developers to consider the need and popularity of languages in the marketplace. Common questions that you might need to ask yourself is, "What work is currently being done today in the software development industry?" Not only do you need to find balance in investing in a programming language that will benefit your career goals, but you also need to settle on at least one language that has significant traction in the market so that you can cast your net for a wider breadth of opportunities.
Case in point, please don't make it your mission in life to learn Scala.
There's No 'One Size Fits All' Approach to Learning Programming Languages
Finally, these are just suggestions that I'm hoping that you'll find useful based on several different discussions with my friends in the software development industry and my past experiences. As the old adage goes, everybody learns differently. There's no 'one size fits all' approach to learning new languages, so the best advice I can give is to follow a career path that makes you happiest.