Recently, an old-school colleague, whom I would call Bill, reached out to me. He wanted to learn programming.
“Which language should I learn”, Bill asked.
I gave him a suggestion based on my personal experience. In hindsight, I should have told him something else. Bill is only one of several people who have asked for my opinion on what to study in relation to programming languages. This article is meant for everyone, like Bill.
There are a lot of programming languages. Literally, a lot. They all have their good sides and reasons why they should be studied. And there are a few good reasons why you should not bother learning some other languages.
Just as everybody is unique and different, programming languages are too. We should understand what makes each stand out. Picking the right one now would prevent regrets about the choice you made tomorrow.
Hence, in no order, here are 10 key considerations you should make before picking up your next or first programming language.
- What do you want to do?
I should have asked Bill.
- What are your goals?
- What would you want to do?
- What task has to be done or automated?
These questions effectively remove a lot of the languages from further consideration. These are the languages you need not be concerned about.
- Your experience level
Perhaps you are a beginner. Or maybe you have programmed in the past, a long time ago. What if you have coded before but in a different language? Even though knowledge of one programming language can be easily transferred to a new language, this is not the case with some others. Your experience level can serve as a guide in relation to this.
- The user community
How many people can provide you with support in that language? That is one of the things I would advise looking out for.
It can be so frustrating to use a language that has little to no community support. I once used a language framework that was really popular in China! Hence, most of the support and user communities were in Chinese. I only realized this truth after I was neck-deep in a project. It was a good framework, and it still is a good framework. It does have some support in English. However, it was neither sufficient then nor is it sufficient now.
The moral of the story is to check all your bases and stats about the language or framework in question. especially where most of their user support comes from.
- Your team
Closely linked to the user community is the programming language your team already knows. What programming language are they strong in now?
Also, if you have a team helping you build, then ask yourself what their experience levels are. Is only one person versed in a language as opposed to all of them? Having several people versed in the same language helps with the support received even within the same team.
- Company affiliation and industry
Some industries see a prevalence of specific languages within that industry. Therefore, know which languages are used predominantly within your industry. For example, at one time, Ruby was all the rage within tech startups. Another time, it was Python. And then it changed to the MEAN (Mongo, Express, Angular, and Node) stack. All these keep changing.
Alternatively, your company may have an affiliation with a specific stack. That means you have to get comfortable coding in a certain language.
For instance, some companies have an unspoken agreement to use Microsoft products. Thus, you realize their ecosystem is extremely window-centric, with everything running smoothly on the Windows OS. Hence, the choice of their developers to code in C sharp becomes a no-brainer.
- The functionality of the application:
This is closely linked to the first point about what you want to do. Based on the specifications given on the types of applications you need to build, you come to realize that it can only really be done with a handful of applications.
Hence, start with the project requirements. After all, you use a programming language to satisfy the needs of a specific project. Hence, let us not lose sight of this very important reason.
- Your existing platform and applications
Would the programming language you want to study be compatible with your existing platform? This is important, especially if you work within a group or company. We need to know what the existing applications have already been built on. Although some languages run on any platform, I would advise picking the language that was designed specifically for that environment.
It would give you the best results. You do not want to pick something that involves a lot of hacks to get working.
- Market competition
You have no say in this regard. It is just like how so many companies got behind Android at the onset. This saw several programmers join the Android bandwagon. And consequently, the push to code in Java saw a big jump. I daresay that without such massive support, the need to code in Java could not have gone far.
Market demand also helps us know if you will get any developers out there. This is especially important if the project must be turned over to a new developer.
- The IDE, frameworks, and libraries
This is another hugely important factor. These can make your project super-fast or move incredibly slowly.
The frameworks available for that language are something I always look for. Sometimes one dominant framework would sway your mind. What tools will I have if I choose to code in that language? It is better to know at the beginning than to start and realize you have to use Notepad!
Libraries in this instance also refer to the packages or features other developers have already created for you within the open-source space. Libraries or packages allow you to import completely written, tested, and working functionalities with little to no rework.
- The future
Even though I will look to the past on the existing applications, I also want to know the future within the space.
Are the legacy applications dying out? Would the language be modern and to go with the times? Perhaps the programming language would be largely the same but with a newer version. It is good to know if what you are learning has a lifetime of a few years or if it is already dead.
In the end, the questions remain. What language do I use? It all depends.
Sometimes one or some of these reasons have swayed me towards one language, and another time towards a different language. At other times, I have had to completely drop some programming languages altogether. Hence, use the factors I have outlined. It should make the choice easier for you.
If you want more thoughts or discussion on this topic, then please reach out to me. Until later, take care and keep learning.