> there are boxes in memory, assignments put things into memory
You are forgetting about functional programming, which has no assignments, only bindings that are immutable — just like in math. And your program is one big expression that is being reduced by a computer.
I wonder what would happen if your friend started with, say, Haskell.