Live data from Hacker News

Ask HN: How can I pick a side project and stick with it?

news.ycombinator.com

251–260 of 372 posts

Re: Ask HN: How can I pick a side project and stick with it?

#251
You can improve matters by a) scoping projects less ambitiously and b) enforcing a novelty budget on yourself.

A very ambitious project which you will never finish might actually be three small projects which you will finish and seventeen small follow-up projects you'll decide to never take on. Better to get the three under your belt than try to sprint in 20 directions at once and bail with nothing to show for it.

Say that you decide "I'm going to write a personal ontology engine flexible enough to store everything I know, with a snazzy, super intuitive frontend written in , a plug-in system for easily creating visualizations for specific types of data (oh, like, what if my personal knowledge DB could take FEN+PGN and let me replay and annotate interesting chess games in-line, that'd be so sweet!), a bespoke query language, the whole thing will be backed by and, hell, I've been meaning to start containerizing apps at work, I wonder if I should be using docker-compose as I do this or maybe like kubectl, ...also I need to dive into the literature around building ontologies, knowledge graphs, etc. Also, it should probably have emacs keybindings. Probably also support for rebinding keys and defining macros too. Also, it should have a pluggable module interface for scraping semi-structured data sources containing things I don't actually know right now but which I would like to learn at some point. Maybe I can use the hyperlink structure of Wikipedia documents as a scaffold to get the thing started. Oh geez, this is really going to need to support multimedia as well, not just text. Really, this kind of thing would be very valuable in many different contexts. It'd be great if it could be used to automatically generate questions about a topic. I could integrate a spaced repetition algorithm with the question generating bit and then I'd have an amazing study tool. Hmmm, I'd better keep the whole thing as flexible as possible so maybe at some point down the road I can productize it! Sure it's a long shot, but it'd be revolutionary if I could pull it off. I'll start tonight!

To steal from Alan Perlis, "When someone says 'I want to build a personal knowledge DB as a side project and I want it to have perfect ergonomics, top grade discoverability, unlimited extensibility, and unparalleled ease of use,' give him a lollipop."

Even if you don't get stuck in feature daydreams or analysis paralysis and manage to start the thing, your "gee it'd be swell if" side project has a five or ten plus year "labor of love" todo list attached to it. The mismatch will sink you unless against all odds this actually is your labor of love.

As a personal example of the scoping into smaller projects which were standalone (though not a good example of enforcing a novelty budget) I wanted to make a personal activity tracker in 2018 or so. Initial conception was the all-singing, all-dancing, kitchen sink Swiss Army knife of personal data tracking and visualization, implemented in all the technologies I'd been meaning to try out. The backend would be a gleaming beacon of modern infrastructure with everything containerized from the outset, code written in Rust (in which I was a neophyte), phone app written in Kotlin (in which I'd only done the Koans, and with no other mobile dev background, but hey, "Anko" seems to be The Thing to use now, hmm)...

Having been bitten by the bug you ask about in the past, I set that aside. Instead, I did a bunch of smaller projects with each on their own bringing a reasonable sense of completion:

1. Two Python scripts - one to configure desktop OS notifications to fire on a cron schedule ("Nag! Update your data for ") and one for CRUD operations on time series metadata and data points themselves. Just backed by local sqlite. Finished in 2. Docker setup for building a Rust binary and then trimming away build tooling to get a deployable artifact. 1-2 days? Containerization itch: scratched. Could be a 101 level blog post.

3. PostgreSQL docker image with CREATE/DROP TABLE scripts. Half a day? I guess I learned about Docker data volumes. I can refer back to this Dockerfile in the future, which is like 9/10ths of how I make progress quickly on new projects.

4. docker-compose setup for a Hello World level Rust binary that reads a record from a postgres db running in a separate container and writes it to stdout. Half a day? Hooray, orchestration.

5. "Hello World"-as-a-Service web app that uses Rocket to send a Hello World application/text response. Not very long to finish. Novelty framework itch, scratched.

6. Learn about Diesel. Use Diesel to make a single SELECT COUNT(*) query against the DB. Send query result as application/text response on a dummy endpoint. Done. Could probably be broken off into a "Intro to X with Y and Z" type blog post.

7. Update SELECT-as-a-Service web app to make a meatier query and serialize response to JSON. Learn about Rocket request guards for managing DB connections. Another day or two? If step six wasn't enough for a 101 level blog post on the topic, seven definitely is.

8. Port the Python CRUD functionality to a Rust REST API atop Postgres. Deliverable: approximately all the backend we'll need.

9. Update the Python CLI to use the REST endpoints. Another day? Done.

10. Start doing Android Hello World apps. Using unfamiliar APIs in an unfamiliar dev environment in an unfamiliar (but nice!) language. Eww, this sucks. I'm not having fun any more. Maybe I should first learn vanilla Java Android app development, then Kotlin, then build on that basis with Anko, then...

And then, at that point, I realized that aside from enjoying daydreaming about the idea of a personal activity tracker, I didn't actually give a crap about having an all-singing, all-dancing personal activity tracker. While I'd been happily chugging along building the thing, I didn't care enough about the underlying functionality to bother taking two minutes a day to, y'know, actually track the data when the MVP nag script ran on its cron. When I bailed though, instead of "ugh, another incomplete useless waste of time," I ended up with several completed small projects and more knowledge about what I actually wanted (to futz around building a personal activity tracker, not to have one).

Re: Ask HN: How can I pick a side project and stick with it?

#252
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.

Re: Ask HN: How can I pick a side project and stick with it?

#253
post #201

Earlier quoted context omitted.

"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 t…

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…

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

Re: Ask HN: How can I pick a side project and stick with it?

#254
post #123
post #76

Earlier quoted context omitted.

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 yo…

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 thi…

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.

Re: Ask HN: How can I pick a side project and stick with it?

#255

Earlier quoted context omitted.

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 projec…

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

Re: Ask HN: How can I pick a side project and stick with it?

#256
post #86

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…

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

Re: Ask HN: How can I pick a side project and stick with it?

#257

Earlier quoted context omitted.

"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 t…

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 an…

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.

Re: Ask HN: How can I pick a side project and stick with it?

#258
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.

Re: Ask HN: How can I pick a side project and stick with it?

#259
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.

Post reply on HN