DEV Community

Mariany
Mariany

Posted on

How to Answer — “What Programming Language Should I Learn First?”

Introduction

Beginners in the software development field ask this question quite often. Yet, it doesn’t seem to have a straightforward answer. This article is going to explain why you should be careful when choosing your first language and how you can answer this question for yourself. So let’s get started!

Misconceptions

Usually, when this question gets answered, you may get one of two possible answers. One may say, “Learn X language! It’s the best and is the future”. Which in some sense, may be true. Or they may say, “It doesn’t matter, just pick one”. I have a problem with the latter one because while it is somewhat true, it’s also misleading.

To illustrate this issue, I want you to imagine that you’re buying a car. You go to the car dealership near town and ask the dealer, “What car should I get?” and in response the dealer says, “Does it matter? Just pick one and go!”. So you take his advice and pick a car at random, pay, and then leave. What happens? Well more than likely, you’re left with a car that you don’t like. The car is worn and is pre-destined to break down soon. Not only that, but it’s appearance isn’t favorable. You ended up spending your money on a vehicle that you don’t even like, and now you’re back at square one. Picking another car and spending more money all over again.

Similar issues may arise when choosing your first programming language at random. Picking a random programming language may lead you into a field that you aren’t interested in. Leading you to wasting time. Leaving you drained or discouraged from progressing in the field.

That is why you need to answer the question for yourself. Only you know your strong points and interests.

What Fields Interest You?

With this information, we actually need to change the question. Instead of asking, “What Programming Language Should I Learn First?”, you need to be asking “What Fields Interest Me?”. To answer that, though, you’d need to know what fields are out there in software development. This requires some research on your part, but I’ll jumpstart it for you. Here’s a list of some popular fields in 2019.

  1. Frontend Web Development
  2. Backend Web Development
  3. Mobile Development
  4. Game Development
  5. Data Science
  6. Cyber Security

Upon researching some of these, you may come upon one or two that interest you. You may then decide to look into what languages are used in the field and go from there right?

Well yes, but actually no

Now you may be wondering, what now? Well, it’s important to note that just because a field/industry interests you, doesn’t mean that it’s right for you. I remember when I was in the same position, I was very fond of the Game Development field. I decided to spend many months attempting to learn many languages and game engines (a mistake in itself). I then came to the realization that game development uses math on a constant basis. And being that I am a person who sucks at math and hates it, I decided that Game Development wasn’t for me. It wasn’t only that I wasn’t good at math, because there are so many online resources to fix that*. But it was the fact that I was not willing to learn these things. I was interested and willing to learn Game Development. But I was uninterested and unwilling in learning the prerequisites of Game Development.

Where Should You Go From Here?

So you’ve already done your research on your field of preference, and have a pretty decent mindset towards what to expect when diving into the field. You should now be on to the next step to choosing your language, meaning your question is almost answered! But being that you’ve made it to this step, you’ve probably noticed that there are many tools and technologies out there. Don’t get caught up and spend too much time deciding which one of these to use. Now that you know what field you want, getting into the field is your main priority. So you want to choose something, not necessarily at random, but promptly.

Each programming language has it’s pros and cons that you will eventually learn, but for the most part they will all do the same thing. Simplifying the list you found, and then picking the most useful and beginner friendly, is usually the answer to the prompted question. So how do we do this?

Well this takes more research on your part. To start, ask yourself if you plan on using this field for income. If so, try looking up jobs in your area for the field that you chose. Go on sites like Indeed, Glassdoor, LinkedIn, etc., and see what technologies are being used the most. Next, you want to see which technologies have the most online resources available. Language A may have poor documentation, with very little tutorials to get you started. But Language B may have good documentation and very good courses for you to follow.

Does that mean Language B is better than Language A? Not at all! But for a beginner, Language B would be friendlier, and would aid you in learning how to think like a programmer.

This is a key element to remember also. Being that this is your first programming language, you do not yet have the mindset of a programmer. While learning the language you chose, you are going to want to learn how to use it's features practically.

Conclusion

While this all may seem like a lot, I can assure you it’s not. This whole process of carefully picking your first language may take anywhere from a day or up to a month. But it will save you so much more time than blindly jumping in with no plan, and will all pay off in the long run.

  • Khan Academy is a great, free online resource for learning anything from Math to Computer Science.

Top comments (5)

Collapse
 
gilblinov profile image
Gil Blinov

I'm a big fan of Python as a learning language.

Learning proper indentation, structure and feel is more important at this point.
The fact that at its basic it's also easy to read is a big plus.

I'd stay away from JS in the first few months due to all its quirks like the strict equality operation.

I learned to code in Pascal though. So this might be bias.

Collapse
 
marek profile image
Marek Zaluski • Edited

I also disagree with “It doesn’t matter, just pick one”. It's not quite true that it doesn't matter.

But I can see why people say it. "Just pick one" isn't entirely bad advice because:

  • Your choice isn't permanent for your whole career
  • You can switch later
  • You can learn additional languages later
  • The first language you learn is not so significant if you assume that you'll learn many languages over the course of your career
  • You will be better informed after learning your first language, so when you choose your 2nd language it'll be a much better decision
  • It's better to pick something right now than to stay indecisive forever and never do it

That being said, I'm an advocate of the strategy that you described: figure out what kind of work you want to do first, and what kind of field you want to work in.

The software job market is like any other market: it has supply and demand. If you invest in skills that are in demand and will continue to be in demand, you will have a much easier time.

Collapse
 
alchermd profile image
John Alcher • Edited

I like to recommend this little site when asked the similar question: Best Programming Language For Me.

In the end, I personally subscribe with "Just pick one". programming concepts are roughly the same, and the sooner you grasp these concepts, the sooner you can transition to whatever domain you want to specialize with. And I also think that jumping around languages is a good thing in small dosages. Exposure to different types of syntax can't be bad, especially for beginners. I wasn't able to comprehend lambdas in Ruby up until I learned closures in JavaScript, for example.

Collapse
 
marianyp profile image
Mariany

I agree. A lot of the things I had a hard time understanding in Python I got from JavaScript, and vice versa. Because for most languages, they all accomplish the same goal.

But like you said, in small doses. I've seen a lot of people, myself included, waste countless amounts of time on something they aren't interested in. And simply because they didn't know what they were getting into.

Collapse
 
jessekphillips profile image
Jesse Phillips

I think buying a car is not well suited as an analogy. The cost in learning a language is time. If learning to drive cost nothing and you could drive any vehicle and throw it away, then the analogy would be closer.

This site is a nice way to get opinions:

slant.co/topics/25/~best-programmi...