The #12in23 Challenge!

Hey everyone! Happy new year! For 2023, we’ve decided to do something a bit different and encourage everyone to try 12 different programming languages throughout the year! We’re calling this The #12in23 Challenge. You should be seeing a new card on your dashboard to allow you to get started or go straight to the information page for more details and my intro video.

Exploring different languages is a great way of opening your eyes to new concepts and paradigms and broadening your programming horizons. We’ve got over 60 languages ranging from the old (looking at you, Cobol) to the new and shiny (hello, Unison!) to the esoteric (everyone’s favourite: Prolog). We’ve got functional languages, OOPs languages, more lisps than you can shake a fist at, and some extremely niche choices like vimscript! We have the languages that you’ve wanted to learn forever but never got round to (Elixir, Go and Rust!) as well as all the languages that most people use day-to-day (the JavaScripts, Pythons, and C#s of this world). So there’s loads to choose from!

To be awarded completion in a language you need to complete 5 exercises (not including “Hello World”) in that track. We’ve not set the bar too high, but hopefully high enough that you start to get a feel for the language.

Each month from February we’re going to be showcasing a different category or idea and some of the languages that shine in that area (e.g. a focus on functional ideas or lisps). We’re hoping to co-create content for that, so please shout (to @jonathanmiddleton) if you want to be involved in recording some videos about your favourite programming paradigm or concept!

Check out this intro video to all the themes: The Official #12in23 Calendar! - YouTube

And finally we want this to be social. You can use the #12in23 tag in the forum here to discuss the new things you’re trying, or as a hashtag on social media or streaming platforms to showcase your solutions. If you are streaming or want to increase the reach of your videos, please again ping @jonathanmiddleton who can help!

I really hope you like the idea and are up for taking part. Suggestions and ideas for how we can make it even better are very welcome! :slightly_smiling_face:


Hi @jonathanmiddleton - love this idea and keen to get started. However, when I click through to the information page I’m presented with a set of tiles with "?"s which are unclickable. Am I missing something?


This is what it looks like once you have completed some exercises:

Does that clarify things?

You do not have to do anything extra to get the tiles filled: just complete exercises.

1 Like

Hi, I’m a little confused. I see that you’ve completed the exercises in the Haskell track (which is ticked) and the Python track is now available to you.

However, I’ve completed the Python track and is ticked (as shown in the image I uploaded), but the second tile is not unlocked?

I’m assuming that it’ll unlock every new calendar month? As this will give us a chance to focus and learn more about the given language in each new month.

Am I right about this?

Thanks in advance.

1 Like

Tiles aren’t ‘locked’. Instead, for every exercise that you solve (in 2023) a tile will appear or update.

As evidenced by my screenshot, the very first exercise I solved this year was on the Haskell track, and after I had solved that one I solved 6 more, of which 1 on the Python track. If next I solve an Elixir exercise an Elixir tile will appear. Should I then follow up with a Julia exercise, a Julia tile will appear as well. All these tiles will be marked as accomplished goals as soon as I solve my fifth exercises on the corresponding tracks.

1 Like

Thank you very much for the kind reply!

I completely understand the process.

1 Like

Hi @MatthijsBlom clear now - my understanding was that exercism would select a language each month and then users would do the min 5 for that month. So I just select any language I choose for the month…

1 Like

Is it assumed that the completion of the challenge will be with good quality, vetted solutions or is it basically anything that gets the test suite passed? I’m going for the former, pulling in a mentor for every language I’m not day-to-day with.

1 Like

If you get the tests passing, you’ve passed the exercise. That said, mentoring is always great and obviously the more you learn, the more you’ll get out of the whole experience :slight_smile:


A quick question: When you finish 5 exercises, you get the tick. At 6 exercises, you also get a green outline, which I’d assume signifies we went “above and beyond” in the track? Are there any other hidden goodies in there? No need for spoilers of course :)

1 Like


I would have to answer yes to the question. It really is what you want out of it. And so, in answer to the question, Yes.

This sounds more like a bug by me :joy:

1 Like

I say lean into it. First, it goes green with 5+ solutions, then tinges yellow/orange with 10+ solutions, and finally, sprouts flames (as in you are on a hot streak :fire: ) with 12/15+ solutions. :wink:


Proof (C++ would get the green outline on the 6th exercise):

I’d also call this a FEATURE, not a bug, and @BethanyG made a great suggestion! Gamifying this a bit further sounds like fun, push people to keep their momentum. I know I’m definitely going for 6 exercises now :smiley:


A bug then, > 5 for the border-successColor, but >=5 for the progress bar and check mark. Let’s call it a “happy accident” :stuck_out_tongue:


Is that dark mode? How can I turn it on? I’ve been looking for a dark mode and didn’t find it, so I concluded it doesn’t exist… Am I missing something?

Exercism does not yet have a dark mode, but it might be in the works. I use Dark Reader instead.

1 Like

Thanks for creating this challenge!

I just signed up and am getting this screen even though I’ve already completed all exercises for the Racket track. Any suggestions for a fix? Thanks for any assistance.

Only exercises solved this year count.

Arguably, if you have already solved all exercises on a track, that track isn’t much of a challenge anymore and it should not count.

A fix that is already available to you: create a new exercise for the track and then solve it. This can be instructive.

1 Like

I love the concept! Will there be a badge?

1 Like

Hi @MatthijsBlom - Thanks for the feedback. I think I was confused because I marked complete more than 5 exercises this month, but some of those already had at least 1 iteration submitted last year (or maybe it’s based upon when I downloaded them initially?) At any rate, I’ll look into your suggestion. Thanks!