Definitely , i have seen people programming from the very start of their career but do not even know what a clock is or does to a Microprocessor and they are deemed as programmers, As a good friend i always define to them that the starting of Computer Science is with a uC on BreadBoard and Mastering programming it along with knowing its very salient features and physics of working, I think the old guys in MIT were like this only(or many are still like this).
I tend to disagree. Computer science is not programming. And programming is not computer science. You can be a successful programmer if you do not know this kind of stuff. You can also know all of this stuff and be completely clueless of programming. I have seen both. I would agree though that this kind of basic understanding does no harm if you want to become a good programmer.