• Click here for a list of all my projects.
  • Click here for Touchlib info. Source code here.
  • Click here for our multitouch community site.

Saturday, March 08, 2008

Staying motivated on large hobby coding projects

  1. First, evaluate whether this project really is something you want to do. Here are some questions you may want to answer: What will you get out of it? Possible benefits include: money, experience, recognition and the joy of a job well done. Or it could just be a tool you hope to use. Are you doing this for yourself or for other people? Visualizing the end goal is a good first step.
  2. How long will it take and how much time can you commit to it? Even a small project will take a few months. However, you don't have to worry about tackling it all at once. With Genome, I try to put in a half an hour before I go to work every day, which usually allows me to tackle one small item from my todo list. It's huge project but I am making steady progress. Which brings us to #3...
  3. Set small, easily achievable goals. Big projects are made of thousands of very small steps. Whenever I start a new project I set the bar very low. Step one is always to get something compiled and up on the screen that I can see. I don't start out trying to write a huge chunk of code.
  4. Work on whatever interests you. If you are stuck on something, work on something else or some other part of the code. Don't feel like programming? Organize your todo list, work on your website for the project, or brainstorm. That way you are always getting something done. If you feel stuck and stop working on it, there's a better chance that you'll abandon the project.
  5. Make coding an enjoyable experience. I like to put on some music, get a nice cup of coffee and crank on some code. If you find yourself getting frustrated with bugs or your slow progress then it's time for some introspection and self reflection. Where does your sense of urgency come from? It may be that you are telling yourself that you should be further along than you are or 'I'm stupid, I can't figure this out' or other such things. These thoughts aren't really productive. The only way to overcome obstacles is to put fourth a steady effort. Instead of feeling down or complaining, try to focus on "What can I try next? Where can I find the resources I need?". Bugs are part of the process, part of the challenge, and part of what makes the task rewarding.
  6. Take breaks, do other stuff.
  7. Celebrate your progress and successes. I like to write what I've accomplished in this blog to help motivate me.
  8. Be organized. I like to use Mindmapping software such as Freemind to brainstorm, diagram my code, and also keep track of my todo's. It's easy to drag things around so I can prioritize and reorganize if necessary. Things that I want to look at soon I give a bigger / bolder font, things that I don't want to pay any attention to yet I shrink down or hide in sub categories.
  9. Deal with one thing at a time. Trying to think about everything that needs to be done will make you crazy. The human brain can only hold a few variables at once.
  10. Use lists to help unload things from your brain. As soon as you think of something that needs to be done, write it down, that way you don't have to stress about it.

5 Comments:

Blogger jonty said...

Sleep machines have become a vital part of the day-to-day life of human beings.Sound Conditioner is also a useful way for generating calm and quiet sleep. The sound conditioners will create a better atmosphere for sleeping. White Noise generator is another method for getting perfect sleep. The pleasant sound generated by the White noise generator will help us to sleep quietly.

9:28 PM  
Blogger Nick Kesick said...

Hey David,
A while back you had mentioned possibly making touchlib wiimote compatable where it would allow tracking of the IR positions without the need of a camera. I'm not assuming you made a promise or release date or anything, it seemed more like a possibility or idea, but I wanted to know if you had anymore information on that.

12:57 PM  
Blogger David Wallin said...

Hi Nick,
No, I didn't get around to doing that yet.. If it's something you're interested in doing I can give some advice on how to do it.

7:01 PM  
Blogger Nick Kesick said...

Ok. I might contact you over the summer. Too busy with classes right now >_<

Thanks David.

4:56 PM  
Blogger Nick Clarke said...

Your link to freemind is incorrect. Just clicked it and ended up on a strange website :)

Correct url: http://freemind.sourceforge.net

Maybe one day I'll start my MT project.

4:26 PM  

Post a Comment

<< Home