;

Nabeel Sulieman

Advent of Code 2024

2024-12-04

Note: This is my first post in over two years! I miss this and have several things I'd like to write about. It's not new year yet, but my resolution is to write more.

TL;DR

  • I've been wanting to do Advent of Code for a while
  • This is a great opportunity to try new things like Deno and Rust
  • I'm not sure if Copilot is helping or harming my learning process
  • My solutions are here

Motivation

I've been on parental and will be returning to work soon. I feel kind of rusty, so Advent of Code feels like a great way to warm back up.

Strategy

I personally find JS/TS to be the best "inteview language". The language is easy to write, intuitive, not too verbose, and has plenty of great utilities to solve problems quickly. Since these challenges are very similar to interview coding question, that's what I gravitated towards.

Deno

To mix things up a bit, I decided to use Deno instead of my usual NodeJS. My experience so far has been good, though nothing hugely ground-breaking. My main take-aways are:

  • You use ES6 import foo from 'bar' right out the box, without a compilation step
  • You can also run TypeScript directly without any compilation
  • I have to run with the --allow-read switch because my code reads a file
    • This is a bit annoying, but I do appreciate the added security

Rust & Copilot

On day three I guess I was feeling a little overconfident. So I decided to try out Rust, which I've never used before. With copilot's help, I was able to solve the problem in almost the same time it would have taken me to do it in JS. I have mixed feelings about this. On the one hand, it's made me very productive, even in a language I've never used before. But am I really learning?

To be Continued

I've shared my code here: https://github.com/nabsul/advent-of-code-2024. I'll at least post a follow-up after I finish (or give up) on this.

It feels good to be posting again after such a long time. Stay tuned for more!