Re: Top 10 Programming Languages
@pdembry950, as someone old enough who actually wrote Assembler for an IBM mainframe in college, I'm not sure I'd visit that on my worst enemy. How much hardware stuff you need to know certainly varies with what application you are writing, but for most part hardware has been abstracted from the o/s itself. And unless you are writing some embedded system, like a weapons system for B2 bomber, the characteristics of CPUs, disk drives, screen I/O, etc are really irrelevant in learning to program.
The only exception to this is when trying to optimize performance and those systems (like Windows) where o/s does a horrible job of managing memory. If you don't understand memory leaks on Win, you are in big trouble as developer. Thankfully I've always developed on IBM mainframes and midranges where o/s manages that stuff well.
As developer. you do need to understand certain characteristics of hardware. Like disk I/O being slow compared to memory. The latency of networks. How cache is used by o/s. But to actually write code which moves data between registers in a CPU adds very little insight to an ordinary business programmer.
I will admit these new multi threaded cores are changing the game. To write thread safe code, you do need to at least understand what you are dealing with, how that works. But even that has a layer of abstraction, you don't actually code the use of the CPU core unless you are writing the compiler/interpreter for the programming language the end developer is using.