I grew up in a world where the Arduino already existed, but it was not until I tried building homebrew Z80 computers like this that I really felt I understood how computers/processors work at the low level.
Consider this a warning though: this hobby has caused me to involuntarily collect every model of Z80 powered TRS-80 computer.
I went through the exact same process, but with the 6502 (Ben Eater's videos, and then another SBC of my own design after). It's helped me become a better programmer too. Example: pointers in C now feel very natural instead of some abstract idea of "memory addresses, whatever those are".
And yep, I now also own many 6502 based computers :-)
I'm sure you already saw this, but in case others haven't: https://blondihacks.com/veronica/ is required reading for anyone into 6502. I was trying to rehabilitate a Cocktail Joust arcade cabinet I'd had in storage for years, and instead went off into a 6809 time warp for a while. Quinn's 6502 blog articles were helpful for inspiration while I breadboarded a really basic 6809 computer.
I ended up giving away the Joust machine to a guy (https://web.archive.org/web/20200709102945/http://www.robotr...) who had poured his heart and soul into Robotron disassembly and also was the Joust world-record holder in 1983, so I knew he'd appreciate it at least as much as I did. He happened to live in the area, and was more than happy to drive over and load it up. It's been 13 years since then. I hope he and it are doing well!
Factoid: It takes about six hours to reach 10 million points on Joust. Christian's record was 98 million points!
Not having my 'a-ha' moment with pointers until years into my education when doing assembly made me wonder why we don't start with a half-adder and work our way up from there instead of throwing novices right into C++ or Java OOP with no context.
That's how my comp sci degree went at Georgia Tech. There was a data structures and algorithms class first that used Java but then 2110 was building a computer from the (simulated) transistors up. I would've never understood pointers or C in general otherwise lol
Old greybeard here - I went the other way, learning 6502 assembler on an Apple II before I learned C. Having that 6502 experience when I first took a C class helped me immensely.
I think any kind of assembly experience is tremendously helpful in learning C. Assembly makes pointers and pointer arithmetic very intuitive, in my opinion.
Loved TRS-80 PCs and the COCO in early to mid 80's. My real first PC digital hardware class used those machines. Like most people in those days, could not really afford to purchase any but was gifted a COCO. w/ Editor/Assembler for experimentation :)
The Z80-MBC (the original breadboard version [0]) was actually the second Z80 computer I built. I first tried out one of the Grant Searle designs [1] on a breadboard, and it worked!... for literally 8 seconds, then the single ACIA chip I had waited weeks to get died for no reason. But I didn't have any way to debug what was wrong.
It also didn't help that I didn't have many EEPROMs or an EEPROM programmer at the time, but the ATMega32A can be programmed with an ordinary Arduino.
Consider this a warning though: this hobby has caused me to involuntarily collect every model of Z80 powered TRS-80 computer.
If you wish to become hooked anyway, this project might be another good place to start: https://hackaday.io/project/159973-z80-mbc2-a-4-ics-homebrew...