views:

195

answers:

5

I am 22 Years of age and have been into computers since 13 and programming for the past 3 yrs. I am in the CSE program in my local university. I have been thinking non-stop about startup ideas and open-source contribution projects, but i find it very hard to stick to the program. I start to code, then as am coding i stop and think about something new which i think might be a great idea. Is this normal for programmers. If not how can i fight this?

+2  A: 

Write a todo list for your current project.
While completing the current project, think about/plan the next one.

I'm half way through developing ChgDoc and want to finish up and start on Twipler. So I've written a "todo" list for ChgDoc and when that's complete I'll begin on my next project which is still in the planning stage. Maybe by the time I get to start on the next project I will have fallen out of love with the idea and moved on to something else.

Dead account
+1 writing a TODO list worked for me.
Joset
should i get specific with the TODO list or keep it to more larger steps?
Babiker
it's your project so work at what ever level you choose. For my CMS system, I want to be able to add comments, "perform actions" and output RSS. When that's done, I'll put it to rest.
Dead account
Babiker: This may not seem like it answers your question but read down to step 5: http://www.joelonsoftware.com/articles/fog0000000245.html
jmucchiello
A: 

I'd say yes (well for me anyway). Sometimes things get boring - you just have to get through the crud. If the project really is boring then by all means leave it - but think about why you picked it the first place? Did it satisfy some use case for you as a consumer. If it did and you've achieved your goal that's fine otherwise question yourself as why not. Another important thing to consider it that if you are at university then completing projects will be a plus point in future recruitment exercise.

Preet Sangha
+8  A: 

I often have this myself. You start working on a project, enthousiastic, passionate, full of great ideas, and then slowly, as you progress, you start longing for something else, want to do a new project, etcetera.

In my opinion it is normal. And I think there are good explanations:

  • Most of it has to do with the classic '80%-20%' rule (Pareto Principle), which I think applies here as well. You design this great architecture, start coding, everything seems to come together great, you're proud, you feel you have achieved great things and then.... comes the boring stuff. You've done the fun stuff, now you have to fix bugs, do minor changes, there's little architectural challenge left, and the worse part is: you might've done 80% of the project, but the other 20% (the boring stuff) will still take 80% of your total time. It's depressing. Please, give me something new!
  • One other reason I can think of is that in your head, your little software program is always so much cooler then it turns out to be. You think you've come up with this great architecture, incredibly cool user interface - you name it, and it all turns out to be just another piece of software.

I don't think you're alone on this one. And though writing a 'To Do' list can somewhat help (like some others mentioned) it does not always get rid of that feeling :-)

Razzie
+1 you nailled it I think :)
Dead account
Heh heh this is exactly right. But remember, doing all that boring stuff is what separates the pros from the amateurs (and I don't mean in the sense of getting paid, I mean in the sense that a pro cares about the quality of their code, they could still be hobbyists).
20th Century Boy
A: 

Yes, apathy has always been my own greatest challenge in my programming career. Something I've found out though, from the few projects that actually did lead somewhere, is that the feeling of satisfaction I get out of producing something solid, especially if I had to work my way through some tough times getting there, is beyond compare.

I try to keep this in mind when things get rough, that the time and energy I spend on the boring parts of the project will actually enhance the feeling of accomplishment I get in the end. Also, I find that the more time and energy I spend doing mundane tasks, the more efficient I become at them, and thus, they take less time to complete and they become less boring to work on. If you get any spare time between projects, try to think about how you can optimize the process of working on the boring parts (through various tools, techniques and technologies).

Lucas Lindström
A: 

It is not that uncommon, but if you dont learn to finish projects you'll never get things done. And unfinished SW is worthless and finally a waste of ressources - nobody can use it anyway. In my carreer there have always been several projects running in parallel at different stages. But we have to assign priorities and ressources in a way that everything get done and finished within deadline (or prolonged deadlines :-) ). Otherwise you finally must close down your job, service or even the whole company.

LuI