Lately I have been doing some code challenges and participating at exercism.com after hearing good things about the platform. They have exercises available in many languages and an active community. I focused on typescript and javascript and uploaded some of my solutions to github, or you can find my exercism profile here. I was also able to contribute as a mentor to a couple people looking for explanations or assistance with problems. Exercism has an easy way to copy or export the code and tests to a local machine. This lets you preserve the challenges in case anything happens to the website and a good way to share the solutions.
Latest exercism stats:
Typescript challenges completed: 60
Javascript challenges completed: 40
Including implementing some cool functions such as:
Around the holidays I learned about the Advent of Code, great timing! The advent of code is a holiday coding event broken down into 25 different 2-part challenges. It's known for:
It's very flexible in what kind of environment and tools you use. Any language or method is allowed as long as you find the correct answer. I chose to use only javascript. Some of the days were very difficult and time consuming. On some I had to look at the AOC reddit for hints, but most days I was able to finish alone using just the MDN javascript docs and it is mostly original code. Some of the advanced topics involved maze solving, Breadth First Search, Depth First Search, Linked Lists, Circular Linked Lists, recursive structures, modular arithmetic, 3d arrays and matrices, and lots of object oriented programming in my solutions.
node aoc2022day1.js > output.log &
I missed the starting date this year and wasn't competing for speed or to even finish the calendar on time. I think that ended up being better to be able to put as much time into each question as needed. Many times that meant spending more than one day on a question. It would be fun in another way though to start on the 1st day and try to keep up with the daily calendar. There are many past years AOCs that I have never seen and that could be fun to work through.
Some people in the community also make visualizations of different questions. Those can be helpful when trying to learn a concept. It would also be valuable to go back and make some optimizations. There is certainly a lot of room for improvement in mine and looking at other people's solutions is a great resource.