I actually really think that starting with assembly would be a great place for someone to start learning programming. But not x86 and not on a traditional PC. Instead using some microcontroller attached to a breadboard with a few simple peripherals like a keypad, simple LCD (or maybe an 8-segment).
The control-flow is obvious, the syntax is simple enough that novices shouldn't struggle with it, and writing directly to pins to control the peripherals gives immediate concrete feedback.
The control-flow is obvious, the syntax is simple enough that novices shouldn't struggle with it, and writing directly to pins to control the peripherals gives immediate concrete feedback.