It’s not my first choice, but it’s gonna be TypeScript for me. I’ve got an interview for a primarily TS position coming up this week so would like to brush up on its quirks.
If the interview doesn’t go well, then I’ll probably switch to Go, though hehe. I’ve been really enjoying using it, but no one’s ever paid me to do so.
Python
Not my first, second, or third choice. But I’m in between moves and have very limited access to my desktop (even remotely/SSH) so I need the simplest tool for the job.
C++ because I forgot to plan for anything else, so I’m just reusing what I had from last year
Factor!
Julia, since I used it for some projects this year but never for something “time critical” like AoC with a new problem each day. I really like that it’s simple like python but with strong typing. Originally I wanted to use Ocaml to learn it, but on day 1 I realised I don’t know how to do anything in it yet 😄.
Going with rust for the second year, I’m still trying to learn things with it and AoC is a great way to do so
Java
Nim, because it’s fast and expressive.
Still going with C as my main language with the ‘straight to the point’, data and array centric style that’s worked well before. Perhaps see if I can get some of it running on Turbo C again. Also fiddling around with JavaScript now for list comprehension variants and was eyeing Elixir but that’s probably not happening this year.
R, because I’ve already used Python, VBA, and Excel formulas.
Nix, because I hate myself. No, it is very much not made for this purpose. But it’s possible to use if for this.
I’ve seen a couple people attempt this. Am very curious about how exactly that will be done. Although I’ll have to say that i’ve seen far worse and/or more difficult submissions. People cook up absolutely insane code
True. I love how AoC is a hotbed for creative and/or insane ways of solving coding problems.
If you wanna check out how it goes in Nix: https://git.sr.ht/~kintrix/aoc2024
I’ve got a really nice setup with benchmarks, auto-input-fetching and solution upload and such, written in Rust, so I’m sticking with that. I kinda wanted to try Odin, but december really snuck up on me, and I didn’t have time to set it up or really get familiar with it.
Iterators and slicing and such are all just… so nice for parsing streams.
I’ve started with Go, but I think I’ve realised AoC isn’t for me. I feel so incredibly dense.
That’s fair if you aren’t having fun, but I wouldn’t write it off completely. Like I only made it to day four last time.
The problems they present are of a totally different class to what most programmers will ever encounter in the “real world.”
Once you get more used to the style of the problems (data structures and algorithms (DSA), like what you might see on leetcode), then you honestly start to have fun with them.
I really struggled with DSA until recently, so if you’d like some help I would be happy to give you some pointers.
Thanks. I felt very deflated after struggling with something seemingly so simple. I was using Go and couldn’t figure out part 2, at least without nesting loops three layers deep.
Today I decided to try to learn Elixir instead and allowed myself some assistance from Claude.ai, which was much more fun.
Nesting loops is indeed the first intuition anyone would have to that problem. The only reason I knew to use a hashmap data structures is because I practiced on exactly these kinds of problems, and looked up explanations and answers on the most basic stuff imaginable.
I felt very deflated after struggling with something seemingly so simple.
Definitely not simple. Especially without training in DSA. You shouldn’t expect yourself to spontaneously invent efficient algorithms to problems that have been stumping students for decades.
Try it out yourself for maybe 30 minutes, then do yourself a favour and look up a good explanation to solving it.
My hope for this year is that we can help eachother understand and solve these problems. I’d love to find some good “editorials” on each problem, breaking them down in detail.
Yes, I guess I held myself to too high expectations. I haven’t even studied CS and learned programming on my own… I’ve been trying to do some exercises and a few courses on algorithms but of course that can’t be compared to going to university. Thanks for the tip, I won’t spend hours in frustration in the coming days for sure. Maybe I should post my attempts even though they are incomplete or fail, to spark discussion.
Typescript with Deno. Was thinking of trying Gleam but I don’t know if I’d have the time to do it in a new language and Deno is just so nice anyway lol
I’ve enjoyed Deno in the past. Similarly, I’ve heard good things about Bun, though haven’t used it myself.
I’ve solved the first two in Rust, and will likely keep going until I can’t anymore, just like with previous years. It’s a fun language, and i’d love some practice too