Which language to learn for code?

Ishaan Sunita Pandita
5 min readFeb 6, 2022

--

Ah yes, the question all programmers ask at least once in their life. A brilliant question, no doubt. Let’s discuss what the answer could be!

Photo by Martin Shreder on Unsplash

First of all, what are the possibilities?

0000. You might be new to the concept of programming, and are yet to choose what type of code you want to write

0001. You have tried and tested a few domains and have picked up a liking to one of them

0010. You’ve begun learning about your domain of choice extensively

Phew, that’s a lot of cases to handle. Let’s go through them one by one for each domain! (Or you can jump to the section that fits your query)

First, what are these ‘domains’?

Let’s just enlist some of the domains that we have been talking about:

  • Web Development — Making websites like those of Amazon, Pinterest, Kaggle and so on.
  • Application Development — Making apps like Discord, Google Pay, Uber and so on.
  • Blockchain — Making Decentralised apps, NFT-based games, Cryptocurrency-based sites or APIs and so on.
  • Cybersecurity — Threat detection, tracking cyber crimes, ethical hacking, anti-virus and firewall software and so on.
  • Data Science — Processing big data, predictions using historical data, prescriptive analysis, discovering patterns in datasets and so on.
  • Artificial Intelligence — Making supervised and unsupervised ML Models, NLP chat-bots, Object detection in images and so on.
  • Other vast and complex domains, probably too big for me to cover here without deviating from the topic.

Nice, now we have a rough idea of what options we have to choose from. And don’t worry if your domain was not enlisted here, this discussion will help you understand which language to use irrespective of domain.

Case 0000 — Beginners

If you fall in this category, you have the freedom to explore all of the above listed domains at least once. Go online, search some examples of what exactly is done in these domains, and practice some stuff.

Web Development

Learn the following, preferably in the given order:
- Hypertext Markup Language: Web page structure
- Cascading Style Sheets: Web page aesthetics

App Development

Learn the following:
- Java: Object Oriented Programming

Blockchain

Learn the following:
- JavaScript: Understand ‘promises’

Cybersecurity

Learn the following:
- Linux Shell: Commands and networking

Data Science

Learn the following:
- Python: Data structures, followed by Pandas and NumPy

Artificial Intelligence

Learn the following:
- Python: Data Structures, followed by Pandas and NumPy

The essence of this section lies in the fact that whatever be your domain of choice, everyone has to start with the basics first. Bottom line — Be familiar with at least the surface level of all the above stated languages at any point in time, regardless of your domain.

Case 0001 — Intermediates

Alright, if you’re reading this, it probably means you’ve done what Case 00 suggests. Now you’re ready to take a step further into the domain you wish to pursue. If reading this sparks your interest, make note of what follows.

Web Development

Learn the following:
- JavaScript: Interactive features on the page
- PHP: Database Connectivity
- Python: Backend Libraries like Flask and DJango

App Development

Learn at least one of the following, based on your interest:
- Kotlin: Android Apps
- Swift: IOS Apps
- Flutter+Dart: Both Android and IOS Apps

Blockchain

Learn at least one of the following, based on your interest:
- Rust: Solana Blockchain
- Solidity: Ethereum Blockchain

Cybersecurity

Understand the vulnerabilities of the following languages:
- Shell: Difficult to differentiate between malicious and real shell code
- Java: The world’s most in-use app development language
- Python: Numerous libraries to ease exploitation
- C/C++: Basis of Operating Systems like Windows
- SQL: Most used database language. Large scale database attacks
- PHP: Connection oriented vulnerabilities in sites based on older versions

Data Science

Learn the following:
- Python: ML Libraries and Visualisation Libraries
- R: Advanced data visualisations

Artificial Intelligence

Learn at least one the following:
- Python: Deep Learning Libraries, NLP Libraries
- Julia: Computational Science

The essence of this section lies in the fact that this is the stage where domains begin to diverge. One must have a significant liking towards a domain before going ahead with any of these tasks, if one is bound by time that is. ‘Choose Wisely’ is the key here.

Case 0010 — Budding Expert

If you’re here, it is probably the time I start addressing your good self as Sir or Ma’am ;) This section is for those who have practiced in their domain and are now looking to diversify their knowledge to up-skill themselves. Let’s get straight into what exactly helps us do that!

Web Development

Learn at least one of the following:
- React JS: JavaScript Framework
- Angular JS: JavaScript Framework
- Bootstrap: CSS Framework
- Tailwind: CSS Framework
- Blockchain basics: Web 3 is emerging

App Development

Learn at least one of the following:
- Node.js: Backend with JavaScript
- React Native: Cross-platform apps
- Cloud Platforms: App deployment and containerisation

Cybersecurity

Learn the following:
- Ruby: Commonly used for password-hashing
- Firewall specifics: Malware detection
- Common hacking practices: Along with possible counter mechanisms
- Dark Web: Awareness, Vulnerabilities

Data Science

Learn the following:
- Python: NLP Libraries, Unstructured Data Processing, Neural Networks
- Julia: Computational Sciences

Artificial Intelligence

Learn the following:
- Python: Generative Adversarial Networks, Computer Vision
- Wolfram: Mathematical Computations, NLP

The essence of this section lies in the fact that this is may be valid to some readers, while completely invalid to others. And neither opinion is incorrect, for these are just a few common paths to follow, and there are infinitely many possibilities once we reach this stage of exploration. The beauty of this section is fleeting, just like its validity. An expert is bound to shift their focus onto the latest emerging concepts, be they related to this article or not : )

That was a lot of data to digest!

With this, we reach the end of this discussion. It is a humble request that all readers may note that everything enlisted in this article is a suggestion, neither binding nor exhaustive of the range of options. This article may be treated as a reference to make the thought process a little easier!

Feel free to comment any alternative pathways which you believe are suitable for a domain!

If you liked reading this article, consider following me on my Medium page, here!

If you’d like to get in touch with me, feel free to do so on my socials, here!

Thank you for your patience!

--

--

Ishaan Sunita Pandita

Living life and becoming better than who I was yesterday. Oh, and also learning magic so I can turn data into money.