Welcome Corner Blog Posts
Go a little bit deeper into the Welcome Corner with blog posts. Learn how to get started in SAP Community and get tips on maximizing your participation.
Showing results for 
Search instead for 
Did you mean: 
Developer Advocate
Developer Advocate

It's that time of year where many of us reflect and also count down to the holidays; this latter activity is directly represented in the word "advent" which is from the Latin, a combination of "ad" (to, towards) and "venire" (to come).

I thought it would be nice to reflect on the advent calendar that nicolai.geburek put together for us (read more about this initiative in l_stodal's 24 Days of SAP Community) and share another advent calendar, that of the Advent Of Code.

The annual Advent Of Code event

The Advent Of Code is described as: "an Advent calendar of small programming puzzles for a variety of skill sets and skill levels that can be solved in any programming language you like. People use them as interview prepcompany traininguniversity courseworkpractice problems, a speed contest, or to challenge each other."

It's been running annually since 2015, and is the creation of Eric Wastl. He gives a "behind the scenes" talk on how he puts the entire thing together, one recording of which is this one: Eric Wastl - Advent of Code: Behind The Scenes - Leetspeak 2019.

The programming puzzles

You can approach Advent Of Code in any way you like. There are many, many folks participating (2020 saw a 50% increase to around 180,000) and solutions are written in pretty much every programming language under the sun. In fact, some of the puzzles are solvable with other methods, maths included, but most are about computational thinking.

Some are in it for the thrill of finishing the puzzles as quickly as they can. Others are in it for the recreational diversions it offers. Others take advantage of the quieter holiday period to improve their skills in a particular programming language that they've been working on.

There are no prizes, you don't even have to work through all of the puzzles, you can skip ones you don't fancy. You can do them solo, or join up with your friends and create your own leaderboard.


Looking at the statistics of the search results for Advent Of Code resources on GitHub we can see that the following languages are pretty common: Python, Rust, JavaScript, C#, Java, Go, Kotlin, C++, TypeScript and Ruby.

Moreover, this is just the tip of the iceberg; I know that my son Joseph, for example, has enjoyed writing solutions in Haskell, APL and Go in the past, and this year he's enjoying using the functional library Ramda in a JavaScript context.

Many folks have used ABAP too!

This year I have started building solutions in jq which is a language primarily designed for processing JSON data, but with a bit of persuasion it can be employed to address some more general problems.

Incidentally, in the Hands-on SAP Dev show we're using jq to explore the rich seam of JSON-based metadata in the BTP Service Metadata project - see the YouTube playlist Exploring the BTP Service Metadata project (head over to this playlist to watch the replays).

How about you?

As you reflect on 2022 and start thinking about moving into the holiday season that is approaching, will you also take the opportunity to think about solutions to the Advent Of Code puzzles this year? What language might you use?

Let us know in the comments if you're taking part, and what your language of choice is.

Happy holidays!