Why do software programmers need to know the basics of computer hardware architecture?
Public Comments
- Hmm, I was never asked this before. If you were a software developer you would understand it but for me it's kind of hard to explain, I'll try to do my best. When coding, you're always writing little snippets here and there that call upon processes that use different parts of your computer. For example, you use the mouse to click, the keyboard to type. The hard drive to read/store data, the video card to process simple shapes and graphics, the video card memory to store the shapes and graphics for easy access. The network adapter to send packets, the list goes on endlessly. Well, the API that's included with the default libraries makes it easy so I guess you really don't need to be that in depth as a beginner, but a good programmer knows the ins and outs of a computer system. This way we know exactly what we are calling on and what it's capable of because we know what the hardware is limited to.
- Hah, NYP student right? This question appeared in Practical 3, DES module, so... I'm snooping around for answers as well, but here's what I'll say. The reason why we need to understand hardware basics is partially because, as software programmers, we will eventually need to understand the powers and limitations of the hardware we are working on in order to employ its powers to the fullest we can push it to, without demanding more than the hardware can actually handle. If this is not clear enough, consider the SNES. Sure, it's really powerful in its time, but is it suitable for use in a general-purpose PC back then, for running Windows 95? This ridiculous example (well, isn't it?) might help take some things in perspective. Also, can we use the processor in PS2 to run PS3 games? The likely answer is no, simply because the hardware limitations on the PS2 alone is enough to lag PS3 games to hell (never mind that it can't even run PS3 games in the first place!).
Powered by Yahoo! Answers