This question is frequently asked nowadays as evidences show that many people dropped the college and they are now famous such as Mark Zuckerberg and Bill Gates.
For me, I always believe in Mathematics which says that 1+1=2 and it never going to be 0 or 3; and every rule has exception or abnormal state. Mark and Bill are the exception case not the default case. There are lots of factors in the equation that brought to us people like them. Imagine if Bill failed to build Microsoft, what would he do then? Imagine if Mark failed to market Facebook, what would he be?...etc. The intelligence only is not enough to make you a success person. You need many many things such as luck, circle around you, initial budget, on time right decisions, vision, suitable environment, conscious people and well study to the market need.
I called both for interview. I asked both the same questions such as:
1- Describe how garbage collection works in Java? 2- Does Java use pointer? If yes, how does it work? 3- What are the 3 sections of RAM? How your application variables get allocated? 4- You use tools to check the memory utilization, explain it? 5- How debugger works?
You can imagine the answers of both. Some people says such questions do not matter as such knowledge are not important to build applications. I disagree. Knowing such science and knowledge gives you the ability to build very strong application that can adapt and live for long time. It also let you use the development tools in the best way. It reduces the number of bugs and prohibits repeating of such bugs. It gives you the power of building enterprise critical applications such as Telecom where millions of users are in charge of your system.
Science is important whatever happened. To be good software engineer, you need to study the science of the development tool and technologies you use.