Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

On being a programmer

by merlyn (Sage)
on Dec 28, 2000 at 22:12 UTC ( [id://48651]=note: print w/replies, xml ) Need Help??


in reply to Re: (davorg): Re (tilly) 2: Are debuggers good?
in thread How to debug unknown dynamic code?

Nope. I don't want someone writing a Perl module who is merely experienced at "more actively interfacing" with their computer, which to me just sounds like a "power user".

I want a "programmer". Someone who can imagine what all the variables are doing simultaneously, and can think logical steps, and play out "what ifs". And can write robustly, knowing that people will misinterpret the interface specs. And can write good unit tests, and understand version creep and flag days and why those are bad. And why "objects" is not the cure all.

That's a programmer, and I'm happy that the word scares off some people. Because it should. I don't want someone to "step up" from writing an Excel macro to writing control software for the plane I'm riding in. It's not a simple step. It's not even on the same scale.

Feel free to "more actively interface" with the computer in the privacy of your own cube, but don't make me ever have to run your code or maintain it. Because, by goodness, I'd probably rather throw it away.

Good programming is an art. Parts of it, you can get from learning. Parts of it come from experience. But parts of it seem to be just being wired the right way. And yes, most of the population is not wired the right way. I truly see that over and over again.

-- Randal L. Schwartz, Perl hacker

Replies are listed 'Best First'.
Re: On being a programmer
by coreolyn (Parson) on Dec 28, 2000 at 22:23 UTC

    Well were definately into a matter of perspectives here. I can easily see how you can say,

    And yes, most of the population is not wired the right way

    However, from my humble point of view it seems to me that if indeed they aren't wired the right way there's a problem with the interface not the people.

    To think otherwise simply builds cathedral's. Then again Maybe I spend too much time looking down the road rather than dealing with the present.

    coreolyn

      Then again Maybe I spend too much time looking down the road rather than dealing with the present

      I would say the proper design so that a debugger is not needed is a long term view. I've had to use debuggers on other's peoples code because I had to get something out quick. I then turn around and recommend rewrites in most cases. Of course the long term view of getting it right the first time saves the most time over a long enough period. The first to market push that drives many companies screws this up.

      However, from my humble point of view it seems to me that if indeed they aren't wired the right way there's a problem with the interface not the people.
      Nope. Some people just don't get abstraction or clear sequential logic, or many of the other things necessary to write maintainable, practical code.

      Ever ask someone for directions to a place you're unfamiliar with, and end up totally lost? Probably because that person couldn't give clear directions, ever. Some people just can't do that.

      And some people just can't program. It's not the interface. It's the person.

      There's no moral statement here. It's just an attribute. I can't draw a picture worth beans. Am I less smart because of that? No. I just stick to programming, and hire the people who can draw and can't program. {grin}

      -- Randal L. Schwartz, Perl hacker

        Logic tells me your right... My heart argues otherwise, but I confess my heart hasn't found a way to pay a bill yet. :)

        coreolyn Duct tape devotee and dreamer

Log In?
Username:
Password:

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

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

    No recent polls found