/advent-of-code-2019

Solutions for the 2019 edition of Advent of Code

Primary LanguagePython

Advent of Code 2019 Solutions

Solutions to the 2019 edition of Advent of Code.

Running

Invoke python part1.py (or part2.py) from each individual day's folder. Yeah, nothing fancy; I'm learning Python while doing AoC this year.

Lessons Learned

Here are the lessons learned for each day:

  1. You snooze, you loose.
  2. Working without unit tests feels uncomfortable.
  3. AoC is indeed perfect for learning language basics.
  4. Knowing modern language's base libraries is key.
  5. Programming is more reading than writing.
  6. Don't climb two learning curves at the same time.
  7. Devils live inside Details.
  8. Solutions make problems look easy.
  9. Mistakes propagate through serialized solutions.
  10. Trigonomotry is not like riding a bicycle.
  11. Know when precision is required. Then use it.
  12. Persistence is not futile.
  13. Magic: how much others can do with so little.
  14. Some languages have higher cognitive load than others.
  15. Investor's fallacy is a great source for technical debt.
  16. Brute. Force. Works.
  17. Personal biases hurt debugging.
  18. Generalize problem, solve it, specialize it back again.
  19. Code can be ugly and beautiful at the same time.
  20. Map hard problems to easy problems, then solve those.
  21. Know when you need help, when you want help, and when they coincide (or not).
  22. Crypto is hard.
  23. Async programming is hard.
  24. Nobody expects the game of life!
  25. Sleep is an essential ingredient in good programming.

Compendium Repositories

I've created a browser extension for Google Chrome and Mozilla Firefox. It is open source to spice up your private leaderboard page with graphs if you want to contribute!

Here's direct links to every year's solutions I have so far: