Monday, January 08, 2024

#12in23 and Advent of Code 2023

Last year I did have too much time on my hand, and while I spent a lot of time chilling, I did miss using my brain at least a little.

So I worked on these two challenges.

Excercism #12in23 Screenshot
Exercism #12in23 

I am a big fan of exercism, which is a site with exercises to learn all kinds of programming languages. The quality of the tracks varies a lot, nonetheless the most popular ones are very useful. There is also a mentoring element, which I haven't used myself. 

You can either solve the tasks in an editor on the website, or use a small CLI tool to download the task and submit solutions. It is all straightforward to use and fast. 

Every year they also have some kind of challenge. In 2023, it was to learn 12 languages in the year called #12in23. You have to solve five exercises for each language to complete it. 

I just did the bare minimum for some languages I already know and some I wanted to have a look at. 

The ones I know and used recently: PHP, Ruby, Python, JavaScript, Go and Bash. No surprises here, except that you still tend to forget basic stuff over time. 

Some I haven't used in ages: C and C++. C++ especially seems to be a moving target. 

And some I haven't used professionally or just touched before: Elixir, TypeScript, Kotlin, and Emacs Lisp.
I like Elixir, and I decided to continue learning it. Some design decisions don't make a lot of sense to me at the moment. This might be my OOP brain.
TypeScript seems nice if you have to do front-end stuff.
I can't really see the point of Kotlin, it is pleasant, though.
Emacs Lisp … I think I keep on just copying and pasting other peoples code for my Emacs config. 

I didn't work on getting any of the challenge badges. Furthermore, I wasn't really that much into it.

Advent of Code 2023 screenshot
Advent of Code 2023

This year was the first time I gave it a go. I solved most of the puzzles using Ruby. 

Every day you get a challenge on the Advent of Code site and once you solve it, you get a harder version. 

In most cases, you can brute force the first challenge, but not the second one. 

I made it until day 11, solving both challenges and stopped doing it on day 13, due to travel, and never picked it up again.

I think the best thing about this is the amount of learning you do if you do it in some kind of community (Reddit, Slack, employer, …). People have different approaches, use different languages, and different goals. 

People who do this every year have an advantage, as there are some standard solutions you can keep in your toolbox. 

I am not sure if I will do it again. I don't know how this would work with having a full-time job at the same time. But I still would recommend it to everybody to at least give it a try.





No comments:

Post a Comment