http://qs321.pair.com?node_id=197361

Fellow Monks:

Here's my problem...
It seems like whenever I start a new Perl programming project, I am very exited about it at first. Then, after two or three days of intense coding, I get tired of working on that same project. In my heart of hearts, I really want to get the project done, but I am so burnt out on it that I just put it away.

After a few weeks or so, I'll get that program out again and work hard on it for a few days and get tired of it again.

If I'm writing a program for someone else, I have that motivation to get it done because they're waiting for it. But, when I try to work on my own projects I never get much done.

Do any of the other monks have this problem? What have you found that helps you to stick with the task at hand and just get it done?

I'd appreciate any advice anyone has for me.
Joshua

Replies are listed 'Best First'.
Re: I need some motivation
by Anonymous Monk on Sep 12, 2002 at 23:20 UTC
    When motivation can not last, seek only small projects. Make one into many if you must.

    The satisfaction from one may help you with the next. If not, there is a good place to start next time.

    Effort without progress surely demoralizes.

      Very monkishly put. Almost haiku sounding, the way the rhythm works. ++ to you.

      kelan


      Yak it up withFullscreen ChatBox

Re: I need some motivation
by Elgon (Curate) on Sep 12, 2002 at 21:55 UTC

    Hi Joshua,

    I suffer greatly from this problem, although at the moment I shouldn't really, given that I'm unemployed with nothing to do and going out of mind mind from boredom. (On the plus side, I've recently caught up with my reading and got through The Castle, If This is a Man, The Truce and The Great Gatsby.)

    Sometimes I find that my motivation just goes away - look at my Texas Hold'ems program for example: I've still not got around to rewriting it in a sensible fashion. On occasion, I certainly find it best to just go with my instinct and leave the code alone otherwise I find my attention wandering and I either make boneheaded mistakes or get nothing done. The worst thing I have done is spot an elegant and hence highly correct way of doing something but not done it because it would take too long in the short term. Take a break occasionally.

    I reckon that the best way to remotivate yourself is not to code yourself to death: If you're finding it tough, take a break. If your attention is waning, read a book for half an hour or go make yourself a coffee. Remind yourself that coding is not only like mental jogging (sweaty, tiring and dull), it can also be like mental pillowfighting (messy, great fun and exhilarating.)

    Update: Link fixed. D'oh.

    "Rule #17 of Travel: Never try and score dope off Hassidic Jews while under the impression that they are Rastafarians."
           - Pete McCarthy, McCarthy's Bar

Re: I need some motivation
by tjh (Curate) on Sep 12, 2002 at 21:45 UTC
    Most often, for me anyway, it boils down to "just keep going anyway" and fairly soon, through the problem solving, testing, etc., the 'mood' issue seems to disappear. I've always taken this to mean that my own self-discipline has to overcome my inner-sloth... :)

    I've yet to find a motivation outside of myself that was more effective (for my own projects). And, learning the skill of overcoming 'myself' has been important to me in a wide variety of ways.

(become an xp whore) Re: I need some motivation
by PodMaster (Abbot) on Sep 13, 2002 at 07:23 UTC
    How many of these personal projects do you share?

    I find it that when lacking motivation at times, thinking about the incredible abount of XP and feedback that can be gained from publishing something on perlmonks is motivation enough. I mean, what XP whore wouldn't enjoy that satisfaction? ;D

    The other thing to do is tell people about all the cool $h*t you're doing, and thus getting them interested. There is nothing like getting a "userbase" before you even finish the product. After I got at least an alpha version, I may relax a little bit (like you do), and revisit the project some time later, but at least I got a working prototype. Now others can help me improve it, tell me how much they like/use it, and ++ my a*$.

    And think about it, any free software you develop, is an endorsment for yourself. The more and more other people use/appreciate it, the better. Any time you need a reference, you can point to something you developed, and say: "Hey, all these people like this software i've made, so that's gotta mean something, right?".

    And most importantly of all, publishing your open source software, allows others to review your code, so it doesn't $$bite$$ you down the line when it really counts.

    How cool would you think merlyn was if he didn't share so much?

    Like WyClef says:

    I got fifty Bentley's in the West Indies
    (It doesn't matter)
    ...
    Cause if you ain't sharing, people ain't caring
    Come up in the hood and take everything you're wearing
    people ~ that's you man

    ____________________________________________________
    ** The Third rule of perl club is a statement of fact: pod is sexy.

      XPwhoring your projects is a plan. After all, there's always the possibility that someone will come and pick it up for you... (unlikely, but...)
      I have the very same problem. Thing is though, my perl hacking is sort of a work avoidance tactic, so I know I'll be back when I next get something I don't want to do ;p
      --
      It's not pessimism if there is a worse option, it's not paranoia when they are and it's not cynicism when you're right.
Re: I need some motivation
by mjeaton (Hermit) on Sep 12, 2002 at 23:43 UTC
    The same happens with me. There are projects I started as far back as 1997 that I still pick up and work on. I've finally gotten around to pushing forward with one of them. Instead of going it alone this time, I've asked a few good friends if they would be willing to help out -- review my designs, review my code, write some code if they want.

    Out of the 6 or 7 people I asked, there are two that have jumped right in with me. It's been nice and I really think the project has a chance of moving to completion this time.

    In the end though, the key is to not over do it. Take your time, work on it a little here and there. Don't let it consume you.

    If I start to get frustrated with a given project, I'll step back and write a little one-off program just so I can say I accomplished something.

    mike
Re: I need some motivation
by Chady (Priest) on Sep 13, 2002 at 12:04 UTC

    I think everyone runs into that every now and then, and I think that the best solution (for me at least) is to split the project into smaller tasks:

    I am very exited about it at first: this is about the time where you can lay out the plan of the project at hand, see how you will be developing it and trim it down to very small tasks (i.e. have a user/group application much like the monastery trimmed to it's basic components: nodes/users/groups/privileges . and start by developing an engine that does only that.)

    when you're tired, I will safely assume that you would have laid out a basic framework. then, each time you get motivated to work again, just work on the next "small task" in the queue and focus only at the task at hand, not worrying about the whole lotta work ahead; (i.e. group->Editors can edit nodes.)

    my examples are stupid I know, but I think this can generalize to just about anything. The only difficult part is seeing ahead the structure that will keep things tied together as you develop more and more on the project.


    He who asks will be a fool for five minutes, but he who doesn't ask will remain a fool for life.

    Chady | http://chady.net/
Re: I need some motivation
by jepri (Parson) on Sep 13, 2002 at 03:10 UTC
    I used to suffer from this massively, but recently it's got a little better. Two things that helped a lot were to learn to take a break form the code before I got bored with it (getting a real job helped with that), and the other was to work on projects where I see and be encouraged by the effects of my coding - graphics, or projects with very clearly defined goals.

    ____________________
    Jeremy
    I didn't believe in evil until I dated it.

Re: I need some motivation
by lachoy (Parson) on Sep 13, 2002 at 04:39 UTC

    I'd have to agree with tjh: Just Do It. It can be deeply rewarding to stick with a module over a period of time and work at adding features, commit a number of refactorings that come more easily with time because you're so familiar with the code, and be surprised when a sneaky way of doing things that never occurred to you when you originally wrote the module pops into your head when you're taking a shower thinking of something entirely different. (Whew!)

    After you've invested some time, don't be afraid to set it aside for a while and work on something else. I'm always surprised by the new perspectives I gain by doing this.

    Chris
    M-x auto-bs-mode

Re: I need some motivation
by seattlejohn (Deacon) on Sep 13, 2002 at 18:16 UTC
    You hint at one thing that can be a really good motivator: Having somebody who expects to see results. That's easy when you have customers or coworkers, not so easy on personal projects. But perhaps you have friends or acquaintances (PerlMonks?) who would be interested in what you are doing. If you tell an interested party "I'm going to implement feature Foo this week", I suspect you'll find yourself much more motivated to keep your commitment than you would without the external pressure.

    One other thing I find useful when I'm feeling burnt out on coding is to work on other aspects of the project, particularly documentation and test cases. It may not be as exciting as coding itself, but it needs to get done, and I find that sometimes thinking about the project at that level actually does inspire me to get back into coding.

    You could also try a change of scenery. Oddly enough, I sometimes find that the bustle of the local coffeehouses can induce me to be really productive, despite what would seem like a lot of distractions. Hiking in the mountains also does great things for clearing out the cobwebs. I've written about sources of inspiration previously in this node.

Re: I need some motivation
by abitkin (Monk) on Sep 13, 2002 at 15:26 UTC
    joshua, let me tell you, I've felt this too.

    If I had to guess, it springs from not becoming bored with the project, as much as, with any project there are a number of problems. Some of the problems take a lot more creativity and challenge the programmer more, than others. At the very least, I've found this to be true with me, where the interesting problems, could be considered your dessert, and the rest of it, your dinner (be it documentation, or other simple, but often mind numbing tasks.)

    So I find myself going back to what my parents said, "Finish your dinner, or there'll be no desert." Put in stubs for the functions that you most want to write, and leave enough in the comments that you can remember what you wanted to do. Then, eat your dinner so to speak.

    Hope this helps,
    abitkin
Re: I need some motivation
by zentara (Archbishop) on Sep 13, 2002 at 16:02 UTC
    Get out of your chair and do some aerobic exercises. Put on some of your favorite music and start "moving to the beat". Get "lost" in the music and motion, until you lose track of time. Alot of frustration comes from sitting still for too long. When you get tired of the exercising, the keyboard will "look appealing again". :-)
Re: I need some motivation
by belg4mit (Prior) on Sep 13, 2002 at 16:14 UTC
    Me too :-P

    Take Text::FIGlet, it sat for s/o like 14 months before I did a marathon run (long weekend)in February, and then sat until August where I did another marathon (essentially a full work-week); which has not left it in a distributable state :-/. The first was spurred by guilt of neglect, the second because the module was on my mind. Uri, a fellow Boston perlmonger, has coopted Dominus' lightning talk idea, and I gave the first one at the August meeting. Simply reviewing the code to

    • find something interesting to talk about
    • understand how the interesting thing works, and the best way to explain it
    was very labor intensive, but exciting. And got me thinking of many other things to do with it, as did several questions and comments arising from my talk.

    Incidentally, I think this is related to one of the reasons I have settled on something other than being a professional programmer (at least, not without something else attached); not receiving any end-user feedback.

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

Re: I need some motivation
by Bishma (Beadle) on Sep 14, 2002 at 09:48 UTC
    I'd be surprised if this didn't happen to everyone at somepoint. What usually happens to me is that I always have 2 or 3 projects going. 1 I am working on constantly and 2 that I don't work on at all. Sometimes I just forget about other projects until I find them sitting on my disk looking pathetic and half done.

    What I have done of late is force the issue. I primaraly use perl for CGI, so I tell my users (vaugly) what I'm working on and tell them when I should have it done. If I don't get the project done on time they get all bitchy and that keeps me motivated.
Re: I need some motivation
by educated_foo (Vicar) on Sep 13, 2002 at 04:57 UTC