One of the issues I run into most often with other people who are learning programming is how many of them have an attitude of bewilderment about the whole thing. They know that it's a useful skill, lucrative too, but when it comes to actually creating something useful with software, they haven't the faintest idea how to go about it. Their experience and their mindset just doesn't allow them to take steps on their own, to solve a problem of theirs or maybe help other people solve their problems. It's just not their baaag, maaan, and so they eventually drift away and spend their time doing something they have less difficulty wrapping their heads around. Do note that in no way do I consider this a failing; I'd rather people do something they genuinely enjoy than something they just think is what they're supposed to be doing.
Small wonder one of the most common questions I see posted in forums dedicated to programming of one kind or another is a variation on this: "OK, what do I do with this? What should I make?" In other words, they're looking for someone else to come along and tell them what to do, which is the worst way to go about learning something, anything — yes, even something ostensibly to be used as a commercial skill.
None of this is to imply that we shouldn't seek out examples of what to do based on someone else's suggestions. The programming project I'm currently neck-deep in is essentially my own version of a common software product, a blogging system, so there's no real innovation going on there. It's just that the software I'm currently dependent on in that vein is at a dead end; rather than switch to a competing product I'm no fan of and most likely never will be, I decided to create my own replacement. Even if it isn't the most original thing out there, it's at least something stemming from my own needs. It breaks no ground, but that was never the intention.
Anyway, onward. My point is that I see this what-should-I-do mentality in writing as well, and it's utterly poisonous. People who are just beginning to explore their creativity as a writer will often say things like "What kind of story should I write?" It's a thinly disguised version of the question, "What kind of thing should I create that will make me rich and famous — in other words, taken seriously as a Writer instead of laughed at?"
The only kind of software project worth working on, especially if you're not being paid to do it — and even if you are, come to think of it — should be the kind that you can't help but care about. If computing and all that arises from it isn't in your blood, then odds are you won't ever come up with anything on your own other than trivial tinkering. But if you can find some way to connect what computing does to something in your life, then it blossoms on its own.
I've long believed the same was true for writing. People who are attempting to express something personal have a far better chance of actually saying something than people who are just selling a product, or trying to arrange familiar things in a trivially novel fashion to make them salable. If what they are doing isn't motivated by some deep-seated need, and not fueled by something irreplaceable — something that is wholly them — then it'll just be a fancy way to keep yourself busy.
The hardest thing to do as a creator of any kind is figure out what it is you can do that is entirely yours. The second-hardest thing is to figure out how to build a bridge from that to an audience. I'm ranking them in that order because while the second one is more of a science, the first one is more akin to mysticism, something I confess I'm not comfortable with if only because I despise the idea that it is only in a mystical view of things that we find anything like absolute truth. But our society is constructed in such a way that it is very easy to never have anything like real self-knowledge, so it's no surprise such insight comes only after great personal effort and cost.
New York City
Other Lives Of The Mind