My friend meets the following two prerequisites. He is familiar and comfortable programming in compiled languages like C and he is a reasonably smart fellow.
The Signetics n8x300 processor is about the weirdest imaginable choice of a processor to learn assembly language for. For one thing, we don't even have an assembler available to us! But it is of interest both in its own right (and perhaps because of its weirdness) and because my friend and I are both involved in a collaboration reverse engineering an old disk controller that uses the 8x300.
Tom's Computer Info / tom@mmto.org