Many people will have you believe that language A is better than B, is better than C. And if you're new to programming, you might be inclined to listen. And others will have you believe that it doesn't matter which language you choose because it's what you do with it that matters. Very beautiful sentiment, but maybe not too helpful. Both of those sides are too narrow in this day and age. They're too subjective if you will. "Better" is relative to who you're currently talking to.
If you're talking to a PHP developer, then PHP is amazing and you're an idiot for not choosing it. If you're a Python developer, then you're going to build Skynet one day. Maybe. So relatively is a part of that equation and it's noise for the most part that you should learn to filter out, or at least to analyze a bit more yourself before you make a hasty decision. Picking a programming language is a somewhat intimate matter. It will dictate where you can find a job, how much you can get paid, and even the kind of friends that you will end up meeting in your life.
Well that escalated quickly...
They're all the same
Then you have those who believe that all languages are equal so that it doesn't matter which way you go with it. What matters is the result. Which is also narrow, but in a different way because it has you decide what you want to create, before you even know if it's possible. Imagine being an iOS developer but you only own a Linux machine? That's going to be tough. So in some sense, it does matter which you choose.
Gotta choose them all
Another extreme approach is to choose many languages and try them out and pick the one that sticks. The problem there is that you're trying too hard at this point. Just setting up more than one IDE alone on your machine is enough to make you realize you might be in the wrong field. That's kind of like choosing to learn German, French and Italian all at once and seeing which one you.."like" more?
The "right" programming language to choose, is the programming language that is right for you, at this moment, in your life. And that's going to depend on a number of different factors. It's going to depend on your physical location, such as a college campus, or even a city or country. It's going to depend on your circle of friends. And it's even going to depend on the kind of computer that you own. And all of these things are specific to you.
But that is not to say that each language doesn't have its own charm and personality. So today let's go over some of the more popular programming languages out there today, some of their benefits and when to consider them.
This is the first programming language that many developers will learn in their programming lives. And that's mainly due to school, and for that reason, it's a pretty good language to focus on if you're still in college. It has a relatively simple syntax and with it's STL and OOP elements it can keep up with the newer and even higher level languages. And because it is still part of the C family, it has access to the lowest levels if need be. It has multiple IDE's that you can choose to compile and run it on, and most importantly, it can run in a number of different platforms, such as Linux, Windows and Mac.
You can write, compile and run a C++ program in under a minute most of the time. There are even a variety of online compilers out in the webs these days that you can download and play around with.
C# - .NET
C# is a relatively high level language, so it's pretty good for a young programmer. The .NET Framework comes with pretty much anything that you will need right out of the box. And if you stick with it, in a short time you can turn your ideas into reality. It does however require a Windows machine in order to fully use the Framework. However, more recently as .NET Core was released, it is now possible to build .NET and C# projects in both a Linux and a iOS environment.
Setting up this environment however can be time consuming and may require spending some time with documentation pages. At least in the beginning.
What can one say about PHP. It's an easy to learn and easy to type language with a huge market share in the business world. It's normally not taught in colleges, unless through an elective course, so surrounding yourself with it will be 100% up to you. Documentation is plentiful with PHP. You won't be running into issues that no one else has run into in the past.
But also important, is that many companies use PHP for their products, which means that the job market is opened up to you a bit more, than if choosing a cool but niche language. Setting it up on your machine is normally as easy as installing a single framework and then typing. However, familiarity with Apache and MySql is always a plus.
Python has been growing in popularity during the past few years due to its growing use in AI and machine learning software. It's relatively easy to install, and doesn't require too much to get it up and running. There are both web and non-web frameworks around for Python as well. It's free to use which is a plus and documentation is plentiful as well, as it has been around for some time. It was the first programming language that I attempted eons ago, however, once college began, the C++ took over.
There are plenty more languages out in the programming eco-system, but these are some of the more mainstream ones that you will encounter in job boards and online tutorials and such. Again, there are pros and cons to choosing any language, whether its a financial cost or a hardware requirement or steep learning curve. But once you pick one, stick with it even when it seems impossible to run a single command.
The best language to learn, is any language that you choose that resonates with you and that you can pick up easily. It is the language that you are surrounded with on a daily basis. If you're job focuses on .NET, then don't go and learn Python. You can, but you're going to have a hard time learning both.
Walter Guevara is a software engineer, startup founder and currently teaches programming for a coding bootcamp. He is currently building things that don't yet exist.