AdventJS is an advent calendar that presents daily programming challenges. This calendar is based on another that was created in 2015 with the same concept, and it is called the Advent of Code. AdventJS was created by @midudev in order to solve 25 programming challenges between December 1 to December 25. For this year, you can choose between 3 options to solve the different challenges like JavaScript, TypeScript, or Python. So, I decided to give TypeScript a try this year.
Probably you will be asking how it works. So, I will be explaining the format of the challenges. When you select a challenge in the calendar. It will show you a split page. On the right side, you can read the instructions where you can find a little description of the problem, rules that you will need, and some examples with the expected result.
On the left side, you have a space where you can select the programming language and write the code that solves the problem. Once you finish solving the problem, you will need to submit the solution and the platform will give you feedback related to some test. If your solution passes all the tests, you will receive a score based on stars.
I decided to participate this year because I want to improve my problem-solving skills and practice TypeScript, as I haven't been programming much lately. I would like to re-learn some concepts and update my knowledge of TypeScript.
For this event, there are three difficulty levels: Easy, Medium, and Hard. You can find different types of challenges such as algorithmic puzzles, data manipulation tasks, and so on. In the following figure, you can see the instructions ford this challenge and how I solved the problem.
e
You can sign in using your GitHub profile. Once the connection is complete, your profile image will appear on the page, and you can start solving the challenges. I’m using VS Code as my code editor, and in the following picture, you can see how I structured the folder.
I decided to use TypeScript because it is a language commonly used in frameworks that interest me, and I wanted to learn more about it. When I choose a challenge, I start by carefully reading the problem statement and reviewing the provided examples to understand how it should work. Next, I break the problem into smaller parts, implement the solution in code, and test it to ensure the results are correct. If the solution doesn’t work as expected, I identify the issue, debug the code, and make adjustments until the problem is solved.
I encountered difficulties with some functions I wasn’t familiar with, but MDN Web Docs proved to be a valuable resource that helped me resolve these challenges.
You can find all my solutions in my GitHub repository.
Participating in AdventJS has been a great experience because it gave me the opportunity to improve my problem-solving skills and deepen my understanding of TypeScript. If you’re looking for a way to challenge yourself or improve your coding skills, I highly encourage you to join AdventJS.