I love Advent of Code. If you like programming, Advent of Code probably has something for you. It's a great source of practice problems for learning a new language or style. There's a "competitive" aspect for people who like programming competitions, and you can even make private leaderboards so you can compete against your friends even if you can't make it on to the global leaderboard.

Last year I was earnestly trying to compete on the global leaderboard, and scored points a few times, ending up 103rd overall (slightly frustrating as the displayed leaderboard only goes down to 100th place!), but it's too stressful for me to want to do that again, and in my timezone it requires getting awake in time for the puzzles to be released at 5am.

This year I've been building a homebrew 16-bit CPU from 74xx logic, and have written an operating system and development environment for it, and I plan to do as much as possible of Advent of Code 2021 on my homemade computer.

There are 2 big hurdles to this. The first is that my computer is very slow. It takes over a minute to compile a typical program, which makes for a very long edit-compile-test cycle, and I don't have any hardware multiplication etc., so even integer arithmetic can be quite expensive.

The other hurdle is that it only has 64K words of memory, and IIRC some Advent of Code problems in the past have required keeping track of state for dozens of thousands of separate things. In those cases I'd either fail, or come up with a way to use the disk for extra storage. I look forward to trying, regardless.

As it happens, just this morning I did kind of a "dry run" on problem 1 from 2016 on my homemade computer, and recorded my attempt, which you can watch if you want: https://www.youtube.com/watch?v=UOizI9qi6FU

Building a Forth could tighter your edit-test cycle.

I am fascinated by Forth, but every time I've tried to learn it I haven't really "got it". It's always felt very unwieldy to me.

But implementing Forth on my CPU, and getting proficient at using it, is definitely something I'd like to do at some point!

> I am fascinated by Forth, but every time I've tried to learn it I haven't really "got it".

Try reading Jonesforth, a literate Forth implementation in one x86 assembly file and one Forth file. You can read it top to bottom and it will explain how everything works step-by-step.

https://rwmj.wordpress.com/2010/08/07/jonesforth-git-reposit...

Github mirror: https://github.com/nornagon/jonesforth