Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: How can I pick a side project and stick with it?
686 points by corecoder on April 6, 2020 | hide | past | favorite | 364 comments
I'm a web developer and DevOps engineer. I know a few languages and frameworks very well, I can find my way around with a good deal of other languages and frameworks, and I'd like to learn a lot more.

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?




Don't. Most side projects aren't worth investing heavily in, but you can't tell which is which without trying them. I had started hundreds of programs before Erich Gamma and I programmed together. If I had forced myself to "stick with" one of those early projects, we wouldn't have written JUnit.


I’m just like you.

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).


"maybe you already got what you came for."

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.


As someone who tends to do the same, I don't think this is a good description of what is happening. The way I view it is that any project has the same progression of initial excitement, frenzied work and determination, discovery of the real scope, the descent into the Valley of Despair as you continue to wrestle with the problem and then the fork in the road where you either give up and abandon the work or you persevere through the Dark Forest of Unknowns where your progress is often measured in inches until you climb the Hill of Competency where you can again make meaningful gains and catch a second wind until you enter the Swamp of Drudgery where you again must slog your way through until you reach the base of Mount Perfection where you can finally ship it.


Ya, sometimes I follow this path as well. I like how you put it.


exactly what I feel


FWIW I've found that there is a cross section between excitement of a new project and the momentum of that project.

Most projects fizz out when the excitement wears off before the amount of work you've already done on it has enough momentum to push you to do one more task.

When I push though that motivational hurdle, I find the amount of work already done incentives to continue on with it. The next task is obvious and relatively easy, because there is something to work with.

Now, losing confidence that everything you've written is garbage and refactoring the same systems over and over again until you give up- that's the hurdle I choke on :D


> Now, losing confidence that everything you've written is garbage and refactoring the same systems over and over again until you give up- that's the hurdle I choke on :D

My recommendation would be to pick a very small project and have specific goals for a Minimum Viable Product (MVP). Try to define a project you can complete in a week or two. Keep the list of specific features you want very short. Then, remember that the code doesn't have to be perfect, it only has to be good enough to implement those specific features you wanted. It doesn't have to handle epic amounts of traffic, etc. It's ok to cut some corners round as long as it does the job for what you're trying to achieve.

Otherwise, just as a general mindset, I try to remind myself that a lot can be done incrementally. Sometimes it's important just to build a working version of your software so you can try it out and learn some lessons by playing with the working software. If you stop and refactor endlessly in an attempt to try to build the perfect system, you'll never get to the point where you're actually trying a working version of your program... Which is the point where you realize what's really important or not to achieve what you want.


Agreed, I have found that as well. I have tried to define how much momentum I need to stay engaged. For instance, I started a YouTube channel. The process of creating videos was a short enough feedback loop (a few days max to start/finish a video) that I was able to stay engaged for longer than normal. I fed off of each finished video as the momentum to keep working on the project of "growing an audience around a topic I was passionate about".

I have also found that I am able to stay engaged in other applications where I have a shorter feedback loop, to maintain momentum.


That's a great example. I experienced something similar with my side project, which was a music magazine app, similar in concept to the (failed) iPad interactive magazine projects that were all the rage back in 2012 or so.

It was very challenging to build something that scaled to phones and tablets while having a magazine-type aesthetic (compartmentalized information on each discrete page).

In the end, I abandoned it, and decided to create mini-zines and post them to Instagram as slideshows. Zero interactivity, but they're orders of magnitude faster to make, layout is constrained to IG's 1:1 aspect ratio and and I already have the artboards as I used Sketch to build my static mockups.


I think you made a good saving of the initial investment and still managed to to publish your content which is mission accomplished. In fact you're likely to be consumed from IG.

I also tend to go to the path of least resistance and do things in batches and the simplest way possible but concentrate on the most important aspect of it, the content. In the end this is the winner solution for me, if I were to take the long road I would most likely stumble upon details that are not important. If they are important there's a possibility to fix one aspect or another.


True, I was stumbling on details constantly. Page load times, optimizing for screen sizes (this was a no-scroll, pure swipe-based mag), and it was very discouraging.

And you're also right about IG, people actually saw it and it would come up if people searched the tags. As a passion project, that's 70% of what I wanted. That remaining 30% probably wouldn't have been worth the effort.


I'd bet a few dollars that this is the most common answer. A little piece of anecdata, being stuck, jobless and confidentless due to too much of this dopamine rush theory, i did propose to write something for my 'boss', at a food store, a little single user vue app [0].

a few conclusion :

- i did actually deliver something functional (for a change)

- i still had twenty thousand dreamy ideas (as noted in a lengthy TODO file)

- doing something for someone else changes our your brain rolls. you dream less because you want to make them happy

- it was painful at times, dealing with constraints

- but solving these was a good feeling. a bit less exciting but longer lasting. a feeling of knowing more and deeper (much unlike dreamy brainstorming)

- it makes you operate for true progress, you aim at surgical advances instead of abstract designs. that is a great thing. sobering

my 2 cents

[0] the theory behind it was that I'd do something simple, without pressure, that I may sell, or at least put on my resume (vuejs being trendy)..


I feel so related to the third point.


I think it's a subtle but important one actually, the dopamine rush is a bit a self pleasuring quest, so thinking for others is already a step in the right direction

That's also an idea I keep having about general adult life, career and happiness. Youth is all about intense self satisfaction, but running this race too long is a dead end, and it should be hinted that working for other citizen is actually a good thing for you (because it avoids this dead end)


I found having an ideas sheet is good for this. You can know the idea is recorded and that removes the desire to immediately work on it. And you can later logically choose the best thing to work on from the list


Yeah, I recommend keeping a sketchbook/journal to write down and plan out the side-projects, then when you have more available time pick which one to start on given how feasible and interesting they are now. From my own experience I have found that if something still sounds interesting two months after writing it down then it's something worth spending time on.


I was reading a book called "You're Not Crazy - You're Codependent" (not relevant, except the source of what comes next in my comment) wherein the author made a distinction between "dreaming" and "fantasizing", the latter being destructive (in some cases) or unsatisfying.

I feel the distinction is valuable for me, but I've also been helping my teenager work through his challenges wherein he hits the first speed bump and invariably gives up on something. Getting "through" the challenge has been a learning process for him.

He realizes he doesn't want to kick things up over and over again, only to hit the first roadblock and then lose interest.


Interesting distinction between "dreaming" and "fantasizing". Does the author define the two as the same process with the only difference being the effect the action has on you (e.g. destructive/unsatisfying)?


I don't have access to the text right now, but when you consider the literal definition of "fantasizing", it's pretty heavy: "to imagine things only possible in fantasy"


I was thinking the same thing. The rush from the possibility versus the actuality applies to relationships as well.


I frequently think about how lucky I am that my dopamine rush is linked to seeing projects finished. People ask me how I get so much done, but there really isn't much of an answer other than "I like doing them and I enjoy seeing them finished".

Here's a beeping ball toy I made for my blind cat yesterday:

https://www.instagram.com/p/B-ml-2KgjsW/


Very cool! How did you make this? I wonder if having the vocalizations of a prey animal (i.e. mouse) would provoke a stronger response in your cat than a generic beeping.


I used an ESP8255, a motion sensor (a spring in a tube with metal walls) and a buzzer. Something better-sounding than a beep would definitely be preferable, but I don't think the buzzer can really play anything other than a beep...

I'll have to do some research, maybe it can do some rough approximation, thanks for the idea!


I like this too. At the same time is this only making you feel better and not addressing the problem?

You definitely dont want to beat yourself over losing interest in side project. This is something many people including myself do, especially when side projects are a hobby. But if you want the side project to be more than 'a hobby' you still need to address staying power.


I see a big disconnect between:

“ 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.


I'm a guy who got diagnosed with ADHD-PI when I was 28 and it instantly made so much of my life make sense. (I went from an unfulfilling career I hated to self-teaching CS and software dev & getting a job in the field within about three years.) And yes, I also got very strong ADHD vibes from this post. Having said that, I'm certainly not a doctor and there are a lot of things besides "can't stick with side projects" that go into a diagnosis.

But if the OP (or others reading) also experiences issues with working memory, losing items like wallets or keys, following directions (not because you dislike them but because you just can't keep them straight), sleep issues (generally, staying up significantly later than average), physical restlessness such as restless legs, forgetting appointments, lots of emotional impulsivity via outbursts, a very strong pull towards stimulating things like reckless driving, dangerous levels of drinking or drug use, etc., among others, they might benefit from discussing with a doctor.


I'm scared of how accurately your second paragraph describes me. Well, there are a few differences (I don't lose things, mainly). Thanks for the glimmer of hope.


I have zero issue with focus or any aforementioned issues (save occasional insomnia) but still identify with OP.


My god, literally everything in that second paragraph is what I do.


Ignoring the fact that “five minutes” was probably just hyperbole, you can absolutely get what you came for in five minutes. Five minutes is long enough for me to validate an idea from “wouldn’t it be cool to do X?” to “man I really don’t want to do X”. And I’ve just gotten what I came for, validating (or invalidating) an idea.

Just because you have an idea doesn’t mean it’s worth pursuing that idea, especially if it turns out you’re not interested in that idea after all.


I think this is a pretty important point. Often times I think I'm interested in doing something or I like the idea of it, but it doesn't take me very long to realize that I'm completely disinterested because of the actuality of the thing. I'm OK with that.

I think the parent is probably trying to say that you definitely haven't done enough exploring on most subjects in a short time to find and glean all the interesting bits, and I agree with that as well. There are work projects that I would have abandoned long ago if they were personal projects that I have got A TON out of by sticking with them and working on them for years. But in those years there has been a lot of slog as well, and it's probably not the optimal way to mine all the knowledge nuggets...


> “If you are no longer interested in a project you started, maybe you already got what you came for.”

I found a method for this which works for me. I have a book labelled "Ideas & Inventions" and when I have an idea, I write down everything that suddenly hit me, and I keep writing until I feel I have exhausted the idea. If the idea then goes, I leave it in the book. If the idea remains, I write about it again, until, if it remains and I have to implement it, I do so.

Sometimes it will be a game idea (I've spent time as a game dev, the last idea cost me a couple of years & my family before I realised it wasn't worth it), sometimes it's an invention (electronics, mechanical, or both), and sometimes it's just an idea in general.

I find that the feeling that I have to make something is my way of preserving an idea, and to simply write down the idea often fulfils this need. And of the many ideas I write down, only the ones which really matter make it past the notebook phase.

Hope this helps others out there, and if you do try this method and find it helps, please let me know!


Thanks for the tip, will probably try to rewrite the idea myself.


I dare to suggest meditation. We all get X number of ideas/thoughts/images/etc flying through our brain every waking minute. To be able to focus and do "deep work" we need to either break through the noise/clutter on our minds, or meditate/use yoga to teach our mind to be "quieter". I managed that after "a while" with Iyengar yoga (I assume that most types of yoga will do) but I liked this one better for its discipline.

For the question, another simple way is to dedicate "X amount of days". Increase the "5 minutes" to "5 days". 5 minutes can be misleading. 5 days is enough time to (for sure) know if you want to proceed or drop. You can try your period to be fewer or more (days), but definitely NOT a 5-minute-cycle.


If you weren’t that serious about making a rogue-like in the first place and what you really wanted was the rush of starting a rogue like project, then sure you got what you came for.

Much like a kid might say they want to be a footballer or musician - what they really want is the fame and recognition of being a footballer, not the 6 hours of intense training every day for years without any fame and glory. We see this much more in tech than we did 10 years ago, because now everyone wants to be a rockstar CEO hacker startup founder making a $1 billion exit at 19.

And in fact in some cases you can suck it up, major in CS, get a prestigious tech job, and then after a few years burn out because you realize you never really liked CS/programming in the first place, you just liked the social stickers that were on it. I’ve seen it happen many times in my career. Often these people will pivot to being PMs or some “tech lite” function and be much happier for it.

The fact that people suck at knowing what they really want doesn’t make the observation any less valid.

What that means is that you have to get really good at knowing what you actually like and enjoy - not what you enjoy on the surface of it not for its own sake, but for some values attached to it.


If this is a pattern that persists throughout this individual's life, it's highly correlated with ADHD. We're talking about someone who literally changes their mind within about 5 to 10 minutes, multiple times a day. At least, that's what would happen to me pre-diagnosis.


You don't necessarily need ADHD for this to be a trait. Source: me. I don't change my mind every 5 minutes, I just lose interest in certain projects.


I can relate this to part of my experience picking up stuffs and putting down in a couple of weeks.

Sometime I can feel that I'm in this or that because of some ego or future bragging and they dropped dead quickly.

But then again this probably roots from my childhood as I tended to appease to my teacher or parents to do a lot of things I don't enjoy. So it's really difficult to tell nowadays if I really enjoy doing this or not.


I read "five minutes" as being hyperbolic, but it could simply be a rapid deflation of interest even without gaining new knowledge. I've read about creating a roguelike but didn't have the interest to really go forward with it.


> If you are no longer interested in a project you started, maybe you already got what you came for

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.


> I'm probably not the guy that would have devised a strong marketing plan, beat doors down or cold-called for sales

Ever considered pairing up with someone from a nontechnical background?


I've tried a variety of things. The first big step once I realized that I was sloughing off the boring bits was to try tackling the boring bits first. Start with a basic app that included user registration, an empty FAQ page, etc., but that generally meant quitting the project earlier rather than later. Then I thought well, maybe I'll just build up a library of reusable components for that, but hey guess what? That stuff is boring

So, that's the long way around, but yes, I have partnered up with people who might compliment my lacking skills, but it's tough finding people motivated enough that I feel like I'm letting them down if I don't keep up. I'm generally great at getting projects going through the hard bits, but in my experience, most other people fall off or lose interest in the project before it even gets to the point that I might.

To date, the only thing that reliably ensures I'll complete a project is paying me to complete a project. Weirdly, if I'm getting paid for something, my mind doesn't suffer any of these ailments. I will still cherrypick the most interesting work to do, but if there are features with deadlines, so long as there's money in it, I have no problems getting myself back on track.


I'm exactly the same way 100%. I've gotten incredible things done at startups and companies, where my work alone was floating the companies, and the products I created became the main product of the companies.

But every time I realize "Why am I handing someone else all this value", and venture out on my own, I can't seem to motivate myself in the same way. It blows my mind and I can't seem to figure it out.

Maybe I need to invent an imaginary supervisor to report to at the end of the day.


> Maybe I need to invent an imaginary supervisor to report to at the end of the day.

Heh, someone had that idea too and turned it into a startup: Boss as a Service https://news.ycombinator.com/item?id=18512197


That struggle is real. I've got a ridiculous amount of half-finished MVPs that I simply got bored of. It often makes me feel like an absolute failure, especially when I've told others about something I'm working on. When they ask "Hey, how is that project X you were working on 3 months ago going?" I'll have to think about it because it was probably 3 projects ago.

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.


> in my day job people are often blown away by how I seem to know a lot about everything

This has made my meandering journey worthwhile as well. I don't have many completed projects under my belt, but I have gathered quite a bit of design and coding techniques, different languages, technologies, etc.

The one completed project (completed in a programming sense, but not a business sense), was one that was done just quick and dirty with no patterns, no architecting of any kind. I resolved to not learn anything in the process (besides understanding the dataset I was parsing for human consumption). In this way, I was able to actually "finish" something. That said, I did learn about deploying on digital ocean, about the importance of having a repeatable deployment process, etc, so it was actually a good learning experience in the end.


I’ve been working on the same project for over 15 years. It’s been written in C, C++, Python, Ruby, Java and Scala. It had an XWindows front end, Swing front end and now a simple web front end (but there is talk of moving to Vue or React.) It ran on the local machine, then shared web hosting, and now AWS. It’s used flat files, SQL and Mongo for storage.

Currently it’s in the shop because I decided to rip everything into microservices and deploy it using Kubernetes.

Along the way I learned 2 things. First, I like solving the same problem over and over again with different technology. You learn both the new technology and uncover aspects of your problem you hadn’t seen before. Second, it’s important to release. I’ve got a website with 75% of the links broken, and the only visitors are me and the googlebot, but it’s released. There’s an artifact I can show my wife or my brother without firing up an IDE. It makes a big difference with respect to a sense of accomplishment (despite the broken links.)


That's awesome! Maintaining the same project over 15 years, having gone through many transformations, has got to be an incredibly valuable experience.

I always try new problems with new technologies, but I can see the benefits of sticking to one problem over and over.


I feel this comment. I always have multiple stacks of physical drawings and notes for different projects that I'm working on but don't always finish.

However, the best thing about all of these unfinished projects is it gets easier and easier to learn different things. Even when my interests don't have overlap they seem to add value to each other.


> half-finished MVPs

What I would give to have half finished MVP's! I have a long list of ideas that I can't decide which one is the most worthwhile to pursue, so none of them get started.


at least you don't waste much time...


I feel your pain.

If we can minimize the amount of time & effort it takes to go from idea to launchable MVP, then all of these side projects and future ones suddenly become significantly more viable.

I wrote about this goal in-depth here: https://blog.saasify.sh/finding-your-passion-as-a-developer/


> “If you are no longer interested in a project you started, maybe you already got what you came for”.

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.


This is exactly one of the tips the book provides. Good validation of the book I guess.


My "projects" folder on my PC is scattered with numerous projects that I've started and never finished. These range from games, tools and webpages - written in every language that I found an interest in.

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 :)


> The final 20% of a project is always the hardest for me.

I'd be more than happy to get to the 80%. It seems like I used to be able to do that when I was younger. It could be that I aimed lower.


I like the saying I read/heard somewhere, that's I believe based on Pareto principle, saying more or less: "After getting through 80% of a project, what's left to do, is just to complete the remaining final 80%" :)


My pshrink told me the same "maybe you just like to learn the new technique, not to finish". Like that I have welded a ton of steel into a carport, then left it unpainted. Given the fact that I always focus on the hard parts and the struggle to finishe the "details" and that throughout my career I've been inclined to do POCs, MVPs, and never finish things. That and the fact that every single day it takes me several times to cross the door because I forget the wallet, keys, phone, etc, make me wonder about ADHD Is there a "cure" for it or is it just a label to get and use as excuse?

edit: I got bored of the pshrink after 5 sessions


ADHD is absolutlely a real thing, it is treatable, and there is a large adult population that is undiagnosed. If you're struggling and you suspect it may be related to ADHD, you should look into getting tested.

My girlfriend got her diagnosis just a couple years ago (she's 38 now). The impact Adderall has had on her organizational capacity is immense.


Hmm I do have ADHD but your first statement "learn the technique, not to finish" definitely could apply to me both in technical (software engineering and coding) areas of my life as well as artistic (music, recording, mixing, etc.).


ADHD isn't an excuse, there is treatment.


Awesome thanks for the book recommendation, just picked it up.

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.


>Except for lifting...for whatever reason I've been obsessed with that for almost a decade now.

My hypothesis is that exercise, especially weight training, is one of the few activities where the growth curve is front-loaded with improvement. The phenomenon of "noob gains" provides positive feedback much quicker than other activities, and that feedback is much easier to get--just look at how much you lifted this week compared to two weeks ago, or how fast you ran that last mile.

By the time your gains start to slow down--whether that's six months or a year from now--you've already developed a habit.


In my twenties, with no responsibilities and with some money, I thought to get a motorcycle and learn to ride it. I stopped when I looked at my room and saw the vast number of things I was already dabbling with and deep-diving. I knew that if I got a motorcycle it would consume my interest for something like five years as I had to understand how every single part worked down to the bolt.

That could be a great thing. But for me, then, I didn't want to go into suspended animation for half a decade and wake up with deep motorcycle knowledge. So I completely dropped it.


I totally have the same issue. Now that I know this pattern about myself, I pause before doing anything because I know that the n-th state is me stopping the project. But I’m learning to push through and just engage in projects, because the paralysis is way worse for me than the doing and stopping.


Similarly I've managed to stick with lifting, and cooking. The others aforementioned have faltered, but I am finding enjoyment in reading and research, and games. I think when I've reduced the pressure on myself to produce creatively at my leisure, so too has the stress. But I still do want to be creative.


> “If you are no longer interested in a project you started, maybe you already got what you came for”.

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.


This seems to be answering "how can I stick with a side project?" with "you don't need to." Maybe it's good advice, but OP specifically emphasized asking folks how to finish.

> Has anyone else experienced this, and, more importantly, found their way out? How?

[emphasis mine]


In Myers-Briggs they'd call that either the INTP or ENTP type.

Similarly, I'm more interested in research, learning. I'm in the wrong profession.


INTP here. Starting projects and having multiples at once sure seems comfortable, but, ADD does not. It is a measure of rigor that there are projects that get done. Now, there's something to be said for projects that were always "low priority" and are waiting for the right moment, but there are also ephemeral, same-day kind of projects that come from having the tools/resources available to you to scratch whatever itch you have.

IMO, OP's problem isn't that he/she can't decide which side project to do, it's that they have already decided that the side project involves coding, and they're already a good coder. Doing your job as a side project seems...boring. Pick something you don't know how to do, but wish you did. Learn CAD, use a bandsaw, 3D print a D20, or just take your bike all the way apart. This idea that every software engineer needs to treat software as their hobby is frustrating to me. Bankers, lawyers, and doctors don't do that, why should software engineers?


I think the origin of this idea comes from the time when personal computers started becoming available, and a generation of then young people started tinkering with them.

Some of us then went on to do some version of this hobby/passion professionally. In that case, having software side projects doesn't seem so weird.

Analogies that come to mind are folks like climbing instructors and mechanics, who also may have had these activities as fun hobbies before making a living at them.

Nowadays there is a higher percentage of folks who got into software (or hardware or whatever) the same way the bankers, lawyers, and doctors did; it was presented as a good career choice if they learned it.

I agree that expecting those folks to have side projects is unreasonable.


I can agree that yet more coding as a hobby is the dullest thing imaginable, when it's your job. Honestly between reading/research, gaming, music and exercise/outings my leisure time fills up quickly enough. That being said I had long clung to the idea of having something to show, a creative effort. I've tried writing and that's been sputtering.


And in Ayurveda it's called a Vata mind!


I always attributed this behavior to undiagnosed ADHD, but "Scanner" is a, unique but fitting, group I never heard of. Thanks for sharing!

Zoom Party would be great! ;)


...unique, unresearched, vague, made up, not treatable unlike ADHD, but lacking in negative stigma because it’s new and exciting and therefore even more likely to appeal to someone with untreated ADHD...


> “If you are no longer interested in a project you started, maybe you already got what you came for”.

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.


I'll definitely get the book.

> “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.


In my side projects I always keep todo.txt. There's a line for each thing I need to do, in order. Putting new things in that file and removing ones that get done becomes a kind of game. Try that on whichever idea you find yourself coming back to again and again.


I'm in the same boat. Another thing I've realized is that while my interest may jump between half a dozen different things, if I just let it run its course, it tends to circle around. I.e. I don't leave an endless trail of projects in my wake, I revisit different ones as that interest rekindles. But before I realized this, I would be really hard on myself about switching, trying to force my interest to sit still, which really just killed my interest in all of them.

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.


I can recommend this book, too. Most helpful for me was the concept of the scanner personality.

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.


Yes, but I think successful entrepreneurs know when to move on, when to pivot and when to stick with it and PERSIST. I have quote framed at my desk that goes something like this:

"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."


Hey, I just wanted to say thank you for this comment. After reading it I started thinking about what I want from my side projects and realized I need to, among other things, to switch the focus from "what will happen when I finish this" to "what will I learn along the way" and to provoke my curiousity. I've been much more focused the past few days, hopefully it sticks. Thanks!


I've got this problem except with learning / studying.

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.


> "If you are no longer interested in a project you started, maybe you already got what you came for"

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.


I’m also just like you. So much so that what you just described speaks volumes to me. I’m going to read the book you just recommended. Thank you!


Also, I’d love to share notes with you or others because I haven’t met a ton of people that struggle with this. Zoom party?


I used to be a lot like this too. Eventually I got tired of it because I felt like I never had anything to show (mostly show to myself and feel proud of).

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


I might also add that you may want to scope your projects small. If you try to boil the ocean, you'd never get done.


This speaks to me on an almost spiritual level, I need to get this book!


Yeah you're getting dopamine.

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.


I've finished loads of hobby projects, despite full time jobs, and I've been told that I'm a bit of an expert on this. I see there's lots of comments already so I'll keep it short.

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.


My answer takes from the Feynman approach to problem solving: have several projects laying around that you could easily pick back up to work on a little bit. The progress may not be constant, but it builds over time.

This is a variation on the parent post's suggestion of picking a project you can finish in three days. I find that task can itself be hard, and is work that gets in the way of the fun work. In the past I've burnt out my excitement while trying to do it.

So I have 5+ small games, a game engine, an interpreter and a compiler, a few short stories, some music projects, a personal website, some art projects, and several books to read, and most aren't done.

When inspiration strikes, e.g. I'm feeling musical, I open up my music folder and click around a bit. Or if I feel like making a game, the first thing I do is go play one of my existing half-built games, and pop open the editor. It is helpful here to leave things in a working-ish state and keep ideas around in text files about what you could do next. Make picking the project back up easy for yourself.

I do also start new things or decide not to come back to old ones, but I wound up here by realizing that my interests aren't actually infinite. There's only about a dozen distinct things I really want to do and periodically get excited about.

For years I had been starting and then totally dropping projects, but I had "started making a game" a hundred times. My plan became to treat random projects like turning a ratchet, and I feel it's gone great from there.


I do a similar thing where I keep a list of things I'd like to do in a list in a markdown file. I put subtasks on them, check those off, and eventually, when the product is done, it gets checked as done. This gives a great sense of accomplishment.

Choosing what to do is a challenge for me, so I created a task chooser for when you have trouble deciding what to do next: https://github.com/RobKohr/weighted-task-chooser

And you can assign weights to the different things. I usually run it a couple times until it tells me something I feel like doing.


Honestly the goal is to just write everything down. When I had been working on some too big to swallow projects during highschool I had lots of ideas but I couldn't implement them quickly. What happened is that by the time I was done with one major feature I had already forgot all the cool features that I planned in my head. Now I just write everything down even if my issues in the ticket system consist of just a title with no body. That way you can stop working on a project for 2 months and pick up right where you left it. The projects end up having a 50:50 split between issues and actual commits. In theory it also makes it easy for other people to contribute.


I'm picking up this approach


> I prefer not to talk about my future dreams for a project.

I feel this way as well, but my reasoning is different. I do much better work when I feel like I don't have to do something, but I can choose to do something. I've almost always done more efficient work on my own side projects than on the things I've been assigned to do.

When I talk about an idea that I haven't really built out yet, it creates a sense of obligation to do that work. That sense of obligation makes me not want to do the grunt work required to get the project done. I do better if that obligation is all internal. In that sense, writing in a journal about my ideas and vision is much more beneficial to me than talking with people about it.

That said, I try to be careful about recognizing when I do need to talk with others. If I went too far in the internal approach, I'd end up doing years-long projects without ever validating that they're meaningful to other end users.


This is good advice, and both parts rely on being aware of your own mind and even tricking it a bit. This reminded me of a Moxie story about nearly dying while sailing [1]:

> Strangely, I could feel myself drawn towards the temptation of giving up, even though I knew failure meant certain death. In hindsight, I think it's because the act of giving up feels so similar to the sensation of success, at least in a superficially immediate way.

Over the years, the mantra that "giving up feels like success" has really helped me not give up simply to access that feeling.

[1] https://moxie.org/stories/brink-of-death/


With regards to point 2, I seem to remember reading once that if you allow yourself to think too much about success in the future, it steals away your motivation to complete the task in the present. It gives your brain that satisfaction without actually having succeeded at anything, and then you stop trying because you are no longer motivated.


#2 so much! When I tell people my ideas I can feel the motivation dissolving. Trouble is, my ideas sometimes suck and I need another person to tell me they are good. But if that person doesn't get excited about the idea it takes the wind out of my sails. I think this speaks to why I became a developer in the first place; I want to solve people's problems. I want to be useful. If I tell someone my idea and they aren't interested I feel like everyone will feel the same so it must be a bad idea. But what if they are right. Do you ever finish a project only to find that nobody cares about it? Isn't that worse than not finishing?


It depends. It is not worse than not finishing if one learns from the experience. Secondly, personal projects do scratch some itch and bring a certain satisfaction and if if others appreciate it then that's a bonus.


Point 2 is such a golden piece of advice and so obvious in hindsight, yet this is the first time I've encountered it online.

If you have any online written pieces or blogs, please share them.


>Peter Gollwitzer, Paschal Sheeran, Verena Michalski, and Andrea Siefert published an interesting paper on this topic in the May, 2009 issue of Psychological Science. They argued that important goals like pursuing a career path involve a commitment to an identity goal. ...

>They suggest that when people announce an intention to commit to an identity goal in public, that announcement may actually backfire. Imagine, for example, that Mary wants to become a Psychologist. She tells Herb that she wants to pursue this career and that she is going to study hard in her classes. However, just by telling Herb her intention, she knows that Herb is already starting to think of her as a Psychologist. So, she has achieved part of her identity goal just by telling Herb about it. Oddly enough, that can actually decrease the likelihood that Mary will study hard.

https://www.psychologytoday.com/us/blog/ulterior-motives/200...



Not a written content, but Derek Sivers' TED talk https://youtu.be/NHopJHSlVo4


A friend of mine said to do a successful software product you need three kinds of developers. Skip one and you will likely fail.

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.


I had two cofounders, and this is possibly the best description of how we operated... each with a different timeline and focus. Although I can't say that it ended well between us


I really like that three kinds of developers take. I've never thought about it in that light before but it seems to ring true in my (albeit limited) experience. And I'm definitely a kamikaze as well.


Since I haven’t seen this in the comments so far, I’ll suggest that you begin to reflect on what’s truly meaningful to you. It sounds like you’re able to have a lot of ideas that aren’t particularly meaningful, which are probably ideas you got from the values of your cultural environment. So try reflecting on the following prompts: what kinds of experiences do I want to help people have, that would be truly satisfying to see? What moves my heart and gives me energy to keep going?

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/


I have been contemplating a similar change. The dynamic for me is interesting. When I go deep into tech studies or projects I eventually feel a what-is-the-point energy take over. When I go deep into exploring the mental/emotional/spiritual my engineering creator brain will eventually agitate.

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.


just read your "why I quit" blog. thanks for documenting your journey as it will help other travelers give themselves 'permission' to explore new paths.


Agreed, another one on this topic is here: https://medium.com/@dvassallo/only-intrinsic-motivation-last...


You’ve already done step one: realise the pattern. Step two is don’t do the new project. See it for what it is, not a great new idea, but another step down the road you’ve been walking down for years.

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


It's funny because I did exactly that (sticking to one project instead of jumping from idea to idea) because I had the same problem as the OP, but these days I'm getting the feeling this is also counterproductive. I spent a lot of time on a single project, learned a lot of things along the way, but progress was very very slow mainly because it started to feel like 'work'.

For me, these kinds of side-projects are all about learning new stuff, and sometimes to scratch some really small personal itch. So what I try to do now is to find projects that can be used a platform for trying out new stuff. For example, I've been working on an iOS game since 2014, but by now actually finishing it so people can play it is completely secondary to the personal satisfaction of incrementally refactoring and repurposing parts of the engine, using techniques and technologies that interest me right now. Becase even that started to feel like work at some point, I decided to also start some other side-projects that go in completely different directions, so I can switch depending on my mood and make slow but steady progress in each of them. I try to also incorporate some technology/techniques that pop up around my daytime job but which I never have time to explore at the office, some of that stuff is super interesting but I cannot justify spending company time on it.

I think the main advice I have for the OP is to find one or two interesting projects that are diverse enough to be a platform for experimentation, instead of some very narrowly focussed problem that will inevitably start to become boring sooner or later. Unless you really want to create a product or something to show off with, the main purpose should be personal development/intellectual satisfaction, not reaching some predetermined goal.


> I spent a lot of time on a single project, learned a lot of things along the way, but progress was very very slow mainly because it started to feel like 'work'.

Can relate, my personal solution was to talk about the project to people around me (often non-technical), some would be interested to try, and when I feel like giving up, they are the one reminding me they are looking forward to use it.


> find one or two interesting projects that are diverse enough to be a platform for experimentation

This seems promising, thank you!

Just a question: don't you risk to get stuck in a perpetual refactoring/rewrite cycle?

[edit: fix formatting]


>> Just a question: don't you risk to get stuck in a perpetual refactoring/rewrite cycle?

Yes, definitely, it’s actually all I’ve been doing on one of these projects for the past two years. Guess I just like refactoring a lot it seems ;-)

Joking aside, refactoring is a broad term. Most of the time spent ‘refactoring’ this project was to incorporate interesting new ideas, increasing the capabilities of the game engine etc. Not just the typical technical debt cleanup. But even some of that was actually very educational, for example I found out that the whole idea to use object-oriented programming techniques to model the game was a bad idea, and have slowly refactored the whole thing to a hybrid between OOP and an entity-component system. Just the act of incrementally applying such a fundamental paradigm shift while keeping the engine mostly working was quite an interesting challenge!


This is fantastic advice.

Just because we could possibly code some amazing concept project, doesn't mean we'd enjoy it. Or that it wouldn't end up causing us huge amounts of stress.

A lot of us are stuck at home, bouncing off the walls and feeling like we're not doing anything.

THAT IS OK!

We're in a world that is both scary and new, we don't know quite what is going on, and we need time and effort to process that. By "effort" I mean intellectual, spiritual, physical, and emotional. (If you're not religious, think of a workout in a gym: spiritual effort is stretching and flexibility, and emotional effort is strength/weights. Or perhaps that spiritual is subconscious and long-term, while emotional is conscious and shorter-term.)

tl;dr - too much heavy shit happening, don't overburden your head.


Hey OP, I have been exactly where you are, about three years ago, and now I have a backlog of completed side projects of varying size that I am very happy with.

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.


Yeah, this. I'll add:

Keep a todo-list/journal sort of thing and document each work item as you complete it.

I'm working on a stupid side project myself and every day I hit a new hurdle, something I don't know, so (almost) every day is a tiny victory over some immediate problem.

Make a plan, sure, but break it down into tiny pieces, even if you have to keep lowering the bar.


Get people using it. Period.

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.


> Get people using it. Period.

Or find people that code with you, like a hackathon.

I recently wrote an application https://wintermute.app that tries to connect coders.

@corecoder Maybe you can find a project you want to participate in? Or at least you find some first users / supporters for one of your ideas.


I second that.

To combine with "starting small" it can be a simple single-page app, or a blog post, or anything. At least for me, feedback is the fuel (even negative feedback >>> no feedback).


> Get people using it. Period.

This is a good TL;DR


I’ve been employing a tactic I’ve picked up from artists/authors: don’t talk about your project.

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.


I've come across this tactic, I think there may be some psychological studies backing up the suggestion.

There is an opposite suggestion that may work too: telling others you're planning on _releasing_ an app at some date (setting a public deadline). This way you may feel pressure (to avoid the pain of 'losing face') to complete it on time.

Note, do not talk about "I'm working on this thing" (see comment above why that may backfire), but instead talk about an explicit deadline you think you can hit.

Needless to say, this is best when talking with people you expect to interact with in the future (so you feel responsible to finish), it may not help psychologically when talking to someone you'll never see.


I read that in the section Commitment and Consistency of the book, Influence - https://sites.google.com/site/724ecialdiniwiki/home/commitme.... If you commit to something publicly to someone especially written, you are more likely to do it.


I have battled this since programming became my profession. Over years I was trained to create in ways that maximize income, and stop when there is no income link. Decades later, this made working for passion very difficult.

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.


When you're imagining a rogue-like use a piece of paper and some fat markers and make some of its artwork. That's where it starts. Not with downloading a graphics library. Not with configuring Travis-CI. Not with >git init. Those are pretend work. They are non-progress. They are not creative work. They are not hard. The hard thing is doing something poorly. The hard thing is barely making progress. The hard thing is opening yourself up to someone saying "that's inefficient." That someone is usually you. Good luck.


Focus on solving a problem. Find something you actually care about and need to make instead of something that you think sounds cool or that you think might make money. Let those things happen organically. If you actually solve a problem people will tell you that it's cool, and they might pay you for the solution.


> Find something you actually care about and need to make This is my problem. It's hard to find something that I care about enough to spend time working on it. When I start on something that I do care about, I often find something that already exists that does what I wanted to make.


Do it anyway. Or think about how you can improve it. If it's open-source look at their code and collaborate with them.


Maybe work on personal discipline, also I’ve noticed with myself that sometimes a lack of motivation can be confused with a lack of understanding. The more you practice your tools the longer you’ll go before you get badly blocked and give up, eventually you’ll have projects that you can hack on for years.

Here’s what worked for me:

1) pick a language (it doesn’t matter, C, python, ocaml) and just start writing small things in it. Do this so much that your inner monologue starts speaking the language, that you have an uncontrollable urge to sit down on Saturday and barf our thousands of lines of bad code in it the way you might write a rambling post on tumblr.

2) understand problem decomposition: practice OOP for the broader application (you don’t need an OO language just use it to break the problem down, write UML if it’s your first couple times) and FP for smaller problems.

3) practice discipline. Clean your room, do your laundry, make your bed, wake up at the same time every morning, go for a walk every day, keep a house plant alive. It’s almost unbelievable how much this discipline with small things can make you more focused and less compulsive.


The point 3 really helped me to see some improvements. When I complete those little tasks in the morning, I get the necessary boost to get the next things done.


As someone who has been failing on side projects for over 20 years, I feel qualified to answer this question.

  - Have one private repository for random projects
  - Work in private repositories for random 
    projects that progress.
  - Move to public repositories when the project
    gets somewhere.
These tips above make failure cheap. Success is built on the many failures.

I also have general tips on side projects that make them more fun and less like work:

  - Use a different editor/ide to $job.
  - Use a different programming language.
I also have these general tips based on mistakes I made in the past:

  - Read other peoples solutions on github. Its inspiring.
  - If you get stuck take a break. Its not work and you can slack.


You describe focusing on the solution. The inspiration to make your solution generally feels great, but doesn't endure. On the contrary, you'll get caught up in more and more solutions because you're mostly satisfying fleeting whims.

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.


The first thing I'd suggest you do is understand why you want to do a side project at all. Unless you have a specific goal you want to achieve and you actually value that goal, you'll have a hard time convincing yourself to do the work you need to do to make it happen.

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.


1. The WHAT should be something very important to someone else.

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.


I second this, for my current side project, I felt like giving up many times, but the thought that someone is depending on my work made me continue.


Maybe you need to examine what your true goal is. Why do you want a side project? Are you doing it because you feel like you are supposed to have side projects, or because you actually want to accomplish a goal? If it's the former, you could try to align the side project with another goal of yours - say learning some new language or framework.

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


> Maybe you need to examine what your true goal is.

I think that's absolutely the most important factor here. People don't finish things for a variety of reasons.

Perfectionism is a big one. It's tied to a fear of failure that manifests as losing interest. If the root cause is perfectionist tendencies, one thing that can help is to collaborate with others. Just doing something for someone, helping them out in some way will often de-fang the perfectionism and self-criticism and drive you towards something tangible.

It could also be boredom. If you're doing X at work day-after-day, maybe it's not a great idea to also do X as a side-project?

I personally am allergic to SMART criteria-- too much association with corporate performance evaluation fuckery, it kills motivation and creativity for lots of people.


With portfolios it's perfectly ok to take existing ideas. Especially for learning purposes there is no way around duplication.


I have similar questions how people stick to projects and get them done. And how can I do the same. I have so many unfinished ideas, abandoned projects that I got tired of this. And after a year I have an answer with a prove.

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.


I faced this. Start a website then lose it because I would be losing interest in few weeks.

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.


You must pick something that is really meaningful for you in a way that will make you feel good seeing the progress of the project you are working on. What would a Roguelike have to be to take your full attention? How a strategy game you really love has to look like?

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)


Came here to say this basically. If a project only has surface level interest, I'll never finish it. The only projects I've ever finished are ones that I found that would be legitimately useful for me or other people. It has to solve a problem that, like you said, is meaningful.


This is common for most people, at least in the beginning. This is the nature of creative projects because it's just always going to be easier to think of an idea than execute it.

1) you have to recognize that the dopamine rush of new ideas will not carry you through the project to completion in the same way it drove you to start. Inspiration is useful, but it's fleeting or at best inconsistent. The sooner you stop relying on inspiration to last, the sooner you'll learn to find other ways of motivating yourself. That being said, it's useful for inspiration to fade. This can help you decide the difference between a project that's really useful or was just an idea you had that is not necessarily worth your time.

It also depends on how you work. Some people prefer long bouts of work and long breaks, others prefer a little bit each day. It doesnt matter which or both you try, just keep moving forward.

2) Nearly everyone who creates things has way more ideas or unfinished projects or projects that didnt work out than completed projects.

3) finished projects rarely end up the way you expected and wanted in the beginning. The sooner you accept this the sooner you can be flexible throughout the process to bring what's feasible to completion, rather than an idea that hit many snags

4) related to #3 is learn to recognize asymptotic progress. In other words, many projects are never "finished". You'll always have more to add, and that's ok. You can keep adding, but dont let that hinder taking a break or showing version 1 to the world. Recognizing "good enough" is important


Find a problem you want to solve for yourself and then build a solution.

I created https://myhikes.org as my side project in 2015 because I hated the existing public trail platforms at the time - a lot of things have changed since then, but so has my skill set, data set, the way I write, the way I think about features, the way I weigh pros/cons of features and time.

Don't aim to solve the world's problems or make money with a side project, aim to make your own life easier or more enjoyable in some way. You never know what will come of it later if you continue using, building, and growing your idea.


This is a great question and one that often goes unnoticed: I observe my optimal work habits and patterns, instead of seeing them as a drawback, how to turn it advantageous?

If your optimal flow is 2-3 days spurts on mini projects then think of a big project and break it down into these mini-projects. If you can build one power ranger, you can build the mega ranger, just thoughtfully break the tasks into pieces first.

More importantly, you need a topic you are passionate about, and then you can use all your computer knowhow to make tools with that domain as a central focus or backbone. Again, you don't even have to stick with the same toolkit as long as you can break your work into meaningful mini projects.

Celebrate and rejoice when you complete mini projects, and keep your eye on how satisfying it will be to make big projects come perfectly together. If it took many people many days to build the pyramids, it will probably take one person a while to build one. I don't think that's unreasonable, the key is staying motivated. Come to the desert and leave with a pyramid


What happens when you play video games?

For me video games are fun and easy to focus on day after day.

I realized that this is because video games have done a very good job of defining a goal --> FTL (my current favorite) == get to the final sector and destroy the rebel flagship. The goal is clear and you 100% know when you're done.

I've learned that I used to be really bad at defining goals. I'd say things like... 'I want to make an XYZ sort of thing'... but that's not a great goal. It's kinda vague... have you 'made' the thing when you put down 10 lines of code as a prototype? When will you be done?

If the goal is unclear I feel --> 1. like I might be signing up for an everlasting slog 2. like I'm not really sure how to win

So I find that I need 'delivery' goals --> 'my app is in the app store' or 'my article was published'. When you work for someone else this is the kind of goal they give (when will you ship XYZ) and you probably always make those.

Hope this helps!


This is exactly me.

You not just need 'delivery' goals, but small goals as well, like missions in a game. Where you see you are progressing.

Also in videogames you never hit a wall, you never have to fight a boss that impossible to beat at your level. Side projects are more like those pay to win games. Where the first part is easy, but after that, the progress can be slow. You have to get a big reward (for me it is usually scratching my own itch) to make the grinding part work.


There is one very simple piece of advice that I have found helps me with this:

finish.

It doesn't matter how small the finish is, but whatever it is, at least get it to a point where you have something finished. If you are writing a book, and you want to switch, finish the outline. If you start a chapter, finish it. If you start an app, have at least a hello world page up.

If you don't feel like working on it now, and a new idea pops up, feel free to start the new idea after you finish. Practice finishing just as much as you have practiced starting.


I resigned myself to writing ideas and keeping side projects small but sharing my ideas anyway. Every thing is harder than it looks.

https://github.com/samsquire/ideas2

https://github.com/samsquire/ideas

https://github.com/samsquire/ideas3


For me the solution was to remove motivation from the equation.

I had to tell myself "this is your job now, you have a part-time job that starts after supper." And then show up for work every day (or every other day).

As long as you keep showing up for work, the work eventually gets done.

I started thinking this way in late 2013 and shipped the 1.0 of my first successful side project about 6 months later.

People who don't ship will tell you that side projects shouldn't feel like work, but you can ignore them. Shipping feels fantastic.


Part of why people can’t stick to projects is because their way of self-motivating is too critical in nature and the emotional life rightfully pulls out of anything where the ratio of +/- reinforcement is skewed too much toward abuse and threat.

Rather than turning to self-loathing and criticism you can interpret this resistance because you have not yet figured out how to encourage and motivate yourself.

Find a way to get yourself to not feel under threat of failure and you’ll blossom


Have you considered the possibility that you may have ADHD-inattentive-type?

There are online tests based on DSM criteria that can show you if it’s worth looking deeper into, such as this one:

https://psychcentral.com/quizzes/adhd-quiz/


I do score quite high (total 44, inattentive scale 19, hyperactivity/impulsivity scale 25), yet I'm not convinced: at work I almost always manage to get things done well and in time, and I'm generally considered accomplished by my peers and managers, though maybe strange and over the top.


Yeh. That’s a significant finding. Honestly.

People with ADHD can most definitely be productive and generally considered accomplished. They just tend to have put a lot of effort in, their whole lives, in order to get there, and may have developed a lot of cool techniques to get there. Treatment itself is about improving these techniques (and finding helpful medications, the two parts work together.)


Thank you very much.

I'm quite scared of medications, tbh, but I'd very much like to explore improving techniques.


The stimulant caffeine is a popular alternative (provided you’re not overly sensitive to it [it can cause heart palpitations and anxiety], and don’t take it too late in the day) — lots of people use it to self-medicate ;)


Yes, I used to go really heavy on it. Had to quit it almost entirely, for both heart palpitations and anxiety.


Not to harp on about medications, but there are “non-stimulant” medications used to successfully treat ADHD as well, such as Strattera.

On the non-medicine side, techniques like bullet journaling are useful, also having “accountability partners” — friends or groups you report in with each week to check on each other’s progress; things like that.


Exercise and mindfulness also worth mentioning. Good sleep also a biggie.


ADHD seems to be a popular diagnosis in the west (mainly US).

But it can just as well be that you have depression and anxiety disorders or anxiety based personality disorders. (E.g.: Obsessive Compulsive Personality disorder which includes dysfunctional traits like perfectionism that can interfere with your ability to complete projects).

What I am trying to say is that if you feel that psychological counseling can help you figure out why you are stuck in life or some other thing in life in particular, please do not try to diagnose yourself. Go to a good hospital that specialises in mental health and get a proper diagnoses by a qualified psychiatrist.

It is very easy to go the wrong track and come to the wrong conclusion while self-diagnosing yourself as many symptoms overlap with many related mental ailments.


I used to be like you.

Back in my early career years, and even before when I was a student, I used to have a lot of cool side projects that would only interest me for so long. I would spend a few hours or days on them, and then throw them out or forget them.

It was ok because I did not care about the project in itself. It was interesting to try new techs, or methods, or just spend some time doing something I loved.

It stopped being ok when something shifted in my mind : I subconsciously decided that I wanted to stick to a project. But it was for the wrong reasons. I wanted to make money. I wanted to have a cool startup. I wanted to be able to stop working. Too much Hackernews hype. But since I did not really care about the project itself, I never managed to stick to it.

After years of frustration, I quit wasting my time and took on some other non IT related hobbies.

Two years ago, I picked a side project for the first time in years: it's a cool music theory related website.

https://www.mamie-note.fr in case you're curious.

I've managed to keep working on it (and being interested to do it) since then. It's the longest time I've ever spent on a single project.

Here are the things that are different for me today:

  - I do care about the project in itself: it's the site I wish existed when I started learning music, and the site grows as I'm growing as a musician.
  - I really enjoy the daily process of working on it, I don't fantasize about how great the end result will be in a few years.
  - I don't care about the tech, I care about the topic.
  - I'm turning the site into a business, but making a living with it will be a cool side effect, not the main objective.
  - Since I do have a family now (and we are in lockdown), I have much less time to work on it. It's easier to stay motivated when you spend two or three ours on a project instead of 15 or 20.
  - Working on this project is a hobby, but it's not my only hobby, I take interest in other things, so when I'm bored and don't sweat it and take breaks for some days or weeks.
My two cents.


Instead of tools you might need, applications you think about, and experiments, build something that you definitely want (or, even better, need). Find inefficiencies or deficiencies in your day-to-day that you can eliminate or ameliorate.

Another way is to build something that someone you care about wants or needs. Pay attention to how people close to you (especially those that are not engineers themselves) use technology, and notice when there's an opportunity to make it easier/better for them. Many great projects were born this way.


It's an explore/exploit thing. You need rewards from both. Your job focuses too much on "exploit" so you end up seeking "explore" rewards from side projects.

You explore an idea, but after you select it, you're staring down the barrel of a whole bunch of "exploit" work to do. You're already burnt out on this reward system from work-work, so it doesn't seem appealing to you. So you do more exploring instead.

My advice is to instead do worldbuilding or some other creative hobby that has only the creative exploration side.


I have a similar thing - too easy to generate an idea, too hard to move them forward. Some die after opening a code editor, some half an hour later.

First and foremost - if it is your style, try focusing on short projects - something that can be done in a few hours. But once you decide, make a rule that for 3 hours you stick for it.

For anything longer that one day, I try to find collaborators (otherwise it is impossible). Importantly, they do not even need to touch the same parts of code - it is enough that I get some stimuli from time to time. Even for things that are day long, I try to move checkpoint-by-checkpoint, to have a sense of completion.

...

In general, I really recommend diving in materials on ADHD, especially "Driven to Distraction" https://www.amazon.com/Driven-Distraction-Revised-Recognizin..., this attention-jumping may be a symptom of larger issues.

Another thing that is worth nvestigating - WHY do you quit? Is it like that there are too many ideas? Or maybe being afraid of failure. (Vide perfectionism & procrastination.)

On the other hand, I strongly object to some pieces of advice found in the thread, in the line of "if you cannot sustain attention, it means it is not worth it". Well, it might be true for the neurotypical population, but certainly isn't for AD(H)D folks.


After several years of struggling with side projects I found one thing that motivates me: money. I don't even start a project if there is no possibility of some revenue. %99 of ideas got eliminated immediately. Every people have their own motivation though but having side income from a side project even you are sleeping is different thing. I have limited time for side projects. I always think I have one bullet so trying to use it wisely.


This is certainly a useful lens through which to help you focus, but I've found that I'm now ONLY motivated to do things because of the possibility of financial upside. Have you encountered the same?


Actually speaking yes. I spent a lot of time to think about it. Here is my little thought process to keep my motivation;

Why am I working? Why am I spending my 1/3 of my time with my daily job. Is career real thing or other words is it really necessary to make money? Does it really matter to have high work satisfaction even though you earn little? I am working because of money. Money doesn't bring happiness but it brings freedom. At the end of the day what I need is freedom. It doesn't matter if I have shinny career if I can earn same money with something else. I have limited time and more money to become free. So I need to use my time wisely to get more money to become free eventually. It doesn't matter if I am using shiny programming language, technology or IDE. At the end of the day nobody will give a shit about what I am using. Quickest is the best because I have counted days in my life. I don't have time to learn new things every time I start a new projects. I already know everything I need to make money. Learning is not a goal but it is a reward when I become free.


I keep a log for each project and write down the problem I'm trying to solve followed by the idea I think solves it. If I hit a roadblock, I write that down as the new problem. Now I have to solve that before I can pop the stack and get back to the original problem.

On and on and on. I might be building a CI/CD pipeline for a simple web extension cuz I've realized that manual deploys of it are boring and it's keeping me from updating the project. Once that's done I return to the original problem and geez it's annoying to work in this vanilla js project structure. Let me just set up a transpiler and organize the project...

I call it extreme yak shaving, cuz you do things you could never justify in a workplace, but it's my personal time and it's what works to keep me going on side projects.

Better yet by forcing yourself to write down why you're blocked you can self reflect on trends. I learned that when the dev experience gets too rough on a project, I abandon it. So now I'm happy to pause project features to build out dev exp. Very different than how I behave at work, where I guess the paycheck motivates me thru the tough times.


Have you considered productizing some of these devops tools?


How do you approach planning the projects? Do you just sit and start coding? I can only guess what are the issues are with the information you provided, but I guess you discard your projects because you are not invested in them. People tend to stick to ideas they invested more time and effort.

I think you would attach more value to a project if you plan it first.

Use something to test your idea first. If by meaningful project you mean something that others can use and solve a real life problem, maybe take a look at The Startup Owner's Manual (https://www.goodreads.com/book/show/13557008-the-startup-own...).

If your idea withstand the first tests and you want to commit to it, describe in general lines what is to be done, describe some general, doable deadlines, maybe use a Kanban board. You should have at least an idea of the scope of the project before you start. Do not think about a finished, polished product. Think about something functional, that is shippable. You can polish it later.


Have you tried journaling? It lets you get ideas out (adding or remixing ideas from the previous days), without investing in getting a project up, writing code, etc. A lot of times, for me, I just want to explore an idea and I'm not actually interested in working through it. But if I spend enough days journaling an idea and I'm still interested in it, then I go for it.

The other thing that's helped me is realizing that anything worthwhile is hard. If you want to stick with a project until it's done, you're going to get bored, you're going to run into roadblocks, and you want to cultivate a sense of "this is what I want to do, and that is just a temporary issue that I will work through".

Last thing that's helped me is finding a support group. I use irc, specifically I hang out on irc.darwin.network (shameless plug, I kinda co-run it), there I can chat with people about what I'm working on, they can ask cool questions, etc, keeps the juices flowing and reminds me why a project is worth sticking to.


Re your first paragraph: What's funny is that I get almost the same effect by avoiding writing ideas down. I find letting an idea sit and stew in my head to be a good vetting process.

If I forget an idea, that's a feature of the system, not a bug. If an idea survives for a while and I find myself coming back to it often, then after a month of it being an idea I might act on it. At that point the idea is a lot less nebulous and I have a pretty clear idea of where to get started and an idea of where it's going to go in the future.


For me, writing a thing down gives me the option to forget it. People are different I suppose.


I don't have advice but am looking for some along a similar vain. I've made lots of projects in the past but now not so much and my fiction is that I'm super jaded by which I mean since I have lots of experience I know all the things I want to do are relatively huge projects and it's unrealistic to even start and further even if I was to finish it's unlikely to be successful. Not that every project has to be successful but I can't see investing 1-3 years into it if I don't actually believe it it's likely to do well.

For a small project 1 - 5 days I there's no issue. Though often when I'm finished I look back and think, "If I had spent that time working on something that had more of a future then I'd also have more of a future". Success buys freedom so when I don't pursue something with a future I have only myself to blame for having to go back and "work for the man".

So, how do I get over that jadedness and as Shia Labeouf would say "Just Do It!"


The way I deal with this issue is by writing the idea down in as much detail as possible.

I find that the process of writing gets the itch out of my brain and also forces me to go through a planning phase before I decide to commit my time to an implementation.

For example, if I wanted to make a game I'd write down the main idea behind it, what game mechanics I would implement, how I would structure the progression through the game, how it relates to other games, any technical aspects that are relevant, I'd sketch out any visual details like a map, game ui, etc.

I have a long list of semi-developed ideas I stored as notes in Google Keep that has accumulated over the years - business ideas, games, tools, etc. I have written prototypes for some, which was fun.

I find that most ideas need to simmer for a while. I'll often go back to add more details to an idea, because I thought of something new. Those are usually my best ideas, but also the ones that require the most time.


I have the same problem.. too many ideas to develop... Shiny new technologies to learn.

What I've done is:

1. Just don't do programming side projects. Currently my side project is making a couple of bookshelves for my house (Google pipe furniture). They are easy to make, require very little tools, my wife loves them... And miss importantly I have something to show for my efforts. So basically get a hobby not related to programming, where you have to make things, preferentially in service of others.

2. My other side project is a small prototype to create a startup on that. We have been working on that for 6 months (the longest I've worked on anything) the key, for me, has been have a pair programmer. A junior dev that I can mentor, while we work. I even pay him. I advertised it like an internship. So I'm very committed to that project: pair programming for accountability. Mentoring for social connection. Paying for financial commitment.


Yes I have this problem. No I haven't found a fix. One thing I do is keep a trello board of "product ideas". I have a couple hundred. I review them and move the ones I feel are best by various criteria (ease to build, value to others, income potential, etc) to the top of a "I Keep Coming Back to These" list. I only allow myself 5 on this list.

Really, I should just allow myself 1, and focus on that. I'm just so bogged down with day job and family life, I haven't done it. Some days I console myself that I'm doing the right thing keeping a steady well-paying day job and providing for the fam. Other days, I'm ready to toss it all and do my own thing. What I hope will happen is a small break in day job where I can fit in and focus on side gig.


I need an end goal with actual people using what I'm making to be really motivated. And having achieved that on some open source projects (one in particular with tons of usage, now deprecated), I need some kind of personal increase in value to hold my interest. Maybe that will change once I'm financially independent but I think focusing on increasing value is a good thing and value can mean different things (doesn't always have to be money but often is -- there is some value from being one of the big contributors on an open source project but, having been there, the value is typically seems to be very low even if you have 1M+ downloads).

That said, deploy, maintenance and support can be a grind. I like the challenge but your experience may vary.


I’m the opposite. I love to work on side projects, often getting carried away for several weeks/months until I finish them.

Once they are “complete”, I’m loosing interest and get carried away on other things, often times I don’t even publish them anywhere.

If someone wants to team up on this, let’s chat.


You sound like you like motivation.

"Motivation" is the "why?" of what you're starting. If you start a project and exhaust the "why", it's ok to stop there.

Is it curiosity? Is it want to learn something new? Is it want to check out a new technology? You could well answer these questions without actually finishing a project (it the final project itself wasn't the original "why").

If you want some real life "why"s, you could check out one of the many Covid-19 project aggregators. Here is an aggregator of such aggregators: https://covid19projects.now.sh/


What hits me is a sense of meaninglessness.

I can be disciplined enough to stick with something as part of a lifestyle, or whatever I find consistently rewarding, e.g. an exercise regimen and cooking new things. When it comes to creative projects, I'll get to the point of having a rough outline but often just ditch the rest. Particularly with music more-so than writing, the pursuit feels pointless or unimportant, and I always got the sense that the special catalyst with music is people, feeding off the passion of other musicians. I tend now to skip the BS and just go straight to composition since that is the aspect of music that most interests me.


(Apologies for being glib, and apologies for not being the exact answer to your question.)

Don't date, don't marry, don't have kids.

I approached my relationship, and later my family, with the same zeal that I approached side projects. As a result, I have very little time for side projects.

What does make a successful side project for me, is approaching it with the goal of learning something new, not finishing it.

Every other year or so I get really into something, but I've only finished one thing that had a very short-term result, It was a simple experiment where I wrote up results instead of trying to have a tool, framework, or product.


What if... Not finishing things was the norm?

All of us in the same boat act as if there is something wrong with us such that we can't finish things.

If you layed out every one of the data points on developers side projects, what would the aggregate say?

Would it say that 80% finish their projects through to completion and there are this 20% who just can't ever seem to?

Or, would it say the opposite? That people who actually have completed projects are somewhat rare?

I'd be interested to see. My gut tells me finishing things isn't normal. The economics of it seem to be tilted in the favor of starting and strongly against finishing.


I'd suggest you try spending a little more time up front defining the what and why of the project before you start. If you don't define what winning looks like ahead of time it's easy to quit 5 minutes in when you're confronted with making tradeoffs but, don't have any context to under-pin those decisions.

Additionally, don't start with big hairy audacious side-projects. If all you've ever gotten to with one project is two days. Define a project that will teach you something that you think you can finish in three days.


You are looking at the situation from the wrong angle. Frameworks and languages are tools you use towards solving a problem. In the same way that mechanics don't spend their days wondering how they will use their wrench but rather what tools they need to fix an engine, you need to focus on a problem that needs fixing. Find a problem in some subjects you like and fix it.

Also, make a plan so you see an end. Doing something without figuring out when you will quit is a sure way toward quitting before you get anything accomplished.


The only reason I completed a side project was because I had people that I cared about that wanted my side project done to help them out. In other words, I had social motivation and collaboration. For me, going completely alone on something is much more difficult because its like the tree the forest making no sound (perception) if no one is there to hear it. It doesn't seem to have that connection or impact of meaning unless I have others that care that I have direct interaction with.


Having exactly the same issue here, i have been working on many software side projects since a while (for 7 years now) and never launched a successful product. For the most of ideas i built about 30/40 % of the platform (user management, profile, authentication, backend apis, emails, architecture, messaging systems, dockerization, other stuff, blogs ...). For me the real obstacles (and what make me give up) were how to put the key features that make my solution better than others. I feel motivated and very exicited for some time but then it collapsed because i need to digg more for the best solution. Examples: 1-how to add e2e video/messaging encryption to an appointment medical app. 2- how to use sms alternative solution to web/mobile apps for farmers who don't have internet connection without using other third parties. 3- build a learning platform for kids but figure out how to provide the cheapest computer solution (raspberry based maybe) because these kids cannot afford a computer. I learnt a lot from these projects both in technical and business aspects but i still feel the imposter syndrome every time i talk about my ideas or when i see another solution similar to my idea who works just fine. But i'm sure that hard things need more hard work. Thank you for this thread.


A few techniques that have worked well for me:

- Scope the project down to a size where you can achieve it within a week. Launch it and either let it take on a momentum of its own if others are interested in it (which will motivate you to do more work on it more). The initial version of your project could be as simple as a vision statement of what you want to achieve.

- Have a personal backlog where you can put ideas for other projects you're interested in working on. Resist the temptation to just jump into your latest idea and instead write about it. If its a compelling idea you will return to it. If not let it be a passing idea.

- Practice personal Kanban where you limit yourself to X number of concurrent projects. Wanting to work on a new project can be good motivation to finish your current one.

- Team up a collaborator to help keep each engaged, interested, and accountable.

- Find ways to create artificial deadlines for yourself. That could mean signing up to do a lighting talk at the next meetup, scheduling a meeting to get feedback with an end user or person advising you, etc.

- Relax and enjoy tinkering for the sake of tinkering. Even if you don't complete a project you're still learning something from the experience along the way and sometimes what you learn is that you like the idea of a particular project more than the reality of what it means to work on it


I struggled with this for a long time, I think a lot of us do. I don't know how broadly applicable my story is, but: at a certain point I basically cracked and picked a project and said "I'm going to finish this if it kills me." It was one of the larger-ish projects that I'd made a bit of progress on and put aside. The project became an exercise in finishing things, which helped motivate me through the times when I wasn't really interested in the project itself.

It took me longer than I care to think about to complete it. I think by the end I was pretty clear with myself that I wasn't really that interested in the project itself anymore; the point was to learn to finish something.

The result is here:

https://github.com/zenhack/haskell-capnp

Somehow this actually worked, and I've found myself not having that much trouble sticking with projects when I decide I want to build something. Most of my 2019 hacking was on a new programming language, which is "close" to being ready to announce (the code is up there if you look for it, but I haven't been too loud about it since I don't know what I'd tell someone if they showed up and wanted to help), though Sandstorm got active again and that's diverted some of my time. ...and I've been hacking on Sandstorm pretty consistently since.

Keeping myself organized and on track is still a struggle, but something shifted and sticking with something long term doesn't seem as hard.


I found my way out.

The thing I had to do is to find some themes that I am idealistic about and stick to those. The project is just a mode of exploring the theme, which means that each project and my skillset grows as needed to accommodate. The projects you are describing are completely non-thematic and are just bundles of features, so of course there's no structure to them, no reason to keep going and seeing what's next. And you are probably not money-and-sales-motivated, which is the thing that drives a lot of obvious business ventures.

The first step in finding the theme is in "knowing thyself", of course - strengths, weaknesses, inclinations. Write and rewrite the set of things about yourself that is maximally coherent and self-reinforcing. Then drive down that road as far as you can go: What types of projects does that support? Gradually you'll hit on a common theme, and then you can really start building.

Another way to force this along is this art advice: "Draw the same thing every day." This is a rather crushing challenge to take on, for no matter the subject matter, you'll tire of it, but it quickly brings out your inclinations and therefore the themes you want to work with.


I've had lots of ideas like that, things I'd like to do which I never get around to. The one I did go through with and still keep working on it on and off is the one that had a connection to my job.

I worked on a very concurrent system and thought maybe STM would be a nice fit for it. I found the concept of STMs very interesting. And I noticed that, although there were many implementations for .NET, all were one-off projects, not maintained, and in my opinion not very nice to use. So I ended up writing one myself.

I guess that sweet spot for me was having a problem that I dealt with on a daily basis, which gave me the drive and a clear picture of what I'm trying to achieve, and the fact that it was a fun challenge to implement and a learning experience related to a concept that intrigued me. The other ideas I had would mostly have just that second part - they're fun, challenging, but not really solving something I deal with too often.

So, I don't have much experience, I don't have many side projects, but for what it's worth, my advice is to try to find something in your day-to-day which bugs you, and for which you have some interesting idea that you'd like to experiment with.


It's great to see so many people sharing the same challenge I have as well. As developers, we always want to build things. Things we find interesting. Maybe we "finish" some of them. Maybe we don't ever finish something because there's always improvements to be made.

"Meaningful progress" also is hard to define. One day you feel it's "save humanity level" meaningful. The other day is just lines of codes that don't work.

Some companies like JotForm evolved from a side project, but not all side project will become an actual business.

I think the reason why we even call side project a side project is because we have options.

It's ok to fail. It's okay to explore, experiment, and create. As long as it doesn't deeply offend your core values, side projects are supposed to be fun.

If it blossom into something that you can't ignore, then you will come back to it no matter what.

I wrote an article back in the days when I documented why I couldn't start a side project here: https://medium.com/swlh/this-is-why-you-will-never-start-tha...


I've been in the same boat my whole life. But I'm currently working on a side project, and I've made substantial progress on it.

It arose as a natural fruit of a daily writing practice I instituted. That writing practice itself came out of a couple of things:

1. I owned my desire to create something. Instead of guilt tripping myself for not writing, imposing the "If you only had your shit together like everyone else, you'd etc etc etc" line of thinking on my behavior, I honestly looked at myself and said, "You know, this bothers you not because you're a bad person who can't get anything done, but because you want to write. If you decided not to write anything, you would still be a perfectly fine person and you could live a happy life."

2. I let go of the creative process as a way of achieving outcomes I wanted, and embraced it as a way to happily spend my free time and make things that satisfied my own standards.

A couple of months into my daily writing practice, it somehow mutated into a programming project. My programming still operates within the conceptual loop of my writing, but I suppose it could have turned into anything else.

My advice would be to reflect on what you're doing moment to moment and build a narrative around it. Sometimes it can be invaluable to just write down what happened: "Well, I was working on this roguelike in Rust, but then I saw some blog posts about Common Lisp and decided I'd write a graphical solitaire game in CL." And from there you can understand why it is you are doing what you are doing, which will probably be more effective than castigating yourself for doing what you're doing.


Two things have helped me with that:

* I started blogging about my projects. And I try to keep a pace of roughly 1 blog post every 2 months. * I have a mix of on-going long term and short term projects.

(I've also submitted talk proposal for long term project for a conference even though I had barely started that project. It got accepted. The fear of a public failure was very motivating! I don't recommend it.)

Forcing myself to write something every 2 months automatically results in the need to do some short term stuff as well. 2 months ago I made simple how-to video about how to solder with enamel magnet wire and all the tools in my home electronics lab.

This weekend, I spend hours on disassembling, photographing, and measuring the signals in a smoke detector with an expired battery. (Writeup WIP.)

These are all things that only take a day or two to complete.

Meanwhile, I have a project ongoing to convert an FPGA-based thin client into a retrogaming machine. I work on it on and off. Sometimes it's idle for months, and then I pick it up again for a few days. I don't know if I'll ever complete this project, but it's all hobby stuff anyway, so there's no pressure.


It's normal, just count the comments on this post. You have learned a lot on this "never finished" projects. Thats nice. Sometime along this road jou find the right project and make it work. Keep the projects (or parts of it) small, make a working mock-up fast and keep expanding it. I just finished a project I started 10 years ago and havent worked on it for several years. That feels really good.


As many I experiment the same with some projects. Though I've been working on a side project for 7 years now!

The difference? It's purposeful to me and a long challenge for be and the foundation that needs it. Because people depend on the work I do, I must do it. Because these people can't do it, I must do it. Because the purpose they serve is something that means a lot to me too, I want to do it.


I've found keeping a spreadsheet of a lot of tasks and how they're related helps. So say you have 3 projects, all with varying types of task. I would make the spreadsheet as follows:

Due Date, Goal Date, Project (or class if student), Assignment, Status.

Due date is definitively when I need to achieve it by (this can be artificial if you want). The goal date can change as my day/week gets hectic so I adjust according to the miscellaneous things that are impossible to account for. Project is like the Grouping of all tasks below it. Then the tasks are the incremental things that need to be done in order for the entire goal to come to fruition. Status tells me if it's completed, partly, or not.

This has helped me because if I'm feeling very committal one day, I can just crush a lot of stuff out. Then I can go "Well looks like I have a week before I have to get that done" so then I can freely budget fun time. It keeps me on track and helps me with balancing pleasure and work.

I've recently started tracking my hours too. It's weird but I think it helps with showing you how much you screw around when you work from home.


You can approach your problem from the other end. How can you best choose side projects, so that the ones you start are the ones with more chances to get to a satisfying conclusion.

I wrote about it this week on my blog: https://filipesilva.me/blog/how-to-choose-your-next-side-pro...


I think it would really help me to have a partner in any project I do. Someone to hold me accountable and to be excited about breakthroughs.

It’s just so hard for me to motivate myself. I used to think this was a failing of self discipline. But working with people makes things fun.

Look at the show “the office”. They thought of the most boring, unfulfilling type of work but it actually looks fun to work there. It’s all about the people.


What projects are you working on?


Since so many people are sharing their story, I will share mine. 5-6 years ago, I started working on Typesense (https://github.com/typesense/typesense), an open source, typo tolerant search engine designed for speed and developer productivity.

In the past 5 years, my journey has brought me through my wedding, the birth of my first child, losing a loved family member, a job switch and so on. Nevertheless, it has been really great seeing the project gain traction and motivate me to keep working on it through the highs and lows. Everybody differs, but I think for me the following 2 things kept me going:

a) Pick a project that you are sufficiently motived.

b) Don't set deadlines but have a plan to work on the project everyday. One some days it will be hours, on other days it will be just thinking about a problem at the back of your mind for a few minutes, but the idea is to keeping at it.

Now nearly 5 years later, I'm still not done yet but I'm amazed how much I've achieved by just showing up every single day.


I find it much easier if I pick projects that I actually could benefit from. For example I started working on a note taking app a little while ago, because I couldn't find one that I liked. I know I will probably not get a complete return on my time investment, but it keeps me motivated to finish since I know I can make it exactly how I want and end up with a product perfectly suited to me.


That sounds obvious but goes completely unnoticed, and it's very smart. A good part of what keeps me motivated to work on something is believing in the solution. This line gets a little blurry when it comes to games, but the only way for me to mitigate that is to make games I would play.


Maybe try to stone soup yourself. Start a project where the bare bones can be done in a couple of days but the possible features to add are unlimited. For me, there's this implicit calculation of opportunity cost. Like, if I work on this, I can't work on all these other interesting things. But if you switch your mindset to "working on this will help me work on all these other things," that opportunity cost disappears.

For example, just the blockchain data structure (not a full cryptocurrency, just the data structure) is relatively small and doable. Maybe a tiny perceptron or autoencoder. But there's a lot of opportunity to make something with even such small toys.

And don't be afraid of making something that isn't a "true" or "real" whatever. Yeah, it's not a "true" blockchain but it was toy to test your chops on.

Also, whatever you do end up doing, regardless of whether you finish it or not, write about it. Just a paragraph or two of what you were trying to do, how far you got, what made you lose interest. Informally as possible.


I understand this isn't exactly what you're asking for as it seems like you burn out on the idea before you even get to the implementation but I've found that for coding projects, keeping my code clean really helps to motivate me to stick with the project.

If I'm building something and the code gets messy I increasingly feel frustrated while working with it which turns me off from working on it - somewhat of a negative feedback loop, so when I start to feel like the code is a hassle to work with, I switch gears from writing features to refactoring the existing code-base.

This gives me a nice change of pace, lets me think a little bit differently than simply "add features", and when the refactoring is done I have a much more thorough understanding of the code I've already written and what needs still needs to be done.

It seems like a pretty simple and obvious suggestion but I can't tell you the number of times I've let a personal project become unmanageable just because I've wanted to keep adding features which at least for me leads to burnout.


This was me big time. You sound like you have more experience than I did at the time, but what finally made it click for me was taking CS50 on EdX. Not that you should take it, but that it exposed what was holding me back. Any challenge I made for myself I would end up saying 'screw it' when it got challenging because internally I'd think that maybe my idea was messed up somehow. CS50, which I only made it thru 5 assignments, exposed me to having to stick thru a problem, possibly for days until I got it. I felt pressured to complete them because I saw that my classmates were completing them and that told me it was doable. After that, something in my head changed and for the first time I was able to complete my own projects and enjoy that feeling when you build something you came up with yourself. In other words try to get experience sticking thru challenges. Try leetcode or hackerrank, those sites have advanced problems that might crack that cieling for you if your problem is the same as mine was. Just my experience.


In my experience, switching from task to task and not being able to maintain focus is a minor form of burnout.

It takes energy to stay focused for a long period of time.

My advice: take a few months off. Let your mind wander. If you come up with an idea, let it go if you can. If you come across an idea you can't let go of, even after multiple days or weeks, then maybe you're ready to commit to it!


What works for me is a step I find most people like to skip and that's planning.

As a number of other folks have said, if you have small things then you're more likely to get them done. Often though you'll need a bunch of these smaller things to make a product that someone might be worth paying for.

So what I do is I plan the project out into modules or blocks of functions that take a few days at most. I know for myself I take great pleasure in crossing things off lists (this is literal, I write things down in a TODO and physically cross them out). To me it's satisfying to see the list get smaller.

Seeing the list get smaller, and knowing there is an end, keeps me motivated. Now I still have moments where it can feel like a grind, the worst seems to be when something is just over half done. That's when it's the most important for me to tell myself, well I'll just work on this one thing and I grind through it. Then when I'm about 80% there, that's when a lot of motivation comes back to finish it.

Hope this helps.


This happens when you know little and yet you aren't aware of how little you know.

As a kid I self-learned photoshop and always struggled with coming up with projects to do with my knowledge.

Little did I know photoshop is a tool, not an end.

Web development is a tool. If all you know is how to hit with a hammer, it is pretty hard to make good use of it. You need to learn how to build a house, then your knowledge of a hammer will become a useful tool for accomplishing a well defined task.

Knowing how to build a house is much more difficult and isn't a 'side project' for most people. Hence the solution to your problem is realizing how little you know, how much it would actually take to create anything remotely useful, and moving on to learning something easier that'd have an actual impact in your daily life, such as exercise, a new hobby that'd foster new meaningful relationships, etc.

One last thing - if your motivation for a side project is money, you're kidding yourself - just go enjoy your life :)


I write a blog (https://nichesaas.co) about ideas for SaaS Products. The reason I started the blog is because so many developers I know struggle to come up with _good_ ideas and stick with them.

Some things that have helped me and my friends in the past:

* Set yourself achievable goals or milestones so you feel like you are making progress

* Accountability is also a great way to stick with something. Tell your colleague you'll send them a link so they can check it out and then commit to putting it up.

* Choose something you're interested in.

Often the hardest part is starting. One trick I used in the past was put a syntax error in my code. I would also leave a comment there with a small task just to get into it.

    e.g // implement GetUser()
That way when I sat down there was a small task to complete to get my program running and before I knew it, I'd been hacking away for a couple hours.


Get the stupidest thing done and finished. I started my compiler with waay too much ambition. I planned out a Hindley Milner type system but with row polymorphism. I planned out the entire syntax, records and all. But I didn't actually have anything done. I spent so much time trying to think about how to implement x feature or y feature because I thought I should get it all done at once. It took me maybe a year to figure out that I should just get the stupidest thing working: arithmetic from parsing to code gen. I had resisted this because frankly there's a million tutorials online about making a calculator compiler. But who cares? It doesn't have to be original. It needs to be done.

Also only learn one new thing at a time. Don't make a side project where you're learning to write a compiler in a language that's new to you. That's two new topics and therefore infinitely harder.


The unpredictable schedule of a personal project means that you can't have unfinished work over long periods of time. You have 2 hours today. Get the smallest thing done to satisfy your goals for today no matter what it takes. You can always do it better in the future because there is no boss that interrupts you and tells you to work on feature X.


I am fortunate that I can think of ideas pretty quickly but I get overwhelmed with what tech to use. If you can just standardize on a platform you know, set your ego aside and use that. You can always iterate a working project but you can't do anything with unfinished work.

If you want to learn new, shiny tech, do small proof of concept projects and consider if they bring any value to what you've already built with what you already know.

Aside from that... you just have to do the work!

A book I've really enjoyed for my motivation across not only work and side project but also life in general is The Obstacle is the Way by Ryan Holiday: https://www.amazon.com/Obstacle-Way-Timeless-Turning-Triumph...


I have this and it's caused a great deal of stress in my personal life _and_ work life. Basically I get excited by the idea of a new thing or project, but within a week or less I am totally and completed bored by it. There are very few times I've managed to keep continuously working on the same thing for a long time


Instead of thinking I want to make this then immediately coding I would take a step back and write/design what you are about to make for a couple of sit down sessions. Writing and design work are much easier to throw away and start over with than code. When you do start to code try to write the bare minimum of code which lets you play with your tool. Keep a running list of ideas you have as you are making the project. These help keep the motor running when you want to stop later on. Also always keep a document tracking where you were when you put the project down. What problems were you fixing? What is up next? Even if you leave a project for a couple of months having a context building document, an inspiration list, and design documents should be enough to help you pick the project back up. Also if you never finish that's totally fine. It's a process.


Do you need to stick with it?

Side projects are a good way to harness raw energy to learn a lot of things hands-on in a rapid amount of time. But it also might be a good thing to not continue to venture deeply down a path just because you have started something.

I have multiple personal experiences where I have tried my best to develop my side project (or part-time business) into a full-time business - with less than stellar results. Yes, I have built a tool or service! Yes, it works and provides value! Yes, people will even pay for it! But can it pay all the bills? Is it worth the stress? Is it even the right tangent to be on, as a business?

In addition you have financial costs and there's can be a massive opportunity cost (years of effort) to "sticking with it". Holding your cards when you naturally feel like folding may not be worth it either and it often takes years to find that out.


Throw some extrinsic motivation into the mix. Intrinsic motivation is great of course, but it's fickle. Your internal emotional state changes like the wind depending on what's going on in your life, what time of day it is, your mood, and even what you've eaten.

Extrinsic motivation is usually more fixed and reliable. It's what drives much of human productivity, and is responsible for the major miracle that is billions of people waking up and going to work every day to do things they may not even enjoy.

Some common sources of extrinsic motivation include obligation to people (a boss, a partner, an audience, customers, users), social consequences (shame, embarrassment, letting others down), and monetary consequences (getting fired, losing a bet, etc.). On a more positive note, there's also encouragement from people, social rewards, and monetary rewards.


Do you have the determination to read all those answers and identify the true ones? How do you know which ones are true? Finishing projects is the natural state of mind. The reason why you don't finish is the idea that is most repulsive to you, the idea that you try to avoid the strongest.

On the other hand, a comment can also be repulsive because the idea is really bad. How do you know the difference?

That said, my advice to you is: _pick a customer_. Why would you write a graphical solitaire game but for the joy of programming. However, that joy doesn't need a target, there is no need to finish.

If you write something for somebody else, you are out of the loop of questioning what you like best. Then you are free to pursue that goal without being distracted by the whims of your desires.

When you choose your customer and the project, maintain the basics, especially: pick an achievable goal.


1. I personally find it easier to work on things I'm passionate about. So I think you need some kind of motivation to keep you going. It could be that you want to show it to your friends, or it could be you dream the possibility of turning it into a business.

2. You mentioned that you'd like to learn a lot more on languages and frameworks. Presumably you need to actually do something relatively substantial with the language/framework to learn it to a reasonable level? So for me personally some of my personal project I did were purely for learning. I think that's another motivation that can keep you going.

3. You talk about finishing project. I don't know if any project can be "finished". So I think it's okay to recognize that you want to leave a project in a particular state and move on and not feel too bad about it.


The best thing that you can do to give a project legs is to get other people involved. Even if you don't have someone who can work on coding with you, just sharing it and enrolling other people in your vision for a project is the number one way to give you the motivation to continue working on it.


This is true, the feeling that someone is depending on your work can give you the necessary boost to actually finish, or at least reach a polished enough version.


There's a benefit to finishing things, but there's also a benefit in quitting when you're bored.

You don't need to finish a frontend for it if you get bored halfway through. Hell, you don't even need to finish the entire app if you think of something else to do with Haskell. You'll have learned something from the todo app even though you didn't finish. And pushing through might have just put you off of the entire thing.

That being said, I do think there is value to actually finishing things. It will allow you to learn about the entire process.

I'm developing a Godot game now. I'm done with the logic of the game, but I'm pushing through to publish it on an app store. Just to have gone through the entire cycle of 'polishing for an app store' even though the actual development was my main interest.


Hard deadlines. 48 hour game jams are great. Take Friday off from work, make a game on the weekend. If you miss the deadline on Sunday, you failed the game jam.

For me there is usually a point about 24 hours in where it seems like a hopeless amount of work, that I’ll never finish. However, I push through, and keep working, ruthlessly prioritize, cut every feature I don’t absolutely need, and finish making the game.

The game itself is not a side project that I stuck with, but the experience helps. Having the experience of “pushing through” and finishing a project with a specific goal is the real takeaway. Next time I’m stuck on a personal project, I can remember pushing through the game jam project and getting it done.

And finally… I only finish something like 5% of my projects, maybe. Don’t try to finish a project just because you started it.


I was in your situation a few years ago.

I “found my way out” when I created a project that I really cared about. It scratched multiple itches and I was constantly finding new ways to improve the application. It got the the point where I had to create a backlog for improvements I wanted to see.

My mind started to wander and I started thinking about my newfound organizational skills. I started the high-level design for a tool to organize my scatterbrain. Thankfully, I decided to just keep it in my backlog and continue on what I was working on.

td;dr: 1. Add projects to backlog 2. Weigh benefits of each, rank them 3. Work on #1 project 4. (Optional) Set a deadline to re-evaluate priorities 5. When new ideas pop up, add to backlog. Fill in as much detail as possible. The goal is to do a braindump and get back to what you were previously working on.


I have the exactly same situation and I also made a half ass engine for a 2d rpg with a map editor.

I don't know what's happening, but whenever I'm pushed to do something, either by my parents or my boss or anything urgent (say I have an interview in a week), I'm suoer focused and can get tremendous amount of work done in a short period of time.

However, whenever I set up a target for myself, out of curiosity or interest, anything non urgent, I'll just do a half asd work for maybe a few weeks and then never get deeo enough to learn or show anything important.

This really summaries my life since day 1. My dream is to have someone pointing a gun at head and say "learn this or die" and I'm sure I can finish it nicely and quickly. But in real life I don't have this kind of luxuries...


This probably has something to do with human nature. People want to be useful to others and feel like they are a necessary part of society. This is a pretty common argument against UBI. A lot of people actually want to work at their current job.


Yeah I totally agree. I need to be useful to other people to feel happy and maybe I should be OK with that...


Definitely not an expert in this but I have found that the bigger the aim, greater the tendency to nope out of it (for me).

So one way of going around this is keeping short, simple, achievable-today goals.

Example Target: I need to develop a CMS.

New target: Need to create that one method which will do X and return boolean value.

Once that is done, on to next.


I think it's totally OK, normal and beneficial to want to experiment with different applications.

The main issue is after a few years you may feel like you have nothing to show for it and the best solution to that feeling that I've found is to document what you've learnt in a blog post. Over time you'll end up with a large personal knowledge base on which you can draw on when you want to and actally can finish a complex project. You'll also attract the right kind of people that can help you by putting your thoughts down in writing.

The idea is you want to slowly build yourself to be the kind of person that can finish a complex project in a weekend and the best way to do that is to constantly be in the high payoff space you get when you're learning something totally new.


Why stick with it? My view is that the main purpose of side projects (for me anyhow) is to learn and improve my skills and to open up to new ways of approaching things. But even if your goal is to work it into a side business, I still would argue that sometimes sticking to the same side project too long can be a bad choice. I have a fried who worked on the same side project for 7 years and I think it stifled his creativity because he was always focused on the same narrow set of problems associated with his project.

I am simply suggesting it is possible to go too far in sticking to the same side project. For me I usually consider a side project has run it's course if I have learned as much as I needed to on it and then I try to move on to something completely different.


Yes!!! My way out was to not focus on the product, but focus on my personal benefit. I asked myself "what do I want to learn?" not "what do I want to build?".

Recently, I completed a Shopify plugin (https://apps.shopify.com/simple-pages). I wanted to learn more about the platform. I researched it a bit and found a problem that I thought I could solve. Each step along the way (setup, build, approval) was painful. But each time I focused on my personal benefit. For example, when the app got rejected a few times, I convinced myself that I was learning about what Shopify was looking for in plugin vendors. This kept me going until I saw it through to the end.


This is definitely a common issue everyone struggles with. I've noticed a lot of it stems from constantly changing my mind and self doubt during the dev process (like you mentioned, you start off building a roguelike, switch over to a solitar card game, switch over to a isomorphic strategy game).

Something that helped me a lot is first spending more time than I think I need figuring out what I want to build on a very high and broad level, and not just diving into coding. Once I figure out what to build I need to have the discipline not to change what I have decided to build. Some implementation details might change or some game mechanics might be tweaked, but on a high level (am I building a roguelike or solitar type) can't be changed once I start.


I need to say I have exactly like you. I was unable to finish anything though many years. Than 1,5 year ago finally everything changed. This is by small but significan tchange. I choose for myself subject that is big enough that a lot of experimentation can fall under it and specific enough that all experiments have common denominator. Single guiding idea. For me this was enabling my father to create application (emotional importance! we are all animals after all. btw. he didn't care. I cared.). Since then I'm experimenting with new stuff and doing the thing that interest me but this theme is always there.

I'm doing tests of different stuff, writing prototypes, all good stuff. First there was more strategy and later there is more tactical planning and execution but I still more do what I feel I want to do right now than follow so roadmap or something. I sit down and think what I want to do right now and I write myself one post-it with tasks to do, stick it to laptop next to the touch pad. Than I do this fully or partially and than new post-it. I think that my mind is telling me the place of maximum development for my level of skills and I keep faith that this path will take me to some destination that is original.

After 1,5 year and 3 throw away partially working prototypes I have something that is quite cool I have something like creator to generate application for production systems. I discovered my own cool frontend architecture. Thinking about everything from first principle and go to place of interest giving really cool results in retrospect.

No I'm a bit forcing myself with last 2 post-its because I have company that want to use this system and I need to finish details that I didn't care about to do because I was going around it. But now when I see it almost finished and useful somehow it goes easier.

Soul of the explorer is a great gift, no need to change it.

Generally for me 30 yo it was mark of stopping being my own enemy and started things that I always wanted. To this time I was just doing this random stupid stuff and thought that it will all fall together. (Disclaimer: It did).


I struggle with these tendencies too. For me, I think it usually stems from being interested in the product not the process--that is, if I could snap my fingers and immediately produce what it is I was envisioning (even though that initial vision is usually fuzzy) I'd do it.

I think people who can stick with things long-term enjoy the process of what they're doing at least on some level. What enables them to stick with something is not the goal post, but the activity itself. They're motivated to spend x hours a day building a roguelike not only because they're driven by the vision of what they're going to produce, but because they genuinely have tons of fun and get tons of satisfaction from the activity of writing a roguelike and solving the problems that arise in that domain.

Personally, I've found that this love and enjoyment of process is usually an acquired thing. It's just like going to the gym. Once you make it a habit it becomes easier and easier and you become so dependent on the rhythm and little boosts you get from going to the gym that your dream body or whatever initially got you in there pretty much becomes irrelevant—it morphs into an activity that's fundamental to your way of life, you need to do it, you become dependent on it.

I've found that sticking to intellectual pursuits long-term is analogous to going to the gym. If you force yourself to be consistent and to show up every day and commit some time toward your project, you'll soon come to love the process and it'll be much easier to see it through to the end.

It's incredibly hard but really important to resist the idea that you can bring your grand visions into fruition within a short span of time--it just doesn't happen, and it's these sorts of fantastic expectations that lead to eventual disinterest and burn out. If you're constantly chasing the finish line and fire up all cylinders to get there as fast as possible you'll never make it, but if you run for the joy of running and do so consistently you're guaranteed to get there eventually (the tortoise and the hare).


What you have described is just plain old discipline. I think the reason why side projects don't result in discipline is that they are just something you do when you have time for it. Work usually has a fixed schedule and any variable events are scheduled around work. Side projects tend to get disturbed by variable events and inevitably are delayed.


For me I think I just learned to stop being hard on myself for not finishing. They're side projects, you don't owe anything to anyone. I've also found that as time has gone on, certain side projects have remained compelling to me even after getting burned out on them the first time. Some of them I've eventually gotten back to, gave up on again, and then gotten back to. Before long it becomes clear that it's not that I'm perpetually undisciplined and lack follow-through, it's more that I've made slow and steady progress on those projects over the years.

Only other advice I can give is that when picking a side project, find something where the process is as enjoyable as the outcome.


For me the best way to stay focused on any given project is to find clients for it. Even if it's just a handful. If you know that there are people out there willing to pay for it, even if it's ramen money, you have all the motivation you will ever need.


Keep an idea log and assess it weekly. I have a trello Ideas board with the columns: - Concepts (stream of conciousness) - Promising (have given it some thought, and could be interesting) - Validated (have validated it in some way) - Building - Shut down


I do exactly this!


My friend said if you are having a hard time finishing a book, it's probably not a book for you.

Same thing applies. You gave up on these because its not right for you. Once you find someone worth spending your time on you'll stick with it. Keep looking.


This is how I was with side projects for a long time. I'd get excited on a project, work on it for several months, then be lose interest and stop working on it.

I changed my approach after reaching The One Thing. It helped me set a goal (work on it until July no matter what, and if I don't get any sales, it's time to move on) and i've been working on it 2-4hrs a day.

Every since, September 2019 I've been working on (For A Piece)[https://www.forapiece.com/?ref=hackernews]. This has been the longest i've worked on a side project and I'm really proud of that.


You know, I went through this a while ago. As a side idea, I always wanted 1) an online double-entry accounting system (so i could update my bookkeeping from anywhere in the world). And 2) I needed a self-hosted site where I could put anything from my kid's photos to my tax records.. ONE PLACE to look for anything. You can see my site here: http://parallax.dns-cloud.net/praetorian/

My point is, go slowly. Just like a game you enjoy playing but get fed up after too long, put it aside; knowing you'll come back in a while with a renewed drive :) Cheers!


I would suppose this is a very common struggle among IT professionals. A few things that have helped me, some of them already mentioned in this thread:

- simply don't do it; prioritize more important ideas.

- start smaller - some ideas are just too ambitious, try to come up with the smallest end product that is still useful.

- don't talk about it - just by talking about what you are planning to build gets you a small dopamine release, discouraging you from finishing the project.

- scratch your own itch - create something that will help solving a problem you face frequently.

- get other people involved - invite other people to collaborate building or just using it so you have people to hold you accountable.


To quote the great Jean Luc Picard, pick "one impossible thing at a time".

I also find myself going in a lot of directions, and I've found that picking an idea and sticking with it, until it fails or works, is an achievement in itself.


I think you need to ask yourself why you feel like you can't complete something. When I hear you say this yourself, I feel like you may struggle with too many good ideas or a lack of discipline to see them through.

For me, my problem is I have too many ideas, and sometime the fun of a new idea outweighs finishing an existing idea. This is where I need to rely on my discipline to carry me through to completion.

Most of my projects don't ever go past 2-3 months, but the one that is now, well it's requiring my discipline so that I can finish it. That isn't to say I just work on that, I have days I do other things to give me a break as well.


Ha, okay, just for some light-hearted context: it took me several decades of trying so many projects to finally find one and stick with it: web development. Now I'm a gainfully employed web developer and DevOps engineer, and a great load has been lifted off me. I am 15 years behind some of my peers but I no longer stress about finding that one project I'm gonna stick with.

So yeah, I've found my way out and here's my advice: it's a numbers game. Keep trying things. Even if you try to make a roguelike for 5 minutes and move on, that's a valuable lesson. Now try 100 more things and you might stick with 3 or 4.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: