Why You Should Be Doing Advent of Code (it's not too late to start)
Tags: adventofcode, algorithms
Published: 2020-12-02 20:18:54

You may have recently heard some talk about Advent of Code - every developer's favourite advent calendar. In this article, I'm going to try and explain why *everyone* can get something out of it.

{% twitter 1333646123001634816 %}

## What is Advent of Code?

Advent of Code is a website that sets daily challenges for each day of advent. The context for each challenge tells part of a story that spans the full 25 days.

Each day, you are presented with two problems that are designed to be challenging whilst remaining accessible to those without much programming experience. 

Solving a problem rewards a gold star - to complete the challenge, you need to collect all 50 of them. Whilst this sounds simple, the challenges vary in difficulty (with an upwards trend as the event progresses).

## What languages can I use?

You can use any language! None of the problems involve uploading your own code - you can solve all of them locally, and then copy/paste the answer into the submission box. You can even solve them with an [esolang](https://en.wikipedia.org/wiki/Esoteric_programming_language) if you want a challenge!

## Why should I be taking part?

Almost everyone has a reason to take part in this competition! However, the most compelling reason depends on where you are in your programming journey.

#### If you are just starting out

This is an opportunity for you to start using some of the basic skills you may have been learning. If your programming experience is limited to online courses or video tutorials, then AoC is a great way to practice applying your knowledge to solve problems by yourself. The story is a nice touch too!

#### If have been programming for a bit

Advent of Code is a great way to practice your problem solving skills. It can be used as an introduction to competitive programming - perhaps you might get a hobby out of it! At the very least, you can expect to improve your interview skills.

I would recommend timing yourself to see how quick you can solve the problems, and then try and compete with your friends / colleagues.

#### If are an experienced programmer

As you might have some competitive programming experience, you can take this challenge a little more seriously. If you are fast enough at completing them from when the challenge launches, you might even be able to make it onto the leaderboard!

Alternatively, you can take AoC as an opportunity to try and get some experience with that new programming language you have been eyeing for a while. I personally have chosen [Go](https://golang.org/), because I want to be familiar with the syntax before experimenting with the various web frameworks that it offers.

## Conclusion

Advent of Code is a great idea that can really get you thinking. It is on its sixth year now, and is continuing to grow. In fact, there was so much traffic on the first day this year that it brought down the servers!

You can get started at the following link: https://adventofcode.com/

#### Footnote

If you enjoyed reading this, then consider dropping a like or following me:
 - [DEV](https://dev.to/mileswatson)
 - [LinkedIn](https://www.linkedin.com/in/watsonmiles)
 - [Twitter](https://twitter.com/miles__watson)
 - [Github](https://github.com/mileswatson)

I'm just starting out, so the support is greatly appreciated!

*Disclaimer - I'm a (mostly) self-taught programmer, and I use my blog to share things that I've learnt on my journey to becoming a better developer. Because of this, I apologise in advance for any inaccuracies I might have made - criticism and corrections are welcome!*