There are lots of folks on the Internet, especially young people, who are under the impression that the best coders all write their code in really low-level machine specific C or, if they're really good, assembly. This isn't really true. People who think this are often trapped in the 1980's.
Computer science and programming are very new fields. Because of this, they advance very rapidly. In the 1980's, it was reasonable to avoid using high level languages because compilers were simply not advanced enough to produce fast enough code. This isn't true anymore today. We have some really great optimizing compilers. Check out The Great Computer Language Shootout or The Great Win32 Computer Language Shootout for some benchmarks run a while back on free programming language compilers and interpreters. g++, gcc's C++ compiler, is soundly beaten in execution speed of programs by compilers for two programming languages that don't even feature "memory" in the view of the world they give programmers.
"OK," you may say, "but low level programming is still way more challenging and fun than anything else!" I don't think that's true, either. Someone who says this has probably never written any terribly complex programs. The challenges that take up your time in coding in assembly or low-level C are really rather mundane. They test your patience and ability to pour through obscure manuals moreso than any real problem solving ability.
Computer scientists spend a lot of time coming up with algorithms (step-by-step methods) for solving problems that are so complicated that the obvious solutions just won't run quickly enough. Problems like these depend on real ingenuity. Even if you could gain small speed-ups through using assembly language (which isn't likely, since your favorite optimizing compiler probably writes fast assembly language better than you do), that wouldn't be enough.
There are also issues of making separate pieces of software work together. This is not at all trivial, and low-level coding makes it very difficult. High level languages often feature many well-thought-out tools to help you do this. Some of the greatest challenges in software development come in designing software such that many people can work together in its creation, and so that people in the future can understand and maintain it easily.
