Which technology/programming language should you learn first?

Nicolas Alejandro Porpiglia
Globant
Published in
6 min readJun 28, 2022

This is a very common question that I always get when I meet people that want to take their first steps into the programming world or even college students that haven’t yet decided what thrills them the most. Personally, I think there is no direct “silver bullet” answer to this, so I will simply respond with an encompassing and not-so-loved: “it depends”. Nonetheless, I will try to provide a simplified version of that answer that will hopefully help you get on the right track.

Let me begin by sharing some facts and numbers about the most demanded programming languages in the market these days:

What information does this give us? Does this mean that you need to learn either Python or Java? Not necessarily. This just gives us information about where the industry is moving, and where companies are investing their hard-earned quarterly money.

Based on this chart, we can clearly say that the market is putting a lot of focus on Python, which is often used for Data Science, Machine Learning, and AI. On the other hand, we can see that they are also not taking big risks, using a widely adopted and tested language as Java for everything else, such as microservices, IoT, and Android, among others.

How to pick your “ideal” programming language?

I recommend that you first find what area in technology excites you the most or the kind of project you would like to develop first.

  • Do you have an idea for a mobile app that will be a huge hit and you want to develop yourself? Dart (Flutter), Kotlin (Android), Swift (iOS), and Javascript (React) are good places to start
  • Do you enjoy knowing about Data manipulation, graphs, charts, and organization of it? You would probably pick Python or Java for Big Data projects
  • Do you like storing data and optimizing things? Would you like to be behind the scenes making things work faster and more reliable? Java, C++, Go for backend projects
  • Are you more motivated about user interfaces? Are you UI detail-oriented? Do you enjoy animations and user experience as a whole? Probably Web (React, VueJs) and/or Mobile is a good start for you

Having a goal or project is the key answer to which language/framework or technology you should learn first. I personally recommend that you don’t do it just because it’s an “in-demand” language. These metrics change every year and will continue changing in the upcoming years. Technology moves at a fast pace and yesterday’s trendings are already old today.

Get into the game, ASAP

The above recommendations are very general and might help you choose something that will get you motivated at the beginning and get you in the game. Deciding what to pick might be overwhelming with the number of frameworks and programming languages that exist today, but it is crucial that you don’t get stuck in this step.

Learn stuff: Educate yourself

Once you have selected the technology you want to learn (by either searching yourself or by reading this super-helpful article I wrote for you) you should start learning. You could choose what we call a linear path (University degree) or proactively learn yourself using other sources. If you are choosing the second path, there is an infinite number of websites you could use, I recommend doing courses on some of the most used pages, such as:

Coursera and/or Udemy usually have great discounts. We have great tech talks and articles in Globant University that will foster your career.

Focus on the knowledge you gain, not the certificates. Knowledge makes you pass interviews, not papers.

Get decent and start rocking

After you feel that you are decent or good at a specific language or technology (you can try answering online interview questions to test yourself, there are many sites for this), you should land a job, either a full-time or a part-time job asap. I can’t stress this phrase enough. This will give you a bump in your professional career and will help you start getting familiar with all the above concepts. It will also help you understand other areas and start socializing and learning from more experienced co-workers.

Even if you think you did not select the “right” technology for you at the beginning, it is ok. You will realize how fast you will be able to change paths once you become an expert in a specific area and once you adopt a new mindset that helps you face new technologies and challenges from a different perspective. After learning more about the different technologies (Backend, Mobile, Web, Database, etc) it will become easier for you to pick the one you want to specialize in.

Should I specialize in something or know a lil’ bit of everything?

This, among others, will be as well, one of the most asked questions among freshmen.

Let’s try to summarize very quickly the pros of each one:

Specialization: many large companies will prefer (and can afford) having specialized engineers for every product they build. This kind of position will allow you to continue growing and become an SME (Subject Matter Expert) that is needed and hard to find among engineers. If you really have a passion for a specific platform, this could be the right path for you. If landing a job in a company is not your path, you could use this specialization knowledge to become a “guru” and teach others in the different existing communities

Generalization: knowing a little bit of a lot of things can be also very useful. This allows you to participate in a lot of discussions and lets you collaborate on different topics in different projects. This is often the path selected by the people looking for a Manager position that would need to lead different projects with engineers that have different skills. Whether you want to code your entire startup company yourself, this kind of all-in-one experience can help enormously. Smaller companies usually opt for this kind of engineer to build their products.

A mix of both: Specializing in something and having general skills is often the ideal. This could come with benefits from both worlds.

Conclusion

I have to say I tried really hard to simplify the “it depends” answer you were not looking for. I will try to summarize my ideas in this section so you can skip to this part in the future and use it as a cheat list:

  • If you don’t want to go deeper to find what you really like at the beginning, it’s ok to pick a programming language or technology from the list of the most demanded ones
  • Pick something fast, don’t feel overwhelmed. and move forward
  • Get surrounded by people with vast experience that can teach you (by either landing a job, joining groups of work, online communities, etc)
  • Get curious about other areas/technologies, learn what others do to see whether you could like that more, and potentially make a quick shift in your career
  • Continue learning constantly

Something important to mention on this topic is that — no matter what path you choose, you should always have your technical skills up to date, and stay relevant.

--

--