Which programming language should I learn? Various languages and their uses explained.

Do you want to start programming but don’t know which language to learn or whether to do web development or GUI development?

Aruj Bansal
5 min readNov 4, 2019

It took me a while to figure out what the advantages of a particular language over the others are. I’m going to save you the trouble by giving a quick overview of some common programming languages and their uses so that you can decide where you want to start.

This article is divided into 4 broad categories:

  1. Web Development
  2. Desktop and Mobile Development
  3. Competitive Programming
  4. Machine Learning and Artificial Intelligence

If you just want an easy programming language to start with, learn python.

Web Development

django, a python framework for web development

Web development refers to developing websites. There are mainly two types of websites:

  1. Static websites: These websites are mainly written in HTML and CSS. As HTML is just a markup language, the website doesn’t have much functionality. It can only have a nice layout and text.
  2. Dynamic websites: These websites are also written in HTML and CSS but they also use a server-side scripting language such as PHP, ASP, JSP. In these websites, the content is called in by the scripting language from other files or a database depending on the action taken by the user.

Frontend Development

The frontend of a website is what you see and interact with on your browser. HTML, CSS and JavaScript (JS) are the three main front-end languages.

HTML stands for Hypertext Markup Language. It is only a markup language.

CSS, which stands for Cascading Style Sheets is used for deciding the presentation of the web pages, including colours, layouts and fonts. It allows one to adapt the presentation to different types of devices, such as large and small screens. It accompanies HTML.

JavaScript is used to make web development easier and more attractive. It is used to create responsive, interactive elements for web pages, enhancing the user experience.

Backend Development

The backend is the portion of the website you don’t see. It communicates with the frontend, sending and receiving information. To make this easier to understand, let’s look at an example, a User Authentication System.

An authentication system has three main functions. Letting the user create an account, sign in to their account and logout of their account. The register and sign in forms the user sees, is frontend. Without any backend, it is of no use. Nothing will happen on clicking any buttons. We require a backend system to handle these tasks a user performs. The backend is the logic behind the website. It stores and organises information in a database and interacts with it.

Some popular back-end languages are Java, PHP, Python, Ruby and Perl. Though there are many more, this article will talk about the django. Django is a high-level python web framework. It delivers high-quality code writing, making it important for developers. It focuses on rapid project development and is used by big companies such as Instagram, Spotify, YouTube, Dropbox and many more. You can read more about it here: https://www.djangoproject.com/.

Its documentation is one of the best ever written (really easy to understand), making it easy to learn. Large and scalable websites can be developed with django.

Desktop and Mobile Development

This section will talk about developing apps for macOS, Windows, iOS and Android.

Windows

Applications for Windows can be developed in many languages including but not limited to C#, C, C++ and Java. They can be developed in Python as well, but I would not recommend it as python is very slow compared to these other languages.

If you are a beginner, I would recommend learning Java. After learning the basics of Java, you can pickup a GUI framework like JavaFX and develop rich desktop applications. Another advantage of Java is that Android applications and web apps (using JSP) can be developed as well.

Android

If you’re interested in Android development, you can learn C#, C++, Kotlin, or Java. Java is the most used language for android app development as it is the official language for android app development. Java has other advantages as well. You can also develop desktop apps using JavaFX or a different framework and web apps using JSP.

XML is used to make the layout of the app, and Java is used for providing the logic. Android Studio provides a great interface for developing android apps. You can take a look at it here: https://developer.android.com/studio

iOS, macOS, tvOS and watchOS

Interested in developing apps for these operating systems?

Swift is a programming language designed by Apple that allows developers to build apps for iOS, macOS, tvOS and watchOS. Swift is faster than Objective-C (apps were developed in this language earlier) and python. To develop apps for Operating Systems made by Apple, you will need a Mac and free software called Xcode which can be downloaded from the Mac App Store.

Competitive Programming

Competitive Programming requires you to be able to think through challenges in steps. After you think of a solution to the problem, you try to implement it in code.

Some languages are better suited for competitive programming over the others. Most challenges have a time limit (they require your solution to run within a short time). Here choosing a faster language is advantageous.

Most people prefer C++ as it is faster than Java and Python. It also has a vast library of useful functions to help you. If you are just starting out, you might find C++ a bit difficult to learn. You can first learn the basics of programming through python and then come back to C++. Java also performs well. I would not recommend using python as it is much slower than C++ and Java.

Machine Learning and Artificial Intelligence

TensorFlow, a library for machine learning.

Popular languages for machine learning include Python, C++, Java and JavaScript and many more. Python is widely used for machine learning. It has support for many libraries such as TensorFlow, spaCy, Numpy, Pandas, etc making it an excellent choice for machine learning.

📝 Read this story later in Journal.

👩‍💻 Wake up every Sunday morning to the week’s most noteworthy stories in Tech waiting in your inbox. Read the Noteworthy in Tech newsletter.

--

--

Aruj Bansal

I’m an enthusiastic programmer. I love coding in HTML, CSS, Django, Python and Java.