Somewhat unrelated to that, after I had learned programming and been to University, the most educational experience I had was re-compiling sources for software on Unix machines that weren't quite mainstream. Porting TeX / LaTeX to a Pyramid was super educational, plus a fascinating insight into the mind of Donald Knuth.
This is very interesting; have you written more about the experience somewhere, or do you remember any more about it?
This was around 1988, 1989 and the Pyramid was already obsolete but the organisation had a huge investment in it as a 100 user machine with serial terminals so we had to make do.
First thing was to get the tangle and weave programs running. The header paths and library locations weren't completely standardised and even the function signatures were different between machines. There was no "configure" back then, so it was a case of digging through the the compile and link errors, fixing what didn't work and trying again. Once tangle and weave were running the job got a bit easier until it came to the PostScript output program which was a bit of a law unto itself, but I might not be recalling that part correctly.
Once the tangle/weave steps started working, the Makefile assembled everything and install from there was fairly simple. The bones of TeX were written in an intermediate language and needed the tangle/weave pair to turn it into something functional. To fix my adaptations required developing a passung knowledge of that intermediate language, which was half comments and half expressive code. Once I got my head around it I thought it was fascinating but not terribly practical. Then again, I'm no Knuth and never built anything as cool as a computer type setter so what do I know.
There were a few times that tangle and weave did something weird, but mostly that was my adapted code not working as expected. A few revisions sorted those out quickly.
This must have been right at the tail of that era of Unix though, the Sun workstations were easy to get TeX and LaTex for pre built.
The learning experience of trawling through include files looking for the right functions and adapting calls to make them work on that Pyramid was invaluable as a developer later on, not for the Pyramid knowledge but as an education into unix.
Now of course you can copy and paste your error into google and likely somebody solved the problem already. Back then we had the include files and occasionally usenet. It wasn't necessarily harder to get things done but it required patience and time.
The Trash 80s were something we had in school, never at home.
Without that, and the encouragement to experiment on the machine, I very much doubt I would have ended up as a programmer.
The TRS-80 was my first home computer. I do vividly remembering typing in the whole of Artic Adventure, cursing that I had made a mistake, and painfully checking over every character to find I had put it in identically.
However, bug-checking a typed program was also a common experience. Most of the BASIC games I re-typed from magazines had unplayable flaws in them, so I did actually manage to get it running... Eventually.