Mathematics is probably "theoretical" enough? A good Discrete Mathematics text, Perhaps some others. He'll have some mathematics knowledge around which to orient his programming. And people have been learning math for a long time -- meaning, long before computers. Related, a good book on logic, including logic as implemented in circuits. I recall a fairly intense "computer science survey course" back in college, that started with and, or, not gates and built up through adders, etc, to an ACU. Introduced a pseudo assembly language. I forget how far it continued beyond that. Something like that book I can see doable in good part on paper and in thinking, and it would provide some fundamental background that many programmers don't have or don't retain. It might also be helpful to give him a good, concise book on project management. So that he has some idea what people are talking about when he encounters the work environment.…
Also recommended in this reply