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.

It’s fine to take a moment and consider your choices based on what your goals are. For example, learning Python for data science, C for embedded systems, or JavaScript for web development. They each have unique quirks and syntax which become main points of argument for experienced programmers but don’t spend too much time on it. There’s a reason that many will suggest that it doesn’t really matter which language you pick at the beginning.

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.

I used the first few lectures of the CS50 course online as my main learning resource for brushing up on C. David Malan is an excellent teacher and I definitely recommend the course. It felt much easier going into it after having used Java for over two years and then doing a lot of JavaScript recently for web development. Back then I put too much emphasis on the fact that C++ is such a hard language to learn and ended up missing a lot of the main concepts we were supposed to learn from 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.