Latest news about Bitcoin and all cryptocurrencies. Your daily crypto news habit.
This million dollar question is very frequently asked to/by programmers. Most of the programmers asked or think of this question at least once in their lifetime. If you are a newbie and ask this question to someone who is already regarded as a programmer, youâd definitely get an answer. Then you ask this to some other programmer, s/he might give you a different answer. If you ask this in a programmers group or forum, youâd be blown away by the suggestions. Now you have another question on top of the previous one, âwho is right?â
There are so many options: C, C++, Java, Go, JavaScript(would Oracle sue me for using it in this article?), PHP and so on. Hardcore fans of the languages always argue why their one is better and others one sucks. If you search google about which language is better, you would find tons of articles and threads of these arguments. And every now and then some languages rise to the top of the hype mountain and everybody treats it like the holy grail of programming languages. No wonder youâre now more confused than before.
To be honest, Iâm not gonna give you a definite answer to this question either. Though Iâm not that much experienced to write an in-depth article about programming language wars and which side you should pick. But I think I can give you an insight which can help you to make your decision on your own. Feel free to disagree with me. I like the diversity of opinion and I believe thatâs how we learn new things.
Letâs just forget about the question for the moment and let me tell you something.
First of all, I think of the programming languages as vehicles. Some languages are like the bicycle, some are like Cars, some are like boats and some are like airplanes. Donât take it literally. Iâm just trying to give you a broad idea here. You see, you donât ride a bicycle like you ride a car, right? Though both are serving the same purpose of traveling, moving you from one place to another, yet they are different. They differ in looks and shapes, also in terms of how you operate them. What else is different? Speed, capacity, safety etc. So, when you intend to learn a new vehicle whether it is bicycle or motorbike or car, do you ask the question from people to people, âWhich vehicle is best to ride? Iâll learn that oneâ? I donât think so.
The points which influence your decision are:
- I just want to learn it. Itâll be added to my skill set. This skill might come in handy sometimes.
- Iâm gonna buy this vehicle, so I should better learn how to ride it. Otherwise, Iâd have to hire a driver.
- I want to learn it for earning. Or it will at least help me to find a job.
These exact three options can help you to decide, âwhich programming language you should learn?â
- Are you already familiar with some programming languages and feel a passion for programming? Then youâd really find fun in learning new programming languages and different programming paradigms. Learning a new language is like enriching your skill set and make you more valuable.
- You have an idea which will change the world or at least, you hope, will change your future. Youâd learn a programming language which helps you to build the product of your dream and you most likely wonât afford to hire a programmer(driver) for you right now. So, youâd learn it by yourself.
- You want to learn programming to get a job. Youâre the most confused one. This article is specifically dedicated to you and Iâve something important to tell you at the end of this article. So, keep reading.
At this point, I want to introduce you to another question, âWhat does it mean by âlearning a programming languageâ?â
Letâs say, youâve learned the fundamentals of a programming language. You can write some basic level code with it, like calculating some mathematical operations or read-write from a file etc. That means you learned to ride a new vehicle. Maybe itâs a car. So, you know how to ride a car and you can go anywhere you want. Life is beautiful, whatâs next? Isnât it enough already? Maybe, Maybe not. Letâs think of a hypothetical situation where you are stuck in the middle of nowhere and your car is not moving. Whatâs the problem? Is something broken? Howâd you know? You just know how to ride it, nothing about how it works or what kind of parts it consists of. So, you are stuck. Only a motor mechanic can help you now. You couldâve avoided this scenario if youâd know something about inner things about the car you are riding, right? Thatâs exactly the case for a programmer. If you only learn the syntax of a programming language and think that, âEverything is fine, I can update my LinkedIn profile as a Software Engineer/Programmer nowâ, well, you can. But youâd frequently be stuck with different programming problems and in need of an experienced programmer or StackOverflow to help you out. But learning the philosophy of the language and how itâs different parts work will give you the skill set to solve most of the problems by yourself. So, learning a programming language isnât limited to learn just the syntax.
Iâve mentioned Programming Paradigms earlier, letâs talk a bit about it. You mightâve heard of different programming paradigms like Functional Programming, Object-Oriented Programming and so on. At the same time you might wonder what these things even mean and why do you need to learn them. Isnât just learning how to write code is enough? I think this âParadigmâ stuff has a resemblance to the vehicles too. See, the philosophy behind a plane and a car isnât same. Though you can call both of them âvehicleâ, they are not the same, right? Different programming paradigms are the different philosophy of programming. Some will help you to fly, while some will teach you to float in the water. Donât need to be confused by the jargon. And you definitely are not bound to learn all these paradigms. But if you are learning a new language you should be familiar with its paradigm. Otherwise, you would find a lot of stuff very weird, when they are actually not. Also, it will make the learning curve steeper. Remember, learning different paradigms will give you the insight to see programming with a whole new perspective and help you to be wiser. So, thatâs your choice whether you should learn different paradigms and explore different languages or just want to stick the one you are fond of.
Do you really need to learn more than one language? Would you always use a single programming language or a single tools/framework to build your project? If yes, why you would learn various programming language? You can just learn one and use it everywhere you want, right? Letâs say youâre building a local business where youâd deliver some products from shop to customer. If you are delivering only small products you can easily use a bicycle for product delivery. You wonât use a Truck for that kind of job though you can. So, the primary consideration to pick the right vehicle is which suits your need properly. In this case, your business is small you donât need to think about some complex delivery system or use some heavy vehicle to do the job. Now, what if you expand your business to international level and you need to deliver between countries? Would then bicycle or truck can help you out? Letâs for the sake of the example think that there is no border between countries, then you can definitely use truck to deliver products from countries to countries. But would it be the best solution? What if you break down your delivery flow to different parts. Like first youâd collect the products locally and send them to airport by trucks. And then youâd use some cargo planes to carry them to another country and finally picked them up by trucks again and deliver it to the end customer. See, youâve used different solutions and combined them together to solve a single task. Also, it is more likely to be the best solution.This type of scenario is common to Programming world too. In terms of programming how you would break down your big project into different parts and make them feasible to handle a large number of tasks is mostly the software engineering or software architecture related decision. And in that part, you might need to use different programming language, different tools, architecture, services to do the job. Or you can do it by a single one while you can. So, you need to know the trade-off between your decisions and take the one which best suits your need.
Enough for today. Letâs just sum it up.
If you are a novice programmer or want to learn to program to find a job, I can suggest you not to be caught up in the hype. Try to get information about which programming language is popular to find a job at where you are located or can shift. Learn it as fast as you can, do some experiment, play with it and search for a job. Youâd learn a lot from interviews too. But if you are a programming enthusiast, you can start learning any language you want. Learning basics of the language and start coding with it wonât take more than few weeks. After that, deep dive into the advanced stuff of it and the core philosophy of the language.
And most of all, âNever stop learningâ.
Which programming language should I learn? was originally published in Hacker Noon on Medium, where people are continuing the conversation by highlighting and responding to this story.
Disclaimer
The views and opinions expressed in this article are solely those of the authors and do not reflect the views of Bitcoin Insider. Every investment and trading move involves risk - this is especially true for cryptocurrencies given their volatility. We strongly advise our readers to conduct their own research when making a decision.