How do I trick my brain into completing a project? I’m making an app that shows which voice actor plays a character in the movie and what other movies they act in. It’s useful for me personally but I feel like I’m making something that’s been done numerous times over and I lost the momentum because I’m on vacation with my family now. I ran into some problems with the project too and getting help takes a ton of time so it’s disrupting the rythm too. I really have to put at least 2-3 projects like this for a portfolio;_;
i read this somewhere, and i can’t recall where now, but it anecdotally feels very true:
as soon as you tell someone about something you’re working on but haven’t finished yet, you get a premature dopamine hit. for some reason, that messes with the reward centre in your brain and makes it less likely to actually finish the fucking thing, like you’ve already sucked the juice out leaving an empty husk. so, my secret to finishing programming side projects has been to tell no one of them until they’re ready. this is heavily paraphrased, i know nothing.
Back when I was trying to learn programming I had two key things that worked for me:
- setting
- reward
In my experience if you keep both of these things ironclad then you can get more consistent results. For me it was going to Starbucks and getting a tall white mocha. It was the same Starbucks, and the same seating spot every time I went. And I made sure to turn off all notifications during my coding time. Hell I even put myself on a timer.
It didn’t matter what I did during that time period, but it had to be programming related. Project work? Great! Noodling around with my IDE config to find the perfect color scheme? Still counts. Learning ever detail about a super 1337 shell oneliner? Oh yea
You can’t expect your brain to not jump around, but you can build a system that works with that.
“No interesting project is ever finished.”
Got that one from my CS professors and it’s always rung true. So I just plan to get interrupted and try to make it easy to jump back in after I lose focus for a while. And the key to that is documentation.
I can go back to a project I left unfinished weeks or months ago and say, okay, here’s where I left off and here’s all the information I need about these functions and modules.
Reduce scope. Look at what you’re doing and cut out all the “nice to haves” until you have just the “need to haves”.
For a behindthevoiceactors clone, the bare minimum would be a simple web page with a search bar for actor names. You could use a query string in the URL that gets passed to an IMDb API call that then renders a simple page that just has the actor’s name as the header and a plain table listing shows/movies/games and their role(s) and years.
Everything on top of that, pretty CSS, pictures, hyperlinks to other places, that’s all fluff that you can add on after you’re already “done” having created a minimum viable product. And at the nice to have stage, you can put it down at any point without feeling like it’s unfinished.
To engage hyperfocus I have to want to do it. For that the motivation can’t be external. It has to come from my own curiosity and desire. To get myself primed for coding hyperfocus I like to read Github repos, search stack overflow, ask GPT. Once I have a good idea of the architecture of the app, then I start building out the skeleton. The hardest part is going back to it each day and starting. But once I have written some code for the day I tend to be able to keep up the focus.
If you get stuck it means your knowledge is missing some crucial peices and you’re about to learn something new. If you want a job in this industry then you’re going to need to learn a lot (and it never stops). But once you’ve got some years of experience you get stuck less and when you do get stuck it doesn’t interrupt your whole flow so much because you’ll be able to pivot and do the thing in a different way instead of waiting for outside help.
Good luck!
It works similarly for me with the motivation thing. I don’t have anything against learning things but I wish it was easier to find information about more complex things than just the most basic stuff. It’s the problem with all those courses. They’re great as a “starter” but after that point, you’re on your own in a weird void. The documentation doesn’t help much as well. Tutorial hell is a weird place to be in.
Have you tried using chatGPT or GitHub copilot?
It’s a last resort. I don’t like using it and it’s a 50/50 anyway. One time it suggests reasonable things, the other time it totally misses the point. I’m not sure if the suggestions are following best practices too.
I think making effective use of those tools is it’s own skill. They can give you bad results if you ask things too broadly. But copilot chat has become a pretty invaluable part of my workflow.