As already mentioned in my Advent of Code post, I casually like to do some Clashes of Code on

A Clash of Code is a 15 Minute coding challange that you have to solve, competing against other players in a language of your choice.

After months of doing nothing regarding this 'Clash of Code' thing, I started clashing really intensively for half a month as offers a journey for the clash of code section. I completed the journey and I'm still addicted to do 1-5 clashes daily.

As the challanges are about solving small problems, you get a completely different thinking while solving these tasks vs. coding in a company. While doing project work, I usually train clean code, architecture and writing testable and stable code. When solving these clashes, I train quick analytic thinking, reverse engineering, quick and dirty solutions (for better or worse) or writing as little code as possible (depending on the mode of the clash).

Additionaly I did these challanges with python after writing C# for the last 10 month only. This trained pythons "deep basics" as the challanges have a lot to do with ASCII values, binary conversion and using dictionaries to solve stuff.

If you want to quickly learn a new language I can recommend these clashes or solving some Katas on a daily basis.

Katas (Practices) are also available on Codingame but I prefer the tasks on CodeWars.

I will give you an example how your thinking changes after participating in ~200 clashes of code:

A (for me) in retrospective pretty impressive solution is a Solution to 'Rock, Paper, Scissors' I wrote:

Input (example):



f,s = [x[0] for x in input().split()]
wins = ["RS", "PR", "SP"]
if f+s in wins: print("Player1 wins")
elif s+f in wins: print("Player2 wins")
else: print("Draw")

Explanation: This code takes the first character of each word and checks, if the array "wins" contains the combination for player1 or for player 2. Else it's a draw.

I guess I would'nt have found a solution like this if I would'nt have participated in the Clash of Code.