I can provide some examples for him as a self-educated dev:
* What is big O
* What is value type vs pointer/reference
* How does the internet work
* Binary search trees, tries, graphs - u wut m8
(Thankfully, there's this: https://medium.com/basecs/archive/2017/01)
* Basic cryptography, hashing, etc
* DNS, IPs, HTTP, etc
* TCP, UDP, etc (I still don't know these)
* Stack, heap, queue, malloc (Again, very little exposure to this without learning a low level language.)
* How modern computers work
* Logic gates, clocks, memory, (actual) binary math
* Wifi basics (actual physical data transmission)
* Linux
I can go on and on and on, but these are things you don't pick up at work unless you go out of your way to learn how they work.
Regarding the parent post - I have a very generous training budget. And guess where I will never spend it? At the best University in my state. I got a degree in something other than Comp Sci, and 95% of the classes were useless and way-too-drawn-out. So, you might not be as behind as you think.
A pretty-smart co-worker of mine with a Comp Sci degree said he didn't figure out the point of object oriented programming until he got his first Java job.
This is only related to other comments in this thread, but I do feel that formal education is oversold, and particularly to people who are from poor families with no guidance trying to have a shot at life.