I've been told a good rule of thumb for producing reasonable estimates is to make an estimate for how long you think it should take, then double the answer and add 10%. I never want to follow the advice when making estimates, as it feels like saying it'll take so much longer than I actually think it will might make it seem I'm inefficient, but in reality it turns out to be about right.
Perhaps also worth mentioning Hofstadter's Law:
"It always takes longer than you expect, even when you take Hofstadter's Law into account."