While this is usually true, sometimes knowledge of the hardware can help discover a performance problem.
Well, yes, but I addressed that in the previous sentence: "while an understanding of the low level details of the platform are useful to produce efficient programs, ..."
Thanks for your participation. I inferred that the best way to understand binary and the hardware stuff is, a little bit practice on some small projects, such as a 4 bit calculator made from transistors, how logic gates are built and how capacitors and transistors store data. As we all know the basics of every computer is transistors. I am kind of practical person. Whenever I want to know something, I like to now its origin and how was it at the very beginning.