I read Steve McConnell's Software Estimation: Demystifying the Black Art and I can recommend it without hesitation. It is quite old by now so there might be something newer and better out there as well.
That book says the opposite though, we can definitely make good estimates.
It's just that estimating well needs people with training on how to do that, and then it takes substantial time to make good estimates. And there will still be significant error bars (if the estimate isn't a range, it doesn't count as an estimate). But it's certainly doable.
There are no good recommendations because it’s wrong. GP has taken “software estimation is hard and very imprecise” and vastly misrepresented it to try to dunk on someone on the internet.
It’s this sort of disinformation that perpetuates the contingent of software developers that cry bloody murder whenever they’re asked to say if something will take a day or a year.