It's well established that practical project work is what works best at producing tangible results, and most institutions that aim to produce the best programmers focus on that.
I can understand this is not the approach preferred by academic types which is a strong community on hackernews.
Most people are more motivated to understand the theory because it helps them solve a practical problem, rather than theory for the sake of theory.
I thought this thread was about computer science. Working on a programming project is related to computer science in the same way that welding together a shelf is related to mechanical engineering.