DEV Community

Cover image for Which programming language should you learn?

Posted on

Which programming language should you learn?

If you're a newbie in coding then I think you will definitely came across with this question.

One of the most common question one ask or search before entering the world of programming.

Which programming language should I start with?
So here is the answer of your question with pros and cons of top programming language in 2021.

SWIFT programming language logo

1 SWIFT --
This is the only and best language you can use to develop apps on Apple devices. Wheather it's a Apple watch, iPad,Macs or even Apple TV's.

Now we will discuss Pros and Cons of it--

Pros --
Well optimized,
Big Community,

Cons --
You should have Mac book,
Lack of support for older ios versions,
Released in 2014 so Tools and libraries are limited.

Python programming language logo

Python does not need any introduction it's one of the most beginners friendly programming language ever.It is one of the most popular language and widely used by every organization from Data science to AI.
So for beginners it is best language to start.

Pros --
Easy syntax,
Tons of resources,

Cons --
Not mobile device friendly,

Scripting language, if you are interested in web development or in cyber security than my friend this language is for you. It is often considered as the brain of website.

Pros --
Tons of libraries,

Cons --
Hard to master,
Security issue,
Cross-browser issue.

kotlin programming language logo
Same as SWIFT but for ANDROID.
This is probably the best language you use to develop APPS for any Android devices.

Pros --
Easily maintainable,
Interoperability with JAVA,
Clean Syntax.

Cons --
Not many resources,
Long compile times.

So that's it hope you find this useful.
If you want to know the best resources to learn any of the above language comment below.

Thank you.

Top comments (11)

joelbonetr profile image
JoelBonetR 🥇 • Edited

A beginner should learn any native OOP strong typed language such Java or Kotlin and then, when you learned about it, you can switch to JavaScript which is Async by default (you can also state async operations with Java or kotlin but anyone who did it would agree that it gets much more boilerplate and concerns that it has using JS on any runtime environment).

The reasons for that is the first one will enforce you to code on a more strict manner and understand the OOP paradigm, also the extensive native data types allow you to better understand design patterns.

You can code OOP in JS as well but it'll run anyway if you do not. Then you can use JS to learn about functional programming or try Scala for it. You can also learn reactive paradigm using JavaScript as well as Procedural programming paradigm.

As you can see, JavaScript is a multi-paradigm language in which you can use the paradigms that fits better or that ones you want to learn, but also has the complexity of understanding async operations and discern whether you need a Sync-ed operation so you can enforce it, of course also understand that the load order can vary and it's mandatory to know where you need to add a dependency or where to add your scripts.

Both languages (let's say that if you can code in Java you'll be able to code in kotlin in few hours and vice versa) Java/Kotlin and JavaScript have a good demand on the industry to find a job.
Nowadays JS is the most popular language for good reasons (fast development, efficient for high i/o operations, usually easy to maintain and escalate...) but you'll never code intensive CPU algorithms or operations using it, that's why companies that focus on JS full stack also adds some services or microservices using Java, Python, C#, Rust or Go... (maybe some use C++) but for the rest and excluding ML, JS is a good and convenient language.

saifullah profile image

Really helpful thanks for such clearance.

joelbonetr profile image
JoelBonetR 🥇

You're welcome :)

thedenisnikulin profile image
Denis • Edited

Hmm, I believe that one that isn't familiar with programming at all should go with Python. The language is relatively simple and will really help to understand basic concepts of programming at the beginning. When one becomes good enough with Python, they should pick some more strict language for their further learning. Something like C#, Java, C++, C. These languages will really just bring more clarity in programmer's mind about classes, data types, low-level stuff, etc. Also, I hope they are more suitable for some big projects unlike Python (no hate to Python!), so you're more likely to find a job or build some really complex programs with them (unless you're a data scientist or ML engineer). As to me, an ideal path for becoming an application programmer (only in terms of programming languages) is Python -> C#. But it's just my little opinion, learn whatever you want, it only matters if you like it. But don't forget to be a good engineer, not just a language junky! >:)

saifullah profile image

Yes Yes Agree with you :)

christiankozalla profile image
Christian Kozalla

Equally important as the question 'Which programming language you should learn' is the question 'What field of programming do you want to work with?' like web development (frontend, backend, mobile), desktop applications (also possible with web technologies), data science, machine learning / AI, embedded,...
I started learning a bit of Python (mostly Syntax basics), then switched to Javascript, HTML and CSS, because I wanted to dive into web development.
Nevertheless, you can use Python on a web server (e.g. frameworks like Django, Flask)

gdenn profile image
Dennis Groß (he/him)

I would suggest:

(1) learn a language that you like. If you are more interested in scripting languages choose something like Python, if you want to program close to the actual hardware go with C-/C++ and if you like strongly typed languages Java is a good point to start.

(2) think about what you want to do with your programming expertise. Do you want to write an IOS app => learn Swift, if you want to be a frontend developer (aka build User Interfaces for the Web) => learn JavaScript or TypeScript, if you want to be a backend developer => oh boy you can actually write backends in every language :).

saifullah profile image

Yes short and straight one. Thank you.

aatmaj profile image

I would personally recommend- Java, C++, Python- choose any one among these!

And, yes, Python is quite easy to earn when compared to C++ or Java. But once yu master Java, you start to think in a more OOP manner. Once you master C++, othe r languages are a piece of cake.

After learning these languages, you would like to take on JavaScript, Julia or other languages as per your requirements.

In case anyone here wants to start learning Python, please read my Learning-Python blog course to learn Python! With a little coding background, you can master Python in no time!

saifullah profile image

Yes Agree.
But I wrote that article for those who just want to earn by doing freelancing❤️

_gdelgado profile image


  • tinyest language compared to the other languages that have been suggested (you could learn the core language in 2 days)

  • Extremely helpful community

  • Fun: it's specifically for building user interfaces... used for building simple toy games

  • Proven to be a great first language: I can't remember where I saw this, but it's actively being taught to grade schoolers in the US with great success

  • Functional programming is slowly eating the languages world, may as well get a head start!