One of the biggest lessons I learned is that you can't let your work speak for itself and expect a raise or promotion. I soaked up all I could and volunteered for tasks, often times going way out of my comfort zone. When my first review came along, I didn't do a very good job of articulating all of that into my self review. So despite having gone above and beyond, I got a Meets Expectations.
After that, I made sure to document everything I did. I also looked up the responsibilities and expectations for the next level position and documented every way that I was already performing and oftentimes exceeding at that level. Therefore, when monthly one-on-ones or the annual review came along, I was prepared to make my case for why I deserved a promotion. That's how I was able to be promoted 3 times within 5 years, quickly surpassing peers who had been there much longer than me.
tldr; your success as a beginning software engineer is dependent upon your abilities to learn, to take on tasks that are outside of your comfort zone, and above all to be your own best advocate.
To say that none of the people listed never failed isn't true. All of those people failed at some point to varying degrees. The difference is in how they responded to that failure. Failure isn't bad; it's a learning opportunity. You try something, it doesn't work out, what happened and how can you do better next time?
Successful people aren't successful because everything they do works out 100% of the time. Some of it comes down to skill, yes, but a lot of it comes down to luck and handling adversity. You mention hard work; most of the hard work comes from dealing with setbacks.
I should also point out that the 3 people you mentioned come from a TREMENDOUS amount of privilege, so they were free to take risks knowing they had a safety net to fall back on. Most people don't have those safety nets and therefore not able to take such large risks.
I can tell from this post that you're probably at a creative nadir and need some encouragement. All I can say is keep trying, but stop trying to put yourself on the same pedestal as Elon, Gates, or Brady. One of the worst things you can do is measure yourself against another's success.
My bit of advice: set incremental, achievable goals. Define what success means to you, then break that down into smaller goals that you can accomplish along the way. The end goal might be to be a successful billionaire entrepreneur. But the first goal might be to learn a new skill. You want to make a website or an app? Learn React or Vue.js. Learn about web hosting. Make some starter projects and throw them out on Github. Then work from there, find out the next step, and build upon what you learned.
So Apple's rebuttal to the App Store monopoly claims is to suggest that because users can access content via web browser, the App Store can't possibly be a monopoly? And yet how many users consume content using their phone's browser as opposed to an app? How many websites purposely degrade their mobile browsing experience (cough cough Reddit) in order to forcibly encourage their users onto the app?
The point isn't that there are many ways to consume content. It's that the power of a mobile device and operating system lie in its app ecosystem, and on Apple there is still only one (legal) way to get apps, so their argument is rather DoA.
After that, I made sure to document everything I did. I also looked up the responsibilities and expectations for the next level position and documented every way that I was already performing and oftentimes exceeding at that level. Therefore, when monthly one-on-ones or the annual review came along, I was prepared to make my case for why I deserved a promotion. That's how I was able to be promoted 3 times within 5 years, quickly surpassing peers who had been there much longer than me.
tldr; your success as a beginning software engineer is dependent upon your abilities to learn, to take on tasks that are outside of your comfort zone, and above all to be your own best advocate.