Why you should build the same project in multiple programming languages and frameworks
Tags: programming, productivity, learning, javascript
Published: 2023-06-21 17:42:35

## Introduction

In a world that changes every day, new programming languages, libraries and frameworks come out almost every day it's hard to keep up. One of the most important skills for a programmer is to solve a problem in the best possible way using the necessary tools, that does not mean using the most widely used language or the most popular framework of the moment, programmers tend to overengineer things or do flex of their stack, and also unfortunately they don't learn new things because they already work with a stack and they feel comfortable as they are (That happened to me). I am not saying that you should learn all the new and hot things that come on the market, obviously there are things that one simply cannot and should not learn, I can make a whole blog just talking about this topic, in the end "Learning something new is never bad".

## Before continue
This blog is more for people who already have knowledge and experience as a developer, even so if you are new to this world it may be useful for you to read this.

## The issue
The problem with learning a new programming language, library or framework is that many times the paradigm changes and the idea of how they are built, which makes it more difficult for us to understand how they operate (If you already have experience in another technology similar to that), so when we try to learn it the process is always like:

![Learning something new](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5bp4tz27npla1nzjyg1n.png)

## The solution
The best way to learn a new language, library, framework, etc..., is to build something with it, practice makes us understand how things really work, and makes us read the documentation with a better idea, and makes let's have errors and learn how to read those errors and debug.

So the idea of this blog is to focus on building a project that will help us understand the tool we want to learn.

A lot of us have some projects, simple or complex, that we just haven't touched in years or months, some of these projects were really interesting, but when we finish it we don't touch it again because it works, so if one day you wrote a project in Java and you want to learn Python it is extremely useful to make a clone of that Java project in Python, the important thing is to choose a project that is interesting for us and that is complex enough that it can show us different areas of the language, the important thing is to try to improve the project using the tools that this language gives you, it's not just translating the code from one language to another, it's just using the same business idea so you don't have to think about it and you can concentrate on how language works.

This is super useful also when you are trying to learn a Javascript framework, for example if you have a project in Next.js, where you already have all the UI, business logic, database calls, and you want to learn SvelteKit or SolidJS, you no longer have to think about building the UI, business logic and so on, you just focus on how each one is handled.

### I don't have any interesting project 

If you don't have any interesting personal project, there are still thousands of open source projects that you can refactor in other languages, and you can go further, maybe there is a library that you love but it's only in React, you can migrate it to Svelte for example, as Huntabyte did by migrating the shadcn library from React to Svelte 
{% youtube bfbam0Zf4p0 %}

## Benefits

### Comparison

For me, one of the most fundamental advantages is that you learn what is best for each situation, and that makes you a better programmer, because you learn to use the tools that work for that situation, because there is no perfect language or framework, each one solves a problem.

### Read and improve existing code

It's interesting when you look at your code from a while ago and you say to yourself: "how stupid is this", and you think that you could do it in a much better way, that's perfect because it means that you are growing as a developer.

This also teaches you why writing understandable code is important, it's hard to be looking at your own code and not understand what's going on.

## Conclusion

Obviously this is just an idea of how to learn a new language or framework, you can use all this to your own benefit and path, the most important thing to learn is to write code, a lot of code. This technique will only help you write the code you really need and learn to use the tool in a faster and easier way.

Hope you find this useful.