How to pick your first programming language
Tags: beginners, languages
Published: 2020-07-01 00:00:00

---
title: "How to pick your first programming language"
date: "2020-07-01"
---

When I started programming, I was impressed by the number of programming languages.

Maybe you are in the same spot I was.

If you were, I wrote a guide to help you to pick your first programming language.

* * *

**Table of contents**

Picking the proper language for you: My case

Why picking just one language as a beginner

Visual guide

How to use the guide

Final thoughts

* * *

### Picking the proper language for you: My case

![Picking a programming language](https://dev-to-uploads.s3.amazonaws.com/i/lq9w4u2lvzosdhlxjils.jpg)

I started learning to code 6 years ago with C. Until the next month where I (well, my class) moved to C++. Then PHP. And Javascript. All in 3 months.

And when I said I started learning, I mean we barely knew how to program after 3 months.

Why? Because when we learn the basics of one language, we moved to the next one. Just learning to do the same things (variables, creating classes and functions, conditionals) over and over, in the shiny new language.

That was a waste of time.

But then, I went to study (to the equivalent of Technical college: Two years) and I did the very same.

I have learnt Javascript, PHP and Java, but then I found articles/Youtube videos recommending to learn a new language, because the ones I was learning were dying.

And so I did. But then, a new, flashy language came. Or maybe a new Framework.

So I forget all I have learnt for the last month, to learn the new thing. I keep doing that for almost a year: Python, Javascript, Java, Angular, Ionic, C#, Unity...

Maybe you are looking at what employers are looking for in job applications, and you feel scared by the number of requirements, as I did.

I wanted to learn every language to have a chance to send a resume. But I couldn't have been more wrong. I was doing the same again: Learning the bare basics over and over again, but with different languages.

I was fluent in doing basic things in many languages.

* * *

### Why picking just one language as a beginner

![Picking one programming language](https://us.123rf.com/450wm/bsd555/bsd5551911/bsd555191103867/134460274-choosing-option-color-icon-hand-picking-checkbox-selecting-answer-making-decision-online-survey-anon.jpg?ver=6)

Following the previous point, what I have should be done, was learning and mastering ONE language.

Learning a language is important, but more important is to know how to program: To understand the process of learning what you want to achieve, designing the structure of the application, etc etc

And I wasn't doing that.

I was trapped into what it is called '[Tutorial Hell](https://letslearnabout.net/blog/how-to-escape-from-tutorial-hell-and-never-come-back/)':

_'Tutorial hell' is typically the stage when beginner programmers come to 'sort of' knowing how to build some simple things, but nothing really complex or scalable. They seem to need a tutorial for every other task they are in need of doing._

(Don't worry, I wrote [how to escape from Tutorial Hell here](https://letslearnabout.net/blog/how-to-escape-from-tutorial-hell-and-never-come-back/#how-to-escape))

But I shouldn't be doing that. I should be learning how to program in one language. Yes, ONLY one language.

Learn one language, master it, along with learning how to program. Those are two separated things.

Once you know how to program (planning how to solve a problem), and one language (creating the solution), learning a new language is a matter of weeks. Or days.

I would say even more: Some employers need you to solve them a problem, independently of the language you use. Sometimes, [no one cares about the language you use](https://letslearnabout.net/blog/no-one-cares-about-the-language-you-use/): They just want a solution to their problem.

But I'm getting ahead. First, we need to pick our first language.

* * *

### Visual guide

Selecting one language depends on many factors: Do you want to program mobile apps? Want to play around with [IoT](https://letslearnabout.net/blog/how-is-iot-affecting-the-future-of-web-development/){? Do you love Back-End? Do you want to be a 4x4 Webmaster?

For that, I have found this guide. Click on the image and follow the path.
![](https://dev-to-uploads.s3.amazonaws.com/i/bfo4htzr3nm4flh4lntg.png)

_Disclaimer: This guide is a bit outdated, swap Objective-C for Swift language for Apple devices_

* * *

### How to use the guide

![](https://dev-to-uploads.s3.amazonaws.com/i/viuqp05jxy107hfjbm0p.jpg)

This infographic is a guide, not something you need to believe blindly, as new technologies come and go.

For example, let's say you want to create Android Apps.

The guide tells you to learn Java for Android, which is good. But...there are alternatives?

A quick search tells us that Kotlin is a good alternative for Java. And there are other Frameworks as Ionic or [Flutter](https://letslearnabout.net/100daysofcode/im-joining-100daysofcode-again-flutter-time/), that lets you with just one code, create mobile apps for Android AND iOs.

Follow the guide, but then do a little research. Google alternatives for that language (Sometimes the alternatives are better and/or more enjoyable!) ask on [Reddit](https://www.reddit.com/) or [StackOverflow](https://stackoverflow.com/) what's new, etc.

Use this guide as....well, as a guide 😊.

Once you have picked one language to learn, go deep on it. Learn it, do a few small projects. Then a medium one.

Then, after having a bigger picture, you'll choose if you want to keep learning and become an expert in that language. Or learn a new one. [Or both](https://letslearnabout.net/blog/what-it-is-a-t-shaped-developer-and-why-you-should-be-one/).

In fact, I have a 'cache' of [free learning resources](https://letslearnabout.net/blog/free-learning-resources-for-programmers/) for you here.

Now you have no excuse to start learning 🙂.

* * *

### Final thoughts

Let me summary this post in one checklist. As a beginner, you have to:

- Pick one language from the guide, based on what you want to achieve.
- (Optional, but recommended): Google alternatives to that language, and choose accordingly
- Learn that language (Use Youtube, Articles, ebooks or my list of [free learning resources](https://letslearnabout.net/blog/free-learning-resources-for-programmers/)
- Once you feel comfortable, think if you want to learn a new one or go deeper into the one you know. This depends based on your job (if you have one), what you want to achieve, etc. There is no rights or wrongs here.

If you want to know how to learn, here I have a more deep post where I explain even more how to do it, along with a few tricks I have picked myself: [Learning how to learn](https://letslearnabout.net/blog/learning-how-to-learn/).

Now, close this post (Bookmark the website if you liked it :) ) and start learning!

* * *

[My Youtube tutorial videos](https://www.youtube.com/channel/UC9OLm6YFRzr4yjlw4xNWYvg?sub_confirmation=1)

[Reach to me on Twitter](https://twitter.com/DavidMM1707)

[My Github](https://github.com/david1707)

Contact me: DavidMM1707@gmail.com