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!
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.
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.
- Frontend Web Development
- Backend Web Development
- Mobile Development
- Game Development
- Data Science
- 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?
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.
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.
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.