Junior Devs: You don’t need to finish all your projects.
Finishing all the food on my plate was never a virtue in my family.
Maybe as a consequence of that, I’ve always found the concept of completion… odd. The notion of “finish your food or you won’t get any dessert” seemed childish and demeaning to me, even when I was a child.
Growing up, I now have many questions about completion. What is “completion?” Isn’t completion a sort of death, a stopping of dynamic motion? Doesn’t finishing a project leave it less perfect than when it was being built?
Why is there this pressing need to finish what you’ve started?
Why do developers feel guilt at the thought of abandoning an unfinished project? And what is guilt, anyway?
Truth be told, I don’t know why devs feel that kind of guilt, because I’ve never felt guilt at abandoning a personal project.
All I know is, many many developers face this issue, and it holds them back. It makes all sorts of hangups and difficulties manifest themselves.
Guilt acts like a kind of barrier, a shield that stops a person from going into the taboo, the unknown or the uncomfortable. As long as your sense of guilt keeps you safe and out of harm’s way, it’s a very good thing.
Here’s how the need to finish your projects is robbing you of passion, fulfillment and most importantly: skill.
But very often, guilt is a misplaced emotion that holds you back. Guilt becomes a maladaptive pattern that first forces your hand, then suffocates you, then destroys your passion. It can be a very destructive emotion.
Here’s the general trend I see:
- The dev discovers a new technology
- She gets excited
- She goes through a tutorial
- She starts building The Project with it
- She realizes the technology isn’t as fun as she thought it was.
- The going gets tough. She starts wanting to quit The Project.
- BUT SHE HAS TO FINISH WHAT SHE STARTED.
- She forces herself to keep working on The Project.
- When she gets excited at another technology, she ignores or avoids it because she has to finish The Project. (This eventually destroys her curiosity)
- Meanwhile, she’s starting to hate this tech she’s working with.
- She stops reading tutorials and documentation because she’s seen it all before, and it hasn’t helped. (Meanwhile, she doesn’t realize the technology is badly written; or, that she doesn’t have the skill to work with the technology yet)
- She codes less and less everyday. When she does, she forces herself to avoid all distractions and finish what she started: The Project.
- The thought of coding starts filling her with fear and angst.
- Eventually, she stops coding altogether. Coding was never for her. Coding was, obviously, for people who are smarter than her.
Now that, my friends, is a horror story.
What if she abandoned The Project at step 7?
If she had only realized that she was digging herself into a deep hole, she could have simply abandoned The Project altogether.
In doing so, she would have:
- Preserved her curiosity.
- Saved her passion for coding.
- Felt more fulfilled.
- Coded more.
- Learned more things she actually enjoyed.
- Become a better developer because of all the hours she put into coding rather than dreading The Project.
So how can you stop feeling guilty and be OK with unfinished projects?
It can be hard. I admit it’s probably harder than I care to admit.
You first need to let go of your project. Your project does not define you. Completing it does not define your self-worth, nor does it define how good you are as a developer.
Your skill determines how good you are as a developer. And your study and effort determine a large part of your sense of self-worth.
Allow yourself to get distracted. Allow yourself to forget about your project. Give it some time. Once you’ve done that, you will have the mental room to reassess the situation and decide whether you truly want to finish the project.
And if the answer is “No, I don’t ever want to see it again…”
…then just let it go.
Take it from me: my github is a graveyard of unfinished personal projects.
And I’m proud of it.
I enjoyed each and every ramshackle and broken thing I’ve created. Every single project I’ve thrown away has taught me something new. I’ve left more projects incomplete than I can count.
I don’t look at personal projects as something that need finishing.
I look at them as practice.
I want to hear your story and your struggle.
I’m grateful for every junior developer I get the opportunity to mentor. The internet is such an amazing place that connects all of us.
I would love to connect with you, too.
Leave a comment and share your journey, your struggles, with the rest of us. I’ll reply to every comment here. You can also find me on LinkedIn, Twitter and of course at Mintbean, where I mentor junior developers all the time without any expectation of remuneration or payment.
Mintbean.io is a community for developers like you.
We’re building a place where junior developers can hang out with like-minded folks, make new friends, and support each other in their journeys.
If that sounds like a place you’d like to be, visit Mintbean. Our Discord chatroom is an amazing place to hang out. Plus, there are tons and tons of free workshops, webinars, events, programs and Learnathons.
Click here to join Mintbean’s Discord chatroom
I hang out there all the time and mentor junior developers. It’s a passion of mine.