Rather than spending hours each day doing math proofs, he could have the chance to explore different areas in programming while learning figuring out what he enjoys (for example game programming vs web development)
Rather than spending hours each day doing math proofs, he could have the chance to explore different areas in programming while learning figuring out what he enjoys (for example game programming vs web development)
Of course, it's absolutely instrumental to spend a lot of time coding on your own "for fun." Just learning the proofs and such does not prepare one for the real world at all.
This was somewhat harder maybe 10 years ago. Fortunately in modern days, there are many APIs to play with, open source technologies, and so on. Communities like GitHub used to be much harder to find in the past. HN rocks.
But you'd have to know the theory too, to understand the concepts on a deeper level. Yes, some people are entirely self-taught, but it requires the person to already have the "drive" and to already know what they want.
Finally, a good university (like UofT is) can bring life-long friends and experiences and expose one's mind to more ideas. It's great for opening doors, and generally establishing a foundation for learning. Can't miss that!
Like it or not, a university degree is worth years of experience and is often a barrier to entry at many many many top software companies. Not everywhere is a startup. If he's not sure what he wants to do, university is an even better decision.