"Trying to be a programmer without understanding how a CPU works is like trying to practice medicine without learning anatomy.
While at some level that's still true, it's certainly less true these days than it once was. That's at least partially—and maybe mostly—due to the ubiquity of high level languages. Since this is Perl Monks, it seems relevant to point out that your Perl code will run unaltered on all manner of CPU architectures.
The other side to the coin is that trying to be a programmer without an understanding of how various (mostly) theoretical machines work is like trying to practice medicine without ever learning anything about biology. You don't see many real live Turing machines around, but an understanding of them will do a lot more for you programming than an understanding of "Hyper-Threading Technology" will.
-sauoq
"My two cents aren't worth a dime.";
| [reply] |
I'm not so sure of that. It's important to learn how a real computer works -- not down to the level of the copper on the board, but the basics of what a pointer is, for example. While turning machines and real computers are largely equivlent after an isomorphisism, it's a fairly harsh isomorphisism. Understanding a turing machine won't allow you to grok pointers, because turing machines don't have pointers, or, indeed, RAM -- Random Access Memory. Memory on a turing machine is purely serial, and infinite in extent.
On the other hand, the differences between the arch of an x86 box vs a PPC box are at a level of detail to be irrlevant to most perl programmers.
Knowing how a water pump works, even though a water pump is isomorphic to a heart, isn't all that useful for a heart surgon. OTOH, knowing how a rat's heart works would be very useful even though there are differences between a rat's heart and a human heart.
Warning: Unless otherwise stated, code is untested. Do not use without understanding. Code is posted in the hopes it is useful, but without warranty. All copyrights are relinquished into the public domain unless otherwise stated. I am not an angel. I am capable of error, and err on a fairly regular basis. If I made a mistake, please let me know (such as by replying to this node).
| [reply] |
| [reply] |
| [reply] |
I disagree. But you should an read an article of Spolsky's that makes a similar point (I can't find the one with the original quote), he says it much better than I could in a short post: Back to Basics
Makeshifts last the longest.
| [reply] |