Which Programming language should I learn? [Answered]

I get asked this question very frequently in various forms:

  • Which programming language should I learn?
  • Which programming language is best for beginners?
  • I have no background in software engineering which coding language is most suitable for me?

I frequently get asked this question. The answer is very simple: Any.

Unlike the natural languages, learning the programming language is not about memorizing the words and meaning. Programming languages are not to be memorized. Instead, it is about converting the thoughts into code.

The constructs of all programming languages are almost the same. Every programming language has almost all of these features:

  • Variables - Every programming language lets you define variables which can be of different types.
  • Basic Data Structures: Arrays, Dictionaries etc
  • If-else conditions
  • Loops - for, while
  • Functions and recursion
  • Classes / Objects - Defining your own data type

By learning to program, you learn to use these constructs to accomplish an objective.

Therefore, if you learn one language, shifting to another one is very quick.

No company is interested in knowing what the library functions in a programming language are. If a company during an interview asks you language specific questions, it shows immaturity on the part of the interviewer unless you are being hired for designing a compiler.

A large piece of software usually uses multiple languages. It is expected from an engineer to be able to fix and enhance such a software.

As part of the interviews, top companies such as Google, Facebook, Amazon never ask language specific questions. Instead, the questions are always about how to solve a problem using algorithms. You can always choose the programming language.

I started learning programming using C/C++. Then, I coded my application using PERL in college. Then I learnt C++ and Java and built the next enterprise app using Java, Javascript. Afterwards, I worked with Visual Basic and C#. Afterwards, I worked in Python, Go Lang and Scala. It took me a long time to learn C/C++ but switching to other programming languages has been a breeze.

If you are getting started with programming, try to figure out what would you like to build and learn the language for the same. My kid wanted to learn to build a Roblox Game, so he started learning Lua naturally. If you want to start with building a mobile app, start with React Native or Flutter. If you want to build a website and it is content focussed, start with customizing wordpress or laravel and learning PhP or start with Python and Flask or Javascript+NodeJS.

If you have no objective in mind, I would strongly recommend starting with Python. It is simple and since it is not too typing intensive, you would have less inertia to write code.

My only suggestion would be don’t spend too much time contemplating which programming language to start with. Just start!

Though, it is very joyful to argue about the language but such debates usually turn into flame wars unless you have plans to create your own language and you are analysing the features of various programming languages.