General Development

Coding motivation – BrianT

Briant

Member

Posts: 742
From: Stony Plain, Alberta, Canada
Registered: 01-20-2001
Often I go through cycles of motivation/unmotivation to work on my projects. Recently, I've been riding a very long positive wave of motivation, and I've been getting lots done. I've found the following things help keep my motivation up:

- Define the ending at the beginning. Don't get into "open-ended" projects that have no real focus or defined goal - they'll just drag on forever and you'll loose interest fast. Design up front! You'll find it MUCH easier to track your progress, and thus drastically improve your sense of accomplishment as the project progresses.

- Set small goals. Work on (and test with) bite-size pieces - don't overwhelm yourself with "I need to program a 3D engine", or even "I need to write code to handle textures", but even smaller: "I need to write a class that holds a texture's coordinates and graphic info and another class that loads a .jpg file".

- write *good, clean, readable* code - it takes a few extra seconds to make your indentation consistent or write that comment, but when it's done, you have a sense of pride in your code - you feel like you really accomplished something, something that you would feel good about showing someone else. If your code looks like crap, you'll feel crappy about it - even if "it works".

- thoroughly test each chunk of code as you write it. Don't get it "almost finished" while moving on to the next piece - having to repeated come back and rework/debug the same code gets discouraging. Do it right, be sure about it, *then* put it aside and move on.

- write reusable, modular code - if you need some code to load a graphic file or read the keyboard for your game, chances are extremely good that you'll need some code to load a graphic file or read the keyboard for some other project in the future. So when writing your code to load that graphic, don't integrate it tightly so into your current app that it won't work anywhere else - instead, write it generically and stand-alone. You'll feel better about the design (sense of pride), and you'll also reap the benefit of drastically speeding up the development of your next project when you just basically drag and drop the code in and it works - which will really help with the next point:

- let yourself see your own progress - don't spend too long of a stint in code that has no real visible progress. Spending 5 months on the plumbing of a graphics engine may be what's needed for a project, but do it in such a way that you don't even see anything different on the screen for weeks or months at a time. I used to work on device drivers that massaged data "behind the scenes" with no real visible progress to see as the weeks went on. Those projects became monotonous and even discouraging, (even if they are making real progress!) simply because you can't *see* your progress at runtime. Don't spend four weeks writing a good mesh-loader without trying to display meshes daily as you add code.

- watch other people's progress. Don't work in isolation. Isolating yourself makes it easy to slack off. Let the progress of others inspire you to make similar progress.

- when you play a game or even use a "plain app", think about it - How did they do that effect? How does that work? How would I develop this feature?

- Think often about the end result. Think about getting it out, think about how you'll feel when it's finished, other future projects that can be based off it. Even think about the money it could generate! Crunch some numbers! E.g. "If I charge $10 for this software and submit it to 15 download sites, and get 100,000 people to try it out in the first year, and only 0.5% of those people pay for it, that's 500 people paying, or $5000!" That will REALLY increase your motivation to code.

- tell non-programming people (your friend, your mom, your neighbor) about your project - and then keep in mind that when they see you next week, they're going to ask you about it! You better have something to say other than "Oh, well, I've been meaning to work on it but...."

These are some of the things that keep my motivation high. What works for you guys?

------------------
Brian

D-SIPL

Moderator

Posts: 1345
From: Maesteg, Wales
Registered: 07-21-2001
Motivation for programming, hmmm...

I normally funnily enough get motivated by certain music. Some music gets me in the mood to code! Mainly The Verve!

Also if i'm writing a christian game then I have to find something that makes the subject come alive. Like if i'm writing a game based on the end times then i will watch a film, something apocolyptic. That normally gets my creative flow going.

I find it hard to get motivated when writing tools though, like map editors and stuff, i find that so boring... along with GUI's and menu's (like the HUD)...

Anyhoo these are just a few things that help motivate me... You have to keep things fun.

--D-SIPL

------------------
If at first you don't succeed, destroy all evidence that suggests you tried

CPUFreak91

Member

Posts: 2337
From:
Registered: 02-01-2005
Hmm, my motivation is:
Write a usefull program that someone might get excited enough to buy, or make it free and open source. (Everything I do is open source right now. I haven't mastered Py2exe).
I like the tips you gave, Brian. Thanks.

------------------
There are two ways of constructing a software design: one way is to make it so simple that there are obviously no deficiencies; the other is to make it so complicated that there are no obvious deficiencies.

--C. A. R. Hoare
[B][/B]

[This message has been edited by CPUFreak91 (edited April 01, 2005).]

CoolJ

Member

Posts: 354
From: ny
Registered: 07-11-2004
quote:
Originally posted by BrianT:
Think about getting it out, think about how you'll feel when it's finished

I hate to pick just one out of a great list, but I REALLY like that one!

Also, you forgot this one - print up BrianT's list and keep it near by!

For me it's, stay away from google news and quit reading the same news story 100+ times from 100+ different places, it's all biased, depressing anyway and wastes so much time!

CPUFreak91

Member

Posts: 2337
From:
Registered: 02-01-2005
Hey BriantT, I think that your motivation is good enough to make an article here on CCN. I have a desktop background changer for my comp. and I have your motivation as a .jpg text background.

------------------
There are two ways of constructing a software design: one way is to make it so simple that there are obviously no deficiencies; the other is to make it so complicated that there are no obvious deficiencies.

--C. A. R. Hoare
[B][/B]

Goldrush13

Member

Posts: 107
From:
Registered: 02-27-2005
I decided to take your advice guys, I crunched numbers whilst listening to The Verve...........

Long story short, remind me never to read a BrianT thread again.

Briant

Member

Posts: 742
From: Stony Plain, Alberta, Canada
Registered: 01-20-2001
Wow, I didn't think it was that great of a list, just some ideas.

Goldrush13, I don't get it - why don't you want to read my threads anymore?

------------------
Brian

Goldrush13

Member

Posts: 107
From:
Registered: 02-27-2005
I hate it when my jokes don't go down well, maybe it's because I don't use those ridiculous smiley face things.
bennythebear

Member

Posts: 1225
From: kentucky,usa
Registered: 12-13-2003
goldrush was referencing to d-sipl's use of "the verve" , and figuring out how much money he would make by "crunching numbers" (from briant's list)...i laughed once i read back to get what he was saying...actually was funny to me. p.s. smiley faces would've ruined it

------------------
proverbs 17:28
Even a fool, when he holdeth his peace, is counted wise: and he that shutteth his lips is esteemed a man of understanding.

www.gfa.org - Gospel for Asia

www.persecution.com - Voice of the Martyrs

Goldrush13

Member

Posts: 107
From:
Registered: 02-27-2005
Yeah BrianT, what he said.
Briant

Member

Posts: 742
From: Stony Plain, Alberta, Canada
Registered: 01-20-2001
Ah, I'm slow on the uptake.

Speaking of crunching numbers: Very successful shareware will get from 2% to 5% purchase rate, as opposed to the 0.5% I gave above. So although the numbers I gave above are probably much closer to realistic numbers to expect, let's consider a "best case":

- you develop a *good* game or app
- you sell your program for $19.99, through a shareware reseller like swreg.org or regnow.com, and after they take their cut, etc., you're left with $15 per sale.
- you HAMMER the download sites, get it out there big time.
- by the time two years go by, 1,000,000 people have downloaded/tried it, and 3% of those people register it.
- 1,000,000 * 3% = 30,000 people
- 30,000 people * $15.00 profit = $450,000!

OK, that's amazing. Likely not going to happen, but not impossible. But even if you're off by a factor of 10, that's still $45,000. For just *one* app. What happens if you have 3 or 4?

OK, motivation up again, off to code......

------------------
Brian

CPUFreak91

Member

Posts: 2337
From:
Registered: 02-01-2005
Hmm, I wonder how many people would pirate the game/app if you put in the registration code section: Please don't distribute this you username and code to others. I/We trust that you will not, but if some one does please notify me/us imediately.

------------------
There are two ways of constructing a software design: one way is to make it so simple that there are obviously no deficiencies; the other is to make it so complicated that there are no obvious deficiencies.

--C. A. R. Hoare
[B][/B]

fingolfin

Member

Posts: 197
From: IL
Registered: 03-19-2005
Yeah, a good way to keep your steam it to section your time into things that aren't fun and things that are fun. Do some of the boring work and them some of the less boring (and even fun) work. This way you can attempt to avoid the getting caught in a huge mass of really really boring work. I try to do that with school.