Parent repo for all my Advent of Code solutions repos.
Advent of Code is a problem-solving challenge across 25 days each December. I have tended to solve it each year within December, and let it lie dormant for 11 months.
| year | completion (stars/50) | description |
|---|---|---|
| 2015 | 12 | WIP (retroactive) |
| 2016 | 47 | First participation. Solved using only Python. |
| 2017 | 50 | Solved in Ruby, Python, Elixir (new). |
| 2018 | 20 | Attempted in PHP. Lack of time to dedicate to solving. |
| 2019 | 39 | Solved in Python, Ruby, Elixir. |
| 2020 | 50 | Solved in Ruby, Python, Elixir, JS, PHP, Go (new). |
| 2021 | 47 | Solved in Elixir, Ruby, Python, JS, PHP. |
| 2022 | 50 | Solved in Elixir, Crystal (new), JS, Python, PHP. |
| 2023 | 39 | Solved in Elixir, Ruby, Python. |
| 2024 | 50 | Solved in Elixir, Python, JS, Ruby, Rust (new), PHP. |
| 2025 | 22 | Solved in Elixir, Python, Ruby |
- Python: best language for quick solves, or anything hairy where the syntax shouldn't get in the way of lots of looping, BFS and OOP.
- Ruby: most compact & elegant syntax, adapts well to easy and hard problems. Nice depth to standard library.
- Elixir: sophisticated language which tends to produce robust and well-organised code. Though the advanced concepts have a learning curve, it's very satisfying when they pay off.
- Javascript: very useful for sticky situations, and long problems needing good organisation. But too familiar from my day job!
- PHP: not a very good choice for FP-style because its array functions are so clunky.
- Crystal: feels too similar to Ruby. Will be nice to see if its types prevent bugs and its performance helps with long-running solutions.