The guessing game
Building software is a massive guessing game. You hope that what you're building will help somebody solve a problem.
You don't know, though.
Until your code hits the real world, gets used by people with real needs, it's all just theoretical. Time and again