There is a programming challenge called 'advent of code' where 2 programming tasks are released every day. I participated this year and here is what I learned.

Some programmers around the world are waiting for the release of the task to solve it as fast as possible. After I saw some of the streamers solving the problems of last year's challenge on twitch, I decided this year to take part and do some of these tasks, too. Not in my home language C# but in python, as I got in contact with it within the last year and really appreciate the light, pseudo code like syntax. Of course, I didn't even get close to the time of the high speed coders but sometimes I inspected the solutions they created. I even stopped at december, 19th as problems started to take more than 2h (for me) to solve it.

Long story short, here is the list of things I learned:

  • Sometimes I think too complicated
  • There is often a mathematical solution
  • You can reach your tagets even without a Math degree
  • You can reach your tagets even without a CS degree
  • The problems in advent of code are rarely appearing in every day life
  • I got to know the powers of python
  • I got to know the weaknesses of losely typed languages
  • I needed to implement 2 problems in C# before I was able to solve it in Python
  • copy by reference is a tricky thing
  • Visualizing problems in a sketch helps me figuring out stuff
  • Making problems transparent to people who don't even wanna hear about it, helps as well (thanks, gf)
  • optimisation does require a solid understanding of complexity, a little touch of math and a deep dive into your programming language
  • unit tests are neccessary. Fucking do them!
  • When you lose track of your thoughts: break the problem down in happy little functions. Oh.. and Test them. Fucking test them.
  • When you're struggling around in a new language: Try to solve aventofcode with it. I feel so close to python like never before ( #nohomo )