I find myself growing increasingly restless in my place of work. I am constantly discouraged by the fact that I have become the resident guru in Perl and Unix in our department despite the fact that everyone there has been programming Perl (and other languages) for years.

Yes, guru status is a nice little ego boost, but I feel a growing need to work among people who will challenge me. People who would review my code and offer helpful suggestions, rather than just saying, "Oooo, how did you do that?" or "Why are you working so fast?" (some of them actually say that). I want to work on larger-scale multi-developer projects where there is a give-and-take among the developers. Basically, I want to keep learning.

Since I first picked up the Camel book a year ago and started to learn about programming, I have had an ever-increasing appetite to learn about Perl. I find OO design to be a natural way of thinking and enjoy writing OO Perl. I am in the process of taking over the maintenance of a module on CPAN based on some interesting OO concepts. I am constantly reading (recent books: Perl for Sys Admin, OO Perl, The Design of Everyday Things, Think Unix) and I can't get enough. I say all of these things because these are the things that excite me. I just don't feel like there is anyone around here that can share that excitement.

Any advice or insight that you may have would be much appreciated. Is what I'm feeling common? Should I just be thankful that I'm employed? Is this just a case of excessive hubris? Have you ever felt this way?

Thanks for listening

Replies are listed 'Best First'.
Re: Advice for a Restless JAPH
by little (Curate) on Jan 17, 2002 at 14:43 UTC
    Well, as long as getting another and more challenging job is not a recommendable option in general I'd like to suggest a few very simple things.
    • register at perlmonks.org hey, it's free and makes directing criticism at you much easier :-) And when looking through the reputations and answers to your posts you get a quite good picture of the picture others have of your skills. Here is the funny part: How long do you need to make it to a "saint" without XP-whoring? grin
    • post your code snippets and ideas you'll be surprised how a lot of these "oh, how did you do that?" will turn in "why the heck are you doing it in this way ?... 1 - its insecure 2 - this would be faster 3 - this ... 4 - that
    • join a perlmongers group and besides having companions of equal skills you don't have to get drunk alone grin
    • play it like a game, for example register with afree or nonfree certification service and try to solve the Perl and Unix related courses with the highest ranking possible.I do still not know how some made it to pass the brainbench cert with 5.0 and sorroughly brainbench is not as free as it once was
    • join perl conferences benear you or all over the world
    It's so easy (to say) :-)
    Ok, to put it in another way: If you're on top of the mountain just look for the next higher one.
    If you can't see a higher mountain, then leave the top and try to reach it again whilstt walking at your hands. Only recommended if you are really bored

    Have a nice day
    All decision is left to your taste
        * register at perlmonks.org
        I was kinda guessing this may be someone we all know and love whose login is known to others at his job.  (I don't have anyone in particular in mind, just that this is the sort of posting that anonimity is for.)

        p
        bingo!
        :-)
Re: Advice for a Restless JAPH
by mirod (Canon) on Jan 17, 2002 at 19:12 UTC

    Why not start participating in an Open-Source project? The easiest (at least it worked for me ;--) is probably to start writing or maintaining modules:

    • first check that your company (and your boss!) are OK with releasing some of your work as Open-Source,
    • then I am sure that if you use existing modules you can think of ways to improve them, either by adding features or by generally improving the code or the docs, contact the author and see if you can send her patches, or create a new module based on the initial one
    • you might also have written modules for your own use, see if they can be made more general and used by others, check carefully if anything similar exists on CPAN, and if not then package the module properly, test it thououghly (on different platforms and with different versions of Perl), get a PAUSE id, and start uploading!

    Then you will start getting emails of people using your software for all sorts of weird things, and believe me, they will give plenty of challenges to solve, plus lots of ideas to improve your module!

    There are also plenty of other projects that could use a good Perl programer, just look at the OS Software you use nd contct the maintainers

    Again: if you want to release a new module, please check that it does not exist already. Subscribe to the module-author mailing list (module-authors-help@perl.org should give you info on how to subscribe) and discuss it there.

Re: Advice for a Restless JAPH
by hakkr (Chaplain) on Jan 17, 2002 at 18:33 UTC

    Some do it for love some for money.
    I'd blame it on the easy target of management. My managers don't understand what I do so can't determine how well I'm doing it. They do not give any recognition for quality or skill just time served and conformity.

    If they had you working in teams possibly extreme programming everyone would learn from you and possibly attain your level of zen. It sounds like you want to share your wisdom and as the man above says perlmonks is a fine place to do it. But your guru status should also be officially recognised through promotion. Training and assesment of your peers would't go amiss either.

    The problem with Perl your collegues are having is it's so easy to find a way to do something but very hard to find the best way without a little motivation. If however you have truely mastered Perl to a Larry standard and love OO why don't you move on to something 'harder' like C++ or Java :)

Re: Advice for a Restless JAPH
by perrin (Chancellor) on Jan 17, 2002 at 21:57 UTC
    What you're feeling is very common. The perceived level of skill of one's co-workers is highly correlated to job satisfaction for programmers. It's hard to find a good place, but they exist. If you don't think your co-workers are likely to change, find another job. If you're good, and live in an area with lots of IT, it won't be hard.
      I feel like I'm good, but as I mentiond in my original post, I started programming just over a year ago. I still have so much to learn. That's why already being perceived as the department Perl/Unix guru freaks me out. I've learned quickly but that's not exactly easy to communicate on one's resume. I live in a major metro city so that's helpful...

      Thanks for the advice.

Re: Advice for a Restless JAPH
by CubicSpline (Friar) on Jan 18, 2002 at 01:03 UTC
    I think given the response of the various monks who have already posted, you're describing a feeling that is common among programmers, especially ones in an environment where technical skill is not necessarily understood.

    I don't have much to add to the ideas already expressed, but I do have one piece of advice that may or may not be to your liking:

    If the people you are working with aren't getting much out of your coding ability, and that is bothering you, trying taking your coding ability to them. These people have jobs that they do, work that they are responsible for. Can you take your skills and apply them in such a way that you are solving a problem for those around you? Believe me, it's hard to get anyone to appreciate you for doing your job, primarily because it's not important to them. But if you manage to show them a way to make their job easier, or show them something that registers as particularly useful or insightful to them then watch the praise roll in.

    ~CubicSpline
    "No one tosses a Dwarf!

Re: Advice for a Restless JAPH
by trs80 (Priest) on Jan 17, 2002 at 23:02 UTC
    I am not sure if we were given enough informaiton about
    your present status. That is income, size of current
    company, your goals, your background etc., but I think
    it is best if you first become happy with what you have
    before seeking something else. It sounds like you are liked
    and to some extent respected in your position, you will
    most likely lose that in a more challenging/different
    environment, remember when you weren't the guru?

    For me personally I finally realized that challenging myself
    became a hinderous rather then a boost. I would challenge
    myself based on others standards or requirements rather
    then my own.

    And remember, just as TMTOWTDI, there is also TOWHDI
    The One Who Has Done It, that is taken action and solved
    the problem. We all strive for perfect code and as you
    improve your skills you will undoubted go back and
    improve on your past code.

    Good luck in the eternal question -
    Should I stay or should I go now?
    - The Clash -
      Isn't anonymity wonderful? Here's the "more info" you wanted:

      income: 55k
      company size: 1000+ (non-tech)
      goals: to become an uber-coder
      background: social sciences, entirely self-taught with regards to technical skills

      remember when you weren't the guru?
      Yes, I remember this time well, it was only 9 months ago. I was at an Internet startup and surrounded by programmers everyday who knew a TON more than me. It was intimidating, and sometimes overwhelming, but at the same time I've never learned so much. I look back on it nostagically. I want to be in that situation again.
      I would challenge myself based on others standards or requirements rather then my own.
      There's no one on earth who could possibly challenge me more than I challenge myself. Trust me on this...way too much hubris bouncing around in my head. :)

      Thanks

        Thanks for the reply.

        I possess both the laziness and impatience, but on the hubris
        requirement I fall short. I found this quote on dictionary.com

        "There is no safety in unlimited technological hubris"
        - McGeorge Bundy
Re (tilly) 1: Advice for a Restless JAPH
by tilly (Archbishop) on Jan 18, 2002 at 17:55 UTC
    If you want to feel challenged, try to teach what you think you know to someone who doesn't know it. :-)

    Seriously when you try to teach someone you will find very quickly where the gaps are in your own understanding. You will need to go over what you think is true and revise it. And, as a bonus, you will have another person around who can serve as a "sanity check" and who you can work with on projects.

    To find your victi^Wtarge^Wstudent I would suggest trying to discuss some of the more philosophical questions with fellow programmers. That is some of the why's and wherefore's. For instance what were the underlying issues that made a particular past incident more likely, and what could be done about it in the future? Find someone whose eyes don't glaze over, and you have a likely candidate.

    Of course the same thing can be done online. But I think it works a lot better in person.