This forum piece hit me in the feels:
Software development is not carpentry. Almost everything a developer writes is unique, they have never built that particular thing before. We are not cabinet makers repeating a variation of something we've built hundreds of times before.
Estimations are hard. I think its necessary for non engineers to have some context over how long something will take but the time you think a task will take is almost always wrong.
There's a rare chance you have a wow moment and you solve the problem faster than you originally thought.