Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

On Hubris

by belg4mit (Prior)
on Apr 19, 2002 at 03:01 UTC ( [id://160420]=perlmeditation: print w/replies, xml ) Need Help??

It occured to me the other day that I am a pretty good perl programmer. Or so I think. I then realized that a few months ago I thought the same thing, and yet looking back I can say that I have come a long way (certainly in no small part thanks to the Monastery). And prior to that I also thought I was a good perl programmer. And looking back, well let's just say he didn't use strict. etc. etc.

Is this a common experience? Does the nature of programming and the fast-pace of computer-related fields contribute to this phenomenon? Does it in fact, induce it? Am I (are we) destined to walk this path evermore; ants on mobius? Who is Ru Paul?

--
perl -pe "s/\b;([mnst])/'\1/mg"

Replies are listed 'Best First'.
Re: On Hubris
by pdcawley (Hermit) on Apr 19, 2002 at 05:33 UTC
    I have a theory that the day you stop wanting to learn stuff about your craft is the day that you should accept the fact that you're not a good programmer, merely an accomplished dilettante.

    Actually, the theory extends to 'The day you stop wanting to learn stuff is the day you should accept that you have failed as a human being'.

    It doesn't hurt to think you're good. What hurts is thinking you don't have to try to be better.

Re: On Hubris
by cjf (Parson) on Apr 19, 2002 at 05:49 UTC

    I don't agree with a lot of Larry Wall's opinions, but during one interview, in response to a question about Perl certification, he once said:

    My approach to language design has always been that people should learn just enough of the languages to get their jobs done.

    I couldn't agree more with this. I don't know 85 ways to use unpack and haven't memorized perlvar simply because I don't need to know them that well to get my jobs done. This of course may change over time as I pick them up while doing other things, like reviewing someone else's code but as it stands now, there are other things I want to learn more.

    Does the nature of programming and the fast-pace of computer-related fields contribute to this phenomenon? Does it in fact, induce it?

    Well I don't think you'll ever run out of things to learn in this field. It obviously changes rapidly and in order to remain employable you need to constantly acquire new skills and improve existing ones. If at the end of every year you look back and say "wow, I can't believe how dumb I was" you're on the right track :).

      Hm, and how do you know if you need this or, say, that particular thing to complete your task or not?

      I usually see a lot of really bad PHP code which as a rule accomplishes a task to some degree. The thing that strikes me is this: how the hell hard it could be when you just don't know what a regexp is? (And the majority of PHP coders are unlikely to know.) Nobody here will argue that regexps are, mildly saying, useful, but, as the experience shows, optional.

      I know people out there writing translators from scratch because they don't know what flex and yacc are and I even know people using perl4 features as described in their aged book! Examples are numerous and the conclusion is that you should probably study hard the things you really need, but please please at least explore as many things as you can just not to miss an opportunity.

        Hm, and how do you know if you need this or, say, that particular thing to complete your task or not?

        This does require you have a basic understanding of the language you're dealing with. Using Perl as an example, one should have at least read through Programming Perl or something similar to get a feel for the language and the tools it provides. Staying current on advancements is also important and is what makes The Monastery such a great place :).

        but please please at least explore as many things as you can just not to miss an opportunity.

        I agree. Don't waste your time learning certain features in excessive detail when you could be gaining a greater understanding of programming in general, or learning how other languages compare to your current favorite.

        You mean I don't have to spend three days punching tape for my Turing machine? Wow, thanks.

        Hm, and how do you know if you need this or, say, that particular thing to complete your task or not?
        Because, perhaps, he's already completed the task. TIMTOWDI, HTH HAND.
      I would paraphrase Larry:

      My approach to programming is that I should learn just
      what exists and where to find it, be it documention, tools
      or code. As a result, when the need arises, I will be able to
      acquire the needed competence.
      
      
      This is not strictly true so. I think that if you choose perl, you need to know about regexps and many idioms involving hash, for example.

      About certification, I think the field is so large and so unstalbe that certification cannot cover it. It would lead to uniformity which is decidely not perlish. Choosing your tools is very much one of the most important step. So imposing them on the programmer is a sure way toward ossification.

      -- stefp -- check out TeXmacs wiki

Re: On Hubris
by Dog and Pony (Priest) on Apr 19, 2002 at 07:21 UTC
    It is a very common experince, I'd say. Sometimes, the stuff I do just seems to go so well, I know exactly how to deal with this and that etc, and I think "D*mn I'm good". It is quite a good feeling actually.

    I had the same feeling when I was cooking food for a living too, sometimes. But I did very well know that I was no star chef, or even worthy of peel the potatoes for one. I just felt I was doing great with what I was supposed to do right here and now, and everyone was happy.

    It is the same with computers, I *do* know that I know very little of what there is to know, still I sometimes feel like a great programmer. It is one of the rewards. :) You have the right to remain delusional for the next five minutes.

    When you are very new at something though, you can easily imagine yourself being the programmer (or star chef for that matter) in just a few months, because you are almost there, being that good. Haha. Then reality pops up and tells you how things work, and after a few such experiences, you are accustomed to reality.

    Also, when you are new, you learn stuff much faster, because you learn so much. Everything is new, you learn a hundred things a day. Now you learn two new things a day. Of course you get hubris when you learn so much so fast. :)

    And never forget, that certain kinds of hubris is considered a virtue among our ranks. And this is one of the good kinds (unless it turns to boasting or a personal cult of course) - it allows you to think you are good enough to do something, or get that job, or whatever... and probably succeed. Within reason.

    <joke type="punchline" execution="poor"> Wow... I am a great poster! </joke>


    You have moved into a dark place.
    It is pitch black. You are likely to be eaten by a grue.
      I agree. The more you learn, the more you realize just how much there is left to learn. In my experience, really good programmers tend to be pretty humble when asked about their level of skill, because they know that there's myriads of they don't know.

      People around me say that I'm a pretty good programmer. I don't. I just know that I have a long way ahead of me and I'm terrified that they will find that out :)

      Cheers,
      --Moodster

        I know well what you're saying here. Recently I had a performance review with my line-manager, it was all going very well, and suddenly he started on about how I was an 'expert' Perl programmer.

        I stopped for a minute, recalling London.pm meetings and the people I'd met there, many of who I do consider to be far better Perl programmers than I am.

        I told him I didn't agree, I said I'm not there yet but I'm working towards it. He looked slightly confused, probably not used to people disagreeing with good things in reviews, and told me to compare myself with the other Perl programmers in the department. I could suddenly see his point.

        Now I have the advantage of both having people who know far more to learn from, and people who know far less to teach to. It inspires a wonderful combination of hubris and humility. I'd recommend it, you run to try and catch up with the pace-setters ahead, but make sure you're trying to set pace for those behind.

Re: On Hubris
by Elian (Parson) on Apr 19, 2002 at 06:02 UTC
    Not only is this common (though certainly not restricted to programming--it happens to people in many fields) just wait until the next phase. As you progress, not only will your set of skills grow, but your awareness of the skills you don't have will grow too, and likely faster.

    After a while you'll find that education is as much a dawning realization of the vast number of things you don't know as it is a growth in the number of things you do know.

    It can be pretty daunting at times. Ignorance can be bliss. (So can narcissim, but I don't recommend it either :)

Re: On Hubris
by Juerd (Abbot) on Apr 19, 2002 at 09:08 UTC

    According to some theory that I can't recollect entirely, and for that reason I have absolutely no clue about who should get credit for it, "good" does not exist, and one can only speak about "better". And even that is purely subjective.

    However, I do like to think that I'm good. Not because I really am, but because the thought of having reached an absolute and unreachable point in the knowledge hierarchy pleases me. No, I'm not good at all, I'm just a bit better than those who have just started, which makes sense because they have yet to build up experience.

    Because there is no good, there will always be better. Although I have come from not using strict, lexicals, modules or even warnings, I now love strict, lexicals, modules and warnings. My recent code is often object oriented instead of the "line noise with a function" I used to write. I didn't know I was going to learn to like these things, and I didn't know I would ever see the OO-light. What is to come is unknown, but we learn all the time.

    As long as only perl can parse Perl, humans will never be able to comprehend all of its secrets and actually remember them all. That is not necessarily a bad thing.

    - Yes, I reinvent wheels.
    - Spam: Visit eurotraQ.
    

Re: On Hubris
by snapdragon (Monk) on Apr 19, 2002 at 09:14 UTC
    I totally agree with moodster here. All the people I've met who I've regarded at being are the best at they do (be that programming, sysadmin work, dba etc.) are all really humble and quite ready to admit there is loads they don't know. In fact I'm always a little bit dubious about people who are arrogant about their prowess - surely nobody is that good?

    On that note I constantly amazed about the amount of stuff out there to learn that would be applicable to my work. This morning for example I'm having to read RFC 2257 (which deals with Mail Agents Extensibility) because I want to make sure my MIME::Lite app will work. But this means there are at least another 2256 RFC's dealing with all manner of things that would probably benefit me to know. How terrifing is that? Then there are the myriad of perldocs, unix administration docs, Linux kernal books to read..... gulp

    I'm be hiding under my desk from now on, whimpering...

Re: On Hubris
by FoxtrotUniform (Prior) on Apr 19, 2002 at 16:06 UTC

    This ended up being a bit longer and with a bit more, well, hubris than I first intended. You was warned.

      It occured to me the other day that I am a pretty good perl programmer. Or so I think. I then realized that a few months ago I thought the same thing, and yet looking back I can say that I have come a long way (certainly in no small part thanks to the Monastery). And prior to that I also thought I was a good perl programmer. And looking back, well let's just say he didn't use strict. etc. etc.

    Happens to me all the time. Usually, I'll go back to some of the code I wrote a year ago, when I started this job, fix whatever bug or add whatever feature brought me there, and spend a few minutes looking over the code and thinking "Ugh! I wrote this crap?" Of course, when I wrote it I thought I was pretty damn good at this kind of thing.

    When I started this job, I was afflicted with one of the most irritating flavours of hubris: Undergraduate Programmer Syndrome. I'd eaten all of the toy problems my profs had slung my way like they were popcorn. I'd normalized databases, tuned neural networks, simulated memory caches and proven algorithms to be NP-Complete.

    To make a long story short, I was something of a dickhead.

    After three or four months, my attitude changed. I was submitting code for peer review and brainstorming with my colleagues before sitting down to tackle a problem. I realized that most of my co-workers have about a billion times more experience than I do, and I'm trying to learn from them the easy way, not the hard way. I'm not (as) shy with the stupid questions, provided I've RTFM first. I've inhaled every perspective on good programming that I can find, from Code Complete to The Pragmatic Programmer to XP and beyond. I've gratefully listened to the senior programmer rant about test suites, the CEO rant about unnecessary complexity, my supervisor rant about revision-control systems, and the sysadmin rant about indentation style. I've come to the Monastery, and absorbed chromatic's test-suite fanaticism, tilly's blend of theory and practice, merlyn's great, elegant magic, and scores of other influential views and practices that I'll never be able to properly enumerate. I'm a better programmer than I've ever been.

    And I still have a lot to learn.

    --
    :wq

Re: On Hubris
by Ryszard (Priest) on Apr 19, 2002 at 09:55 UTC
    There is a theory I learnt in computer science a few years back.

    It goes something like your confidence level in a particualar area reaches a peak the more you know about it, then falls the more you know, then rises again, kinda like a sideways, back-to-front "S"

    Particularly in perl this has been the case for me. I think I'm pretty good, learn some more, look back, and go "geeze that was crap."

      There is a theory I learnt in computer science a few years back. ...

      You're probably referring to a general model of learning put forth by Psychologist Virginia Satir. This model describes how we're on a learning plateau, then go through a period of chaos before climbing to a new, higher plateau.

      Here is a short description of the Satir model, with a nifty picture.

Re: On Hubris
by Ovid (Cardinal) on Apr 19, 2002 at 16:00 UTC

    Better late than never :)

    I'm definitely in the same boat. Nothing has had such an impact on my overall capabilities as a programmer as Perlmonks has. Sometimes the impact has been indirect. I hear people talk about Code Complete or the Pragmatic Programmer and I run out and buy them. Wow! What an eye-opener. Even now, I look back at code that I wrote only a few months ago and wish I could just sweep it under the rug.

    I know, however, that if I ever stop trying to learn more, I should just give up being a programmer. I've met people like that and they just show up to collect a paycheck (interestingly, I usually saw that in the mainframe programmers, but maybe that's just me). Of course, if I get ridiculously wealthy from being a programmer, maybe I'll still give up being a programmer...

    Cheers,
    Ovid

    Join the Perlmonks Setiathome Group or just click on the the link and check out our stats.

Re: On Hubris
by Anonymous Monk on Apr 19, 2002 at 16:50 UTC
    "The lyf so short, the craft so long to lerne" -Geoffrey Chaucer
Re: On Hubris
by Sifmole (Chaplain) on Apr 19, 2002 at 12:45 UTC
    "The most depressing day is the day you realize that you are the best you will ever be."
    --- ???
Re: On Hubris
by belg4mit (Prior) on Apr 19, 2002 at 19:43 UTC
    Okay several things in no particular order. Thanks for all the responses. I am not exactly sure how to reply. I'll try to get to some of them.

    While it doesn't seem like I need to clarify much there were some things I forgot to add that will go here. One was an analogy between this and the adage of the 25 year-old who is on top of things. When he hits 35 he realizes how wrong he was. etc. etc. "If I knew then what I knew now...". And then if that was applicable, the whole computer-thing accelerating that into the observed pattern.

    These occurred to me earlier, not quite as great as japh. But kinda neat:
    PGP: Pretty Good Programmer
    OR
    PGP2: Pretty Good Perl Programmer.

    --
    perl -pe "s/\b;([mnst])/'\1/mg"

Re: On Hubris
by graff (Chancellor) on Apr 24, 2002 at 06:19 UTC
    I think belg4mit may be confusing "hubris" with "self esteem", which is not just a common experience of programmers, but an essential, self-reinforcing trait of the human race (folks who lack it tend not to reproduce -- those who lack it in the extreme can be suicidal).

    The difference between self-esteem and hubris is that self-esteem is directed inward, and is good because it serves to amplify the recipient's ability to do good work, whereas hubris is directed outward, and is bad because it tends to dampen or interfere with the recipient's ability to do good work.

      I think this is rather presumptuous. Hubris is defined as arrogance. It is pretty rare to confuse the two. Even though the the 2nd definition of self-esteem is self-conceit, with a defintion close to that of hubris, in my experience it never the intended meaning. I think a major "difference" which would have made this distinction quite clear is that hubris is usually directed at a single facet of one's abilities, and I did speak quite clearly of programming. Self-esteem is a more general quality.

      --
      perl -pew "s/\b;([mnst])/'$1/g"

Re: On Hubris
by marlowe (Beadle) on Apr 23, 2002 at 16:39 UTC
    It occured to me the other day that I am a pretty good perl programmer. Or so I think. I then realized that a few months ago I thought the same thing, and yet looking back I can say that I have come a long way (certainly in no small part thanks to the Monastery).

    I can certainly relate to the above statement. There are numerous instances when I thought to myself I am a pretty good programmer. For those instances of time, I was. To paraphrase Larry, I learned all I needed to accomplish my goals. When my goals changed, boss asking for yet another miracle or simply the desire to learn something new, I am forced to learn more.

    Am I (are we) destined to walk this path evermore; ants on mobius?

    We can leave the path anytime we desire, simply by refusing to learn more. Those who have left the path always believe they are good programmers regardless of what time and experience shows. Those of us who have hunger for more knowledge will always walk the path. I for one hope I never stray from the path.

    marlowe...Another programmer amazed on how far he has come since not using strict
A reply falls below the community's threshold of quality. You may see it by logging in.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlmeditation [id://160420]
Approved by jlongino
Front-paged by boo_radley
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others chilling in the Monastery: (5)
As of 2024-03-19 02:09 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found