Think again.
You've either come up with something
generic, like "program video games", that has
been ruined by over-exploitation of the thousands
before you with a strong ambition and no
strong direction, or else you want to
solve a hard problem.
Let's talk about hard problems.
Don't try to solve the problems that legions of other people are trying to solve.
Solve the problems that *those*
people need solved, or solve new problems that haven't been identified yet, or just solve small problems as you come across them.
There's the omnipotant danger that if you go after the hard problems, you'll have a colossal-sized excuse for never
accomplishing anything.
But i guess that's what they teach you in grad school...
Hey, if the problem is hard, you can't
expect to have it done *today*, right?
And then you don't make sub-goals.
In fact, you don't even get good at solving
small problems.
Solving smaller problems, you build up levels
(just like in D&D!), but you're also accountable --
if you tackle a problem that *should* take two
days to complete, you start ridding yourself
hard, and kicking yourself, if it goes into
five days.
If you're trying to solve a problem the
previous generation couldn't solve,
you're on par for ever solving it yourself,
so every day is a leisurely stroll through
unproductivity and undeserved self-congraduation.
Those of you who have worked in research
might find this description hauntingly familiar,
and it describes a lot of professors in charge
of graduate students.
Don't turn into yet another expert who can
explain, at length, exactly why a problem
hasn't been solved yet, and contribute nothing
to the field.
Do *something* with your life.
And you never know which solved problem is
going to turn out to be a lot more important
than it seemed.
The pundits are usually wrong -- the
transistor was a fluke -- no one predicted it,
but after it happened, the pundits predicted
smaller and faster logic elements -- which
haven't materialized 50 years later.
-scott