As a programmer I am fully qualified to say that time travel is utterly worthless if you change ANYTHING. Why? Because it creates an infinite loop.
If I want to stop Hitler from committing the Holocaust, I'm going to time travel back and kill him. So, I go back I kill Hitler and stop the Holocaust. Boy, that was easy. Now, IF I didn't cause a parallel dimension, or alternate reality, and assuming I actually changed the timeline I came from, let's follow history, from the death of Hitler.
Hitler dies young, no Holocaust. No history books talking about the Holocaust. I am born, I grow up never knowing about the Holocaust. I invent my time machine, I do something else that isn't killing Hitler, because I never knew about him. Hitler is now not killed in his youth. He grows up and commits the Holocaust.
Rinse & Repeat.
There is some flexibility depending on how time actually works. The way I tend to think about it, time have already happened, so future you stops existing once Hitler is killed (aka the first big change that changes your course to create the time machine and go back). Therefore, the you that wants Hitler dead stops existing entirely, because he "never existed" anymore, only the other you exists, but then he stops existing once he doesn't kill hitler. Aka, the universe just keeps ground hog daying around the time of Hitler's "Death", and the time you would have gone back to kill him in the timeline where is still alive.
However, if your time is always linear, or if your time machine somehow stops you from being affected by the change, you could go forward in time (after killing Hitler), and convince yourself that you have to kill a young Hitler in the past once you invent the time machine. This may be difficult to do depending on how much you have a problem with killing people just because a lunatic who looks like an older you tells you to. If you can convince yourself to go back in time without the Holocaust existing and killing Hitler, you can keep there from being an infinite loop.