I started my career as a programmer in 1972, writing real-time systems in assembly language on DEC PDP-8s and PDP-11s. Back then all software was written in assembly and distributed as machine readable source. (This being DEC, not IBM, that meant paper tape, not punched cards nor magnetic tape :-)
Pre-microcode and mostly pre-CISC instruction sets were readily mastered.
The constraints of storage, distribution media, lack of any high-level system programming languages, the small number of programmers, etc... meant that there just never was not that much system code for any given architecture. Similarly, I/O devices were exteremely simple and limited in number. MMU hardware was still a rarity. All this meant that any reasonable system programmer mastered a machine entirely, its instruction set, all its I/O and all of its (system) software.
At the end of 1977 DEC shipped its VAX-11/780 and VMS V1. Less than a year later, I join DEC's compiler group to write VAX Pascal V2. I can only compare moving to VAX/VMS to being kicked out of the garden of Eden. Quickly I realized that never again would I enjoy that sense of mastery that I had felt on earlier machines :-(