At a recent meetup for our local freeCodeCamp group, I heard a question asked that I’ve seen before on Reddit and other forums in some form or another. It usually goes something like this: “Should I learn a language that will keep me relevant in the next X years or should I learn one that will help me get a job now?” On the surface, the answer is simply it depends whether you are looking for a job immediately or if you’re preparing for the future. But I feel like this question masks a much simpler question that many beginners tend to ask: “What programming language should I learn?”
For college freshmen enrolled in Computer Science, they usually don’t have to worry about this since they don’t get to choose; they use whatever is decided by the professor. But for those looking to learn on their own, it can be easy to get lost in the vast number of languages and the noise of conflicting opinions on the internet. There are many languages that are appropriate as a starter language for various reasons. Some have low initial learning curves such as Python and Ruby. Others are widely used in the industry, such as Java and C++. However, it seems many learners get caught up in deciding what language to learn that they forget the main purpose of learning programming.
Once you’ve picked a language, stay focused and stick with it, and get to learn the basics of programming. Many concepts carry over between languages such as conditionals, loops, and functions. Thanks to these similarities between languages, once you’ve gotten familiar with one language it will be very easy to transition to another when the need arises.
Aside from being inspired to write this post by having the question posed at the meetup, I was also reminded of this near the beginning of this semester. I will be taking the Introduction to Operating Systems course at my university, and we will be required to use C. While I had used C++ before in my Data Structures course, I was not yet a CS major at the time and so I didn’t give much effort into learning the language (nor the material) properly. I did pass but did fairly poorly on the implementation projects.
So regardless whether you choose to start with a language that has grown popular as a starter language in recent years such as Python or Ruby, or you choose to go old school with Java or C++, don’t lose sight of your objective. Don’t get trapped into thinking as a Python programmer or C++ programmer, but rather as just a programmer and computer scientist.