My university had a wonderful pair of courses in the first year of its CS degree. The first had us build a Z80-based computer on breadboards, with a couple of hulking ancient HP logic analyzers to debug with. For the second, they gave us an assembled Z80 single board computer and had us do something interesting with it -- games displayed on an oscilloscope, control a small robot, etc. For both courses compilers were strictly forbidden.
It was a great way of bridging the abstraction gap between the physical hardware and the code we typed at the keyboard. (We were also required to take courses in basic digital and analogue design and compiler construction to give an overview the rest of the stack, too.)
Nowadays, I think they've switched to using ARM boards for the second course in the build-a-computer series. From a hardware reliability and cost perspective it makes sense, but it's a little sad that the "I built one like this! Just not quite so neatly..." factor has been lost.
As a software guy, the details of the Pi's PCB layout are about as impenetrable to me as the internals of the SoC itself are. It's Magic Electronic Stuff!, but just a tad more powerful than the Z80 I used to play with.