I get asked this question a lot, and I see this question being asked a lot on the internet.
If you are new to programming, you might be wondering what programming language you should learn. There are so many programming languages out there, and it can be difficult to know where to start. In this blog, I will be sharing some tips on how to choose the right programming language for you.
You’re asking the wrong question!
Yes. You read that right. The question you are asking is fundamentally flawed. Programming languages are just tools, and the right tool for the job depends on what you want to achieve.
Think of this situation:
Say I don’t know how to drive ANY vehicle.
I have 3 options: a bike, a car, and a truck.
If I ask you, “Which vehicle should I learn to drive?”
What would you say?
Let’s say you suggest I learn to drive a car.
And then I give you one more piece of information, the place I live in is a small village surrounded by dense forests. It rains a lot, and the roads are also not in a good condition.
Now obviously car is not the best choice, right? So you suggest I learn to drive a bike.
But what if I tell you that I have to transport a lot of goods from one place to another?
Now bike is not the best choice either. So you suggest I learn to drive a truck, as it can carry a lot of goods.
You just gave me 3 different answers, which one is right?
…well, all 3 of them are right. Because the right answer depends on the context.
So, what should you do?
Instead of asking WHAT should you learn, ask WHY you want to learn. Because the answer to the question “What programming language should I learn?” depends on what you want to achieve.
This was my situation when I started learning programming, I watched this video by Dev Ed (now @developedbyed) randomly while scrolling through YouTube, and I thought to myself, I bet I can recreate this website. Long story short, I didn’t. But I did learn a lot of things in the process.
These are the questions you should be asking:
- What do you want to do by programming?
- What made you interested in programming?
- If you have a specific goal in mind, what is it?
Web Development
If you want to build websites, these are the things you should be doing (in order, mostly):
- Learn HTML
- Learn CSS
- Learn JavaScript (must!)
- Learn a frontend framework/library like React, Angular, or Vue.
- Along the way you’ll learn about Git, GitHub, Component Libraries, Sass, etc.
- Learn a backend language like Node.js, Python, etc.
- Understand that a backend (server) can be built using any language, but the frontend (client) is mostly built using HTML, CSS, and JavaScript.
- Learn about databases like MySQL, MongoDB, etc.
- Learn about APIs, REST, GraphQL, etc.
- Learn about deployment, hosting, etc.
App Development
If you want to build applications / games for mobiles, these are your options:
-
Learn Java or Kotlin for Android development.
- This is the most common way to build Android apps.
- Using this method, you can build apps that can be run ONLY on Android devices.
-
Learn Swift for iOS development.
- This is the most common way to build iOS apps.
- Using this method, you can build apps that can be run ONLY on iOS devices.
-
Learn React Native or Flutter for cross-platform development.
- Using this method, you can build apps that can be run on BOTH Android and iOS devices.
- Wow! This is so much better, right? But there are some trade-offs. The performance might not be as good as native apps, the app size, memory usage, etc. might be higher. But the development speed is much faster.
Desktop Development
If you want to build applications for desktops, these are your options:
- Learn Java for cross-platform development.
- Using this method, you can build apps that can be run on Windows, macOS, and Linux.
- Learn C# for Windows development.
- Using this method, you can build apps that can be run on Windows.
- Google ‘WPF’, ‘UWP’, ‘Xamarin’
- Learn Swift for macOS development.
- Learn Electron for cross-platform development.
- Using this method, you can build apps that can be run on Windows, macOS, and Linux.
- It is very popular and is used by many companies like Slack, Discord, Visual Studio Code, etc.
- Electron uses Chromium and Node.js under the hood. You will be writing React code (almost), and Node.js code.
Data Science
If you want to work with data, these are the things you should be doing:
- Learn Python.
- Learn about libraries like Pandas, NumPy, Matplotlib, etc.
- Learn about Jupyter Notebooks, etc.
Machine Learning
If you want to work with machine learning, these are the things you should be doing:
- Learn Math, a lot of it. Linear Algebra, Calculus, Probability, etc.
- Learn Python.
- Learn about libraries like TensorFlow, Keras, etc.
Game Development
If you want to build games, these are the things you should be doing:
- Learn C#.
- Learn Unity or Unreal Engine.
If you are looking for something else which is not mentioned here or need more details, check this site.
So, the next time you ask someone “What programming language should I learn?”, make sure you tell them what you want to achieve.
I hope this blog was helpful to you. If you have any questions, feel free to leave a comment below.