When I went to study CS in 1981, I already had mastered Fortran and LISP. I did not learn anything new about programming languages until my second year in college. The new concepts were currying and lazy evaluation. I did learn a lot of other things thou. Primarily about mathematics: calculus, algebra, graph theory, combinatorics and statistics. Also some about electronics and digital circuit design.
But when I started working as a software developer, I also realized that much what I learned at the university was not relevant and that I could have done without much of what I learned there. I still happy about my time at the university.
A degree is more a proof of that you have the ability to master certain material than a proof you know what is being taught. I that view it is more of an entry exam for certain job positions, although for certain companies, especially in the US, that no longer seems to be the case. But that does not mean that people without a degree are not able to perform as well as does who do. This might not be true for all fields of study, such as law and medcine.
I'm no Bill Gates, but I am a college drop-out who makes a living writing software.
I think there are a couple of things that came together for me: Access to computers for the purposes of programming (including in school settings from about age 8 onwards), interest in them, encouragement from family, and enough college level classwork in CS to get a good theoretical grounding. When I left college, it was half because I was too poor a student to buckle down and complete my coursework, and half because I'd found a job at a local software company that already paid pretty well.
Compare to Gates, whose wikipedia article states that he started programming at 13 in a prep school and soon formed a "programmers club" with the goal to make money; he "took leave from" Harvard to found Microsoft and never returned.
The other thing it's important to remember about whoever you think of as a 'big name' is that they are by definition extreme outliers. For each Gates, are there 100 people whose company failed, and they either returned to school or left the discipline entirely? Are there 1000? On the other hand, there are also a lot who took a similar road and arrived not at worldwide fame and extreme personal wealth but at contentment in their work and comfort in their lives.
Programming is not the same as computer science. How do you know that any of these people are experts in computer science, as opposed to programming?
More generally, anyone can learn almost anything with some combination of study, practice, and mentoring. Attending school is one way to get an education, but not the only way, or the most efficient way for everyone. School attendance does not equal learning a skill.
https://en.wikipedia.org/wiki/Traf-O-Data
The selling part is what sets him apart from almost everyone. Writing lots of code sets him apart from most programmers.
Gates was able to learn CS by working alongside experts who he hired to work at Microsoft and self study over decades.
It does help having formal education, but you could just as well read some books. A degree is just a certificate that you have done this and at least partially understood the contents.
It’s not that book learnin’, it’s practice and reading and interacting with like-minded individuals. As others have commented, CS != programming or even development. And Zuck and Gates profited more from timing and connections than sheer programming ability. Linus or the Bell Labs folks or the MIT family tree are way more learned in CS (they thought some of it up) and development but ya can’t call them famous.
Second point: Your examples aren't really people who rose on their programming skills, are they? They rose on directing the work of others, not just programmers; they had to be able to speak the language in depth but the actual skills leading to their successes are the political and people skills that cooperative enterprises require.
I also want to say that what I’ve learned at university and what I needed on the job didn’t mach fully (academic needs vs professional needs) and that when I talked to people that are from other universities they had different sets of courses. For example when it comes to algorithms and data structures my classes stressed data structures more than algorithms and it was the other way around for one of my fiends. You need to fill in your specific gaps if you have a degree or not. A university degree teaches you how to fill in those gaps, if you are already an autodidact you can sort of do without.
I started programming computers when I was 10-11 yo. And that was with punch cards on a mainframe. How did I get access to that? Interest, good parents and luck.
Bill Gates was a lot like me in that sense - he'd been involved using a time-share computer system all through high school (just as I was also).
So he (like me) already had his first 10,000 hours of experience long before he got to Harvard (or I got to engineering school). It was already a 2nd nature skill. Ditto for me for electronics - started at the same age. Ditto for chemistry - started at the same age.
So that's how I was the 4.0 curve-breaking in engineering school - I'd already been exposed to all of it just without some of the math and corner-knowledge. I got jobs over summers doing engineering straight out of high school.
That included one summer job on a Naval Test Range operating and fixing radar systems - I'd already learned about similar systems through shortwave and amateur radio combined with my electronics building. I was already reading Skolnik's "Radar Handbook" book (and knew it existed) by sophomore year in high school. Note that I had ZERO romantic life and didn't lose my virginity until university plus I've been married and divorced twice - there's always a price - NOTHING is free.
In the case of Bill Gates, I'm guessing he realized at Harvard "I'm not learning anything here; I already know what I want to do and even how to do it". Because he indeed could. Plus his family had money so he had options most people never have.
That's not the only or even best path but it's a path.
I "did time" in government, military and Fortune 20 corporate with my experience (which was ALWAYS a major career advancing asset) so when I decided to move to entrepreneurship, I'd learned a ton about economics, organization behavior, social interactions in addition to how to do things like project management, finance, etc. on top of multiplying up my technical knowledge and skills. That's another path.
There is no "right path" BTW.
You can NOT become successful just by practicing Cargo Cult behaviors of other successful people (e.g. Elizabeth Holmes cargo-culting on Steve Jobs by wearing the same kind of black turtleneck sweaters apparently for karma). You have to commit to something and enjoy the ride with all gusto. That's the only thing that works (though you never get a guarantee on success either - just table stakes)
However, being conscientious and persistent are probably worth slavishly emulating. Those leverage well.
And, I was almost famous. :)