Ask HN: How can I pick a side project and stick with it?
My problem is that I cannot seem to be able to pick a project (any project) and stick with it long enough to do any meaningful progress, let alone finishing it. It's been several years since I've managed to work on a side project for more than two days continually.
I sit before the computer thinking: I know! I'll write a roguelike in X! Five minutes later, I'm thinking: fuck roguelikes! I'll write a graphical solitar card game with Y! Five minutes later, I don't care for it anymore, and would rather write an isomorphic strategy game in Z.
The same thing happens with tools I might need, applications I think about, experimental stuff, etc.
Has anyone else experienced this, and, more importantly, found their way out? How?
[+] [-] KentBeck|6 years ago|reply
[+] [-] ryeguy_24|6 years ago|reply
I stumbled upon a book called Refuse to Choose and it’s about a personality type (that is definitely not ADHD) that happens to want to do a lot of things (sometimes in parallel or in sequence). It was very comforting to know others struggle with this and this book helps you to be ok with it. I wouldn’t say it “cured” me but I think about it differently now and use it more to my advantage. Worth a read at a minimum.
There was one very profound idea in this book that goes like this:
“If you are no longer interested in a project you started, maybe you already got what you came for”.
In essence, maybe it’s not the finishing of the project you came for but maybe the learning or understanding of how it could be done if it were to be done.
This realization is interesting for someone who exhibits this behavior. When I was a kid, I loved to build legos but after following the instructions and building a kit, I wouldn’t touch it again. As I think back now, it likely was because “I got what I came for” (the challenge of putting it together was more interesting to me than the end product).
[+] [-] arosier|6 years ago|reply
As someone who frequently starts projects and doesn't finish them, I've wondered if the part I enjoy about the project is the dreaming about what could be. That little rush you get when a new idea is upon you and it's all you can think about for x days. Doing the initial research and formulating a plan.
This is a dopamine rush for me. The feeling of being laser focused for those few days is invigorating. The start of something new, the potential for life changing work.
It usually stops there. Maybe that's what I came for.
[+] [-] LeonB|6 years ago|reply
“ I know! I'll write a roguelike in X! Five minutes later, I'm thinking: fuck roguelikes! I'll write a graphical solitar card game with Y! Five minutes later, I don't care for it anymore, and would rather write an isomorphic strategy game in Z.”
And:
“If you are no longer interested in a project you started, maybe you already got what you came for.”
There is no way that you got what you came for in those five minutes.
There’s several orders or magnitude that fit into this disconnect and it just says “ADHD-I” to me.
...and I feel my eyes roll back into my head when I read this:
“...a personality type (that is definitely not ADHD)”
...because the invention of new personality types and the stigmatic treatment of ADHD is just... very shallow.
[+] [-] bmelton|6 years ago|reply
This line alone got me to go buy the book.
As someone who's constantly churning through ideas, and who feels afflicted by ADHD just enough to worry about it but not quite enough to actually think I have it, I've found myself abandoning a bunch of projects when at a 'mostly done' state. Generally, I tackle the interesting parts of a project, and once I've gotten the proof of concept working (whether it's a visual PoC or technical PoC) and the only parts left to do are the boring user registration / billing parts, that's when I lose interest.
I've watched my prototypes languish, and over the years I've seen other people execute them after I have and go on to great success, and have decided to make peace with the knowledge that I'm probably not the guy that would have devised a strong marketing plan, beat doors down or cold-called for sales, etc., but a part of me laments that I didn't bother finishing them at the time so as to at least act as social proof to point to and say "I did that first," even acknowledging the pointlessness of it.
Thanks so much for the recommendation.
[+] [-] dinkleberg|6 years ago|reply
But I think you're spot on. From each of these projects I've gained something, and once I've hit that point the drive has gone away.
While I often feel like a failure with all of my "failed projects", in my day job people are often blown away by how I seem to know a lot about everything. The truth is it's because I end up trying most things in some fashion with one of these many projects.
[+] [-] dgb23|6 years ago|reply
I also realized this at some point but as a compromise I now take the time to write some text to document some conclusions.
This helps with two things:
It feels more finished, which is important for my mental hygiene.
And when I do come back to something at a later point I can re-assess quickly what the circumstances and the value was, which can be very practical, especially if it was just some small exploratory thing.
[+] [-] CodeGlitch|6 years ago|reply
I think you're right in that it's the journey that matters to some, not the destination. As I've gotten older, I feel less pressured to finish these side-projects.
When it comes to actual day-job work. The final 20% of a project is always the hardest for me. As I just want to move onto the next great thing. The last 20% is always the worst part for me (testing, bug fixing, documentation). It's what they pay me for though :)
[+] [-] marianov|6 years ago|reply
edit: I got bored of the pshrink after 5 sessions
[+] [-] relativeadv|6 years ago|reply
For me, this has been the defining struggle of my adult life. I've only just become truly aware of it though but when I think back to stuff like when I was a kid playing MMORPGs I would utterly struggle to make a character to level 10 before re-rolling for something more appealing.
Now it is almost a pathological issue I have where I just can't seem to choose something that interests me because honestly, everything is just as equally interesting. Painting, guitar, cooking, lifting, game development, ios development, etc. Its like paralysis by analysis to the nth degree. It's easy to say "just try some things and stick with what you enjoy" but eventually the going gets (slightly) tough and i just wimp out and quit. Except for lifting...for whatever reason I've been obsessed with that for almost a decade now.
[+] [-] globular-toast|6 years ago|reply
That's definitely the case with many of my unfinished projects. My "operating system" is a good example. I have an OS written completely from scratch for RPi3 that can run concurrent processes (and pretty much nothing else). I started to look into using the MMU but quickly realised that it's very hard and I'm not really that interested in it right now. All I really wanted to know was how to write an operating system. Now I know, but I'll almost certainly never actually write a proper one.
[+] [-] 6gvONxR4sf7o|6 years ago|reply
> Has anyone else experienced this, and, more importantly, found their way out? How?
[emphasis mine]
[+] [-] slothtrop|6 years ago|reply
Similarly, I'm more interested in research, learning. I'm in the wrong profession.
[+] [-] vladsanchez|6 years ago|reply
Zoom Party would be great! ;)
[+] [-] naasking|6 years ago|reply
Agree, I've been through this myself plenty of times. I think there's a way to turn this into a tactic though: a completed project has loads of gaps and finishing touches that a learning prototype lacks, and it comes with it's own interesting challenges that are hard to predict.
So if you're interested in learning what a finished product would entail, you can only achieve that understanding by finishing a product. I've found that there are some products where I'm interested in understanding all of the details, and some which I'm not, and that's sometimes helped filter which projects I should stick with.
The worst outcome is when I have to shelve a project because the tooling just isn't mature or usable enough to make the project fun.
[+] [-] corecoder|6 years ago|reply
> “If you are no longer interested in a project you started, maybe you already got what you came for”.
I don't know. It's one thing to leave a project unfinished, or to loose interest when it's time to fix the UI, but it's another thing to not be able to make progress at all.
[+] [-] _bxg1|6 years ago|reply
Bottom line: don't try and pin down your interest, open up to it and let it run its course. The course may not always make sense but it knows what it's doing.
[+] [-] trevorrr|6 years ago|reply
Sometimes it just seems as you are not finishing things, for me, it's more like I'm letting some things rest for quite a long time but pick them up again later. I'm just craving variety to get fresh input for all the other things and I see this as a skill. Today I am glad that I haven't unlearned to play around.
It has its benefits, tons of it, I was only unhappy with it as long as I've let others stigmatize me as lazy or undisciplined for how I am.
[+] [-] kbash9|6 years ago|reply
"Nothing in the world can take the place of persistence. Talent will not; nothing is more common than unsuccessful men[women] with talent. Genius will not; unrewarded genius is almost a proverb. Education will not; the world is full of educated derelicts. Persistence and determination alone will bring success."
[+] [-] hentaiD00m|6 years ago|reply
I realized I am a lot into science and engineering late in life. Now I want to do all of the Khan Academy in Chemistry and Physics; learn nano-/bio-tech; learn cybersecurity... and probably should just stick to learning backend dev in order to get a job.
People call this being a polymath, but I am seriously concerned for myself. The best I can do is take it one subject at a time.
On the building side, I simply have no ideas I am interested going for.
[+] [-] tziki|6 years ago|reply
[+] [-] wastedhours|6 years ago|reply
Very much this - I have very few finished side projects, but in hindsight I can track the course from even my first personal project in school to where I am today.
[+] [-] ddelt|6 years ago|reply
[+] [-] ryeguy_24|6 years ago|reply
[+] [-] aryzach|6 years ago|reply
For hobbies/projects where the goal is just to unwind and enjoy myself, sure, I still do this. But that's often still not satisfying to me. I started making the intention to just complete the damn thing, even when it wasn't fun anymore. Motivation is hardly worth anything tbh. I used to only work with motivation, and while it felt good at the time, nothing ever got completed and I probably felt how you do a lot of the time.
Second, learning is hard. If you think you're comfortable with a new language, framework, whatever.. but you lose steam when working on whatever your building with it, you might not know it as good as you think you do. It's a lot easier to keep steam when there aren't roadblocks, but when you continually come across roadblocks, it just doesn't feel like your moving towards your goal with much speed. But this is generally where the learning takes place.
And I've also seen, finishing one project to completion makes it a lot easier to finish the next project to completion. It's a skill you have to learn (to do a personal project even when it's not fun, and there's nobody telling you you have to do it)
tl;dr: for enjoyment and relaxation, don't finish projects if you don't want. For learning / creating, make it the goal to finish and know that it'll probably be not fun sometimes
[+] [-] droobles|6 years ago|reply
[+] [-] Madmallard|6 years ago|reply
Those that are more successful can get past that and make something more profound. There's a lot more than dopamine when you make something you can be truly proud of, that can potentially be a living for you as well.
[+] [-] zulban|6 years ago|reply
1) If you can't focus on a project longer than two days, then pick a project you can finish in three days. Honestly evaluate how big such a project can be. I also see this as students learn to code. They learn the basics then think they're going to dive into a 2000 hour project. Instead, you need to ask yourself "what's the biggest project of this type I've ever finished" then add 50% to that. Like an athlete, you need to build up the endurance for your self-motivation to survive longer and longer projects. The payoffs are bigger but your human brain needs to trust that a payoff exists based on past experience.
2) I prefer not to talk about my future dreams for a project. What happens is I get enjoyment out of talking about what I "will" do, but without actually doing it. Then if I ever finish the work, I get less enjoyment because I already talked about it. In this way I'd be stealing enjoyment from my future self! An exception is advice.
[+] [-] virtualritz|6 years ago|reply
1. the kamikaze
2. the soldier
3. the sniper
Kamikazes start the project. They have a broad vision of how the result will look (total victory, ofc) and they do not pay attention to the mountain at the horizon or the road missing a bridge over a canyon a few hundred clicks ahead. They just start running.
Soldiers are those who march on day by day. Following in the kamikazes footsteps they do the grunt of the work. Much more thoroughly than a kamikaze ever could muster patience or care for.
Snipers are needed when the army hits an obstacle. Like a booby trapped rock in the middle of the road. They will shoot the explosives from afar. They are highly specialized individuals who care much more for the problem they solve than what means to what end it presents.
Most developers I know have a little bit of all these three types in them.
I did understood long ago that I am mostly a kamikaze.
Coming to terms with that when I do not finish yet another spare time project ... that's a lifelong goal to overcome.
You are in good company. As others said: focus on the learning more than on the result. This is what makes coping with not finishing stuff much easier for me.
At the same time this change of perspective may just provide the inkling of additional motivation needed to actually do finish one or the other of those projects.
[+] [-] fudged71|6 years ago|reply
[+] [-] LeonenTheDK|6 years ago|reply
[+] [-] Glench|6 years ago|reply
With deeper meaning and purpose it will be natural to want to stick with something.
> Has anyone else experienced this, and, more importantly, found their way out?
I wrote a little bit about that in these two articles:
Why I Quit Tech and Became a Therapist: http://glench.com/WhyIQuitTechAndBecameATherapist/
Deep Listening at the Recurse Center: http://glench.com/DeepListeningAtTheRecurseCenter/
[+] [-] nullspin|6 years ago|reply
Figuring out how to express both has been a decades long puzzle. A puzzle which has not been very productive for my career. I have recently considered turning all tech into a hobby and getting a Masters in Social Work.
[+] [-] rmac|6 years ago|reply
[+] [-] kirso|6 years ago|reply
[+] [-] littlecosmic|6 years ago|reply
Just because an idea pops into your brain, doesn’t mean you owe it anything.
Something that may help is picking a smaller project, so small you could do it in a day or two. Build up some endurance over time.
Good luck
[+] [-] aprinsen|6 years ago|reply
Here's some quick advice:
* Start smaller. Your projects are probably too ambitious to start. Graphical games are actually quite complex. Start with small projects and work your way to larger ones. My first projects were chrome extensions and silly command line tools. They helped me build some resilience that I used later to complete more complex projects.
* When you do tackle larger projects, do your best to see them as a series of smaller projects. Each project should deliver some value on its own. I recently built a web game about navigating a randomly generated maze and avoiding monsters. Here's how I broke it up: first I built a command line tool to generate mazes. Then I separated the core functionality into a library. Then I deployed an API wrapping that library. Then I built a simple UI that allowed a user to navigate that maze. Finally, I started adding enemies. Each enemy was its own project, each with more complex path finding than the last. At each step in this process, I had learned something new and had a deliverable to show for it.
* Your question suggests that the problems you are trying to solve are not interesting enough. This belies a beginner mindset: that you have to be interested first, and then work happens off the fuel of your interest. The truth is that most interesting projects involve a lot of days where the creator feels disinterested, but shows up any way. The most important thing you can do for yourself is cultivate the resilience required to keep showing up, so you can reap the satisfaction of completing great work later.
[+] [-] themdonuts|6 years ago|reply
Result: with every user interaction you will get a refreshment of motivation. I've done it for 5 years.
Long version: I was all about starting projects and never finishing, until one day I actually put one online and started spreading the word through discussion boards.
So step 1) Launch and spread the word. You get 1 thing out of this immediately: you WILL finish it to the bare minimum, because what if someone actually tries to use your product?
You could argue: yeah, but when I give up on the project it's no where near ready to be launched. I would argue back that if you dropped it, it probably means you got something out of it - could someone also benefit from it? Maybe, at that moment switch your brain to: now let's launch this and spread the word.
Step 2) Put metrics in it You want to see if there's people coming to your website. Crucial for step 3, read on.
Step 3) You will see people coming to your website and interacting with your product. This is the best part, because it gives you such a kick of motivation that will make you want to continue working on it. It just keeps giving.
I've started a project 5 years ago and I put it out there and forgot about it. 2 months after someone used it and I got my first reservation. That was such a source of motivation!! It's magical and it's a cycle. As I continue working on it as my side project and as I start losing interest, I get a new user which then sources me with more motivation to keep going. This cye repeats
I've learned a lot in terms of business, technology stack and devops, but all this applied to the same project I started 5 years ago.
[+] [-] agentultra|6 years ago|reply
Talking about it tricks your brain into thinking you’ve done the work and you lose motivation.
Sticking to a schedule can help as can ritualizing the process of working on your project: have a certain place you associate with the project or a particular genre of music that gets you excited (it’s important to not listen to that genre/album while doing anything else). These tactics exploit the power of association in our brains to form habits.
[+] [-] johnstorey|6 years ago|reply
Here are a few ideas that seem to consistently help me.
* one, sheer willpower. It's a muscle that needs building, but keep going when you don't have any further interest for the sake of completing the task. Even when it feels like torture. It's about forcing yourself to the finish line. Often the interest comes back later.
* Move the finish line closer. Formally write down what you want to develop with milestones, with a go/no go decision at each milestone. If you decide not to continue at a milestone, that was part of the plan, so you completed the project.
* work on things that develop skills you expect to bring to the workplace and apply there. That's a pretty direct link to income.
* work on things you want or to keep current with younger hires -- I'm learning gitops on k8s at home, and packaging charts to self-host some things I've wanted at home anyways. Even though I manage these days, it's important to understand how things work to a decent degree in order to have meaningful discussions with the broader team. I know managers who get by without that, but I'm not one of them.
For what it's worth, continuing on because that's what you planned to do sometimes leads to a renewal of interest later in the project.
[+] [-] brudgers|6 years ago|reply
[+] [-] onion2k|6 years ago|reply
[+] [-] papaf|6 years ago|reply
I also have general tips on side projects that make them more fun and less like work:
I also have these general tips based on mistakes I made in the past:[+] [-] spodek|6 years ago|reply
Focusing on the problem and the people who feel it will generally engage and inspire you longer. When you ask someone about what's missing in their lives or specifically what emotions they feel in the area you want to work in, they tell you, you offer possible solutions, and they say "when will you finish it, I want to buy it?", that inspiration lasts a long time.
Whom do you want to make your project for? What emotions do they feel that you want to address? Are they bored, frustrated, confused, misunderstood, lonely, etc? Each emotion is different and will lead to different solutions. Ask them so you hear in their words what they want. Ask them to clarify.
The inspiration to help others is deeper and creates meaning and purpose beyond just "I'm going to do something cool everyone will love."
I cover how to make this happen in my book, Initiative http://joshuaspodek.com/initiative based on project-based learning entrepreneurship courses I taught at NYU. If anyone is interested in doing the exercises after reading the reviews and watching the videos but cost is a problem, email me and we'll work something out. I suggest the book because of the results people get from doing the exercises.
[+] [-] mschaef|6 years ago|reply
You also shouldn't fool yourself about the amount of time and effort it takes to achieve anything real. Developers tend to underestimate the work involved in achieving a result. For commercial projects that sort of estimation problem turns into cost overruns and missed deadlines. For side projects (without formal schedules) it turns into demoralization when the result you want doesn't meet the timeline of your dreams. That solitaire game may seem like an easy thing to do, but for every complexity you see there's a dozen you don't, and you'll have do the work to solve them all to produce something of value. So make sure it's something you actually care about.
[+] [-] edw519|6 years ago|reply
2. The HOW should be something very important to you.
Many experts tell you that you should build something that you actually need yourself. That may be good advise for start-ups but not as good for side projects. Why? Because it's too damn easy to just give up as soon as you hit an obstacle (and you WILL hit obstacles).
But when someone else is depending on your work (and becomes a trusted collaborator), they provide you with that extra UMMPH you will undoubtedly need when the going gets tough. It's a lot harder to bail out when someone is right next to you and depending on you.
But by deciding on your own HOW you will build it, you maintain an outlet for your passion. Believe me, I know. For me the journey of building something is more fun than the anticlimactic using of the finished product.
Works all the way around. Give it a try.
[+] [-] skinnyarms|6 years ago|reply
If you are just trying to build a portfolio you can come up with a (small) "SMART" goal, and commit to completing it. After you reach the milestone you can make a conscious decision whether to continue or not - but either way you have _something_ completed.
https://en.wikipedia.org/wiki/SMART_criteria
[+] [-] pogorniy|6 years ago|reply
I've learned that I'm excited about idea of the project, but not routine which gets that idea done. Also I know that usually I'm excited about project for several days and then other ideas get in my head and I loose focus. Another known pitfall is urge to get too much functionality and then again focus is lost.
So I decided to stick to the routine of one project regardless of circumstances. I defined wanted functionality. Intrinsically I agree that time spent on the project is not worse than alternatives.
Also I tried to record videos (in russian) on how I approached the project. That helped a bit with external motivation as I promised people to deliver video on Saturday. Made quite a number (26) before abandoned this idea, as it wasn't popular, thus rewarding for me.
Now in a year I call this experiment done https://github.com/podgorniy/media-manager. I'm happy with result and path I did to get there.
We can discuss details more. My first unfinished project dates 2013. So I've being in this situation for quite a while.
[+] [-] vishnuvis|6 years ago|reply
The thing which I followed is to fix my routine. Joined a Gym, it helped a lot on focusing on things & made me mentally strong.
Take off time, started travelling & took a long break & then get back to work. A step closer to nature made me fresh & met people who are really working hard despite the lack of resources. This made me think about how am wasting my time, despite having all the resources.
Sat one day & written everything on things I wanted to do. Made a weekly task, monthly, quarterly. Then started steps to accomplish it.
At first it wasn't easy but slowly I made a habit & then finally get used to it.
Just follow something for 21 days, it will be a habit.
All you need is 21 days.
[+] [-] andremendes|6 years ago|reply
What you like beyond games? If you like gardening, make a game about it. Are you a sports fan? Make a sport game. You get the idea.
I'm saying this because it's working for me. Like you, I want to make games on my own. I am also into politics, so I chose a language and a framework[¹] and started from the tutorial with the goal of making a politically-charged infinite-runner[²].
After getting the basics I told my idea to a couple of friends that kindly drew sprites for me to use in the game. It's been a really cool experience. I'm doing it everyday and learning a lot in the way. I strongly believe that the subject choice for the project is what is getting me hooked to it.
¹: https://haxe.org and https://haxeflixel.com/
²: https://github.com/fullynotanalien/bozorun (edit: formatting)