You're an idiot.
C is just an abstraction built on abstraction built on abstraction .. As suggested by the responses already posted to your comment, you can drill down as deep as you want. Simply because someone uses OOP doesn't mean they don't understand how computers really work, you pretentious elitist pr|ck.
If somebody needs to write a program that solves some real-world problem, doesn't it result in a better product in the end that time can be spent coding ways to that real-world problem rather than dealing with these lower-level issues of cacheing, memory allocation, etc.? Isn't it better to be abstracted from these issues rather than to have to deal with them in addition to dealing with the problem at hand?
We write code to handle these problems of caching, memory allocation, etc., in order to more efficiently handle the real problems. Yes, oftentimes the program will be more efficient and you get to show off your l33t coding skillz if it was written from scratch in C, but I'll bet that the real-world problems solving and maintainability of a program written in a language abstracting the coder from these low-level issues will result in a better end product.
I will definitely agree that knowing how computers truely work at ALL levels will allow you to be a better programmer. Watching novice developers who have only ever known OOP oftentimes leaves my head shaking. If they knew the bigger picture, they WOULD be better at what they do.
Remember, computers are machines built to serve US. The minute you start coding to their limitations you're missing the point. The point is NOT to demonstrate your ability to manage memory allocation, the point is to use the machine to best serve you.