I think one of the biggest shocks/adjustments you make when starting to work on things outside of school is the notion that most problems do not have answers.
Often times, we are taught/imbued with expectations of finding a solution that is either right OR wrong. For logistical reasons, this makes a lot of sense as we try and educate the masses.
But in reality, most things do not have an answer.
It is not easy to decide which product to build. Or how to develop it. Or what color it should be. Or what stack we should use.
So what we do is guess. We make our best guess - but often times all it is, is a guess.
We leverage our past experiences, heuristics we have developed, best practices, skills, etc. - but at the end of the day, we are not sure if it is going to work.
Uncertainty can be scary. Especially when we are trained growing up to expect certainty of results.
You expect to have more and more figured out when you get older, but I have found the reality to be the opposite. You simply learn of more things that need to be figured out - and these things do not really have answers.
It is at this time you are forced to start making really tough decisions and live with the consequences.
It is hard. It is scary.
It may supposed to be.
The good news: there are tons of problems just waiting to be solved. There may not be one universally correct answer - but there is a ton of room to give it our best go.