Maybe I should just delete all these repos I've worked on for my job, the cluster management tool, the pedestrian simulator, the GSM radio emulator, the VM monitoring infrastructure, the distributed key-value store. They were written in Go, so I guess they weren't real programs.
However, I'm still sticking to my point. Debugging your code using Printf feels like 1990s.
My style is to only log when I'm debugging a failure I don't understand. Then I remove the log output.
I also make sure that my unit tests cover the problem case I was debugging, because problems that require this kind of detailed debugging tend to be the trickiest to keep maintained without regressions. And I try to make my code based on careful state management (or, if possible, statelessness), preferably with a state machine.
Maybe debuggers are useful to you in other scenarios, but they are by no means necessary. You don't need to be inflammatory about it.