Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re: The Tao of Perl

by Mago (Parson)
on Dec 21, 2004 at 17:29 UTC ( [id://416556]=note: print w/replies, xml ) Need Help??


in reply to The Tao of Perl



"Trying to be a programmer without understanding how a CPU works is like trying to practice medicine without learning anatomy. Sure, you can have limited success curing patients with medical advice gleaned from Google, but on the whole you're going to be a pretty bad doctor. For those who missed out on learning assembly language, I highly recommend working through this book, even if you'll never program in assembly again. I promise that all kinds of lights will go on in your head and you'll be a vastly better programmer."

Joel Spolsky



Mago
mago@rio.pm.org

Replies are listed 'Best First'.
Re^2: The Tao of Perl
by sauoq (Abbot) on Dec 21, 2004 at 19:19 UTC
    "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.";
    

      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).

      Since the Perl internals are much closer to Perl than the CPU is (it's between the language and the CPU), by extension of your argument, you can't be a programmer without knowing the Perl internals.

      That would dramatically limit the number of Perl programmers out there.

        by extension of your argument, you can't be a programmer without knowing the Perl internals.

        I don't think that is an extension of my argument. In fact, I think that supports it to some degree. Maybe you responded to the wrong node?

        -sauoq
        "My two cents aren't worth a dime.";
        

      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.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://416556]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others scrutinizing the Monastery: (3)
As of 2024-04-24 22:54 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found