487

As a developer, sometimes you hammer away on some useless solo side project for a few weeks. Maybe a small game, a web interface for your home-built storage server, or an app to turn your living room lights on an off.

I often see these posts and graphs here about motivation, about a desire to conceive perfection. You want to create a self-hosted Spotify clone "but better", or you set out to make the best todo app for iOS ever written.

These rants and memes often highlight how you start with this incredible drive, how your code is perfectly clean when you begin. Then it all oscillates between states of panic and surprise, sweat, tears and euphoria, an end in a disillusioned stare at the tangled mess you created, to gather dust forever in some private repository.

Writing a physics engine from scratch was harder than you expected. You needed a lot of ugly code to get your admin panel working in Safari. Some other shiny idea came along, and you decided to bite, even though you feel a burning guilt about the ever growing pile of unfinished failures.

All I want to say is:

No time was lost.

This is how senior developers are born. You strengthen your brain, the calluses on your mind provide you with perseverance to solve problems. Even if (no, *especially* if) you gave up on your project.

Eventually, giving up is good, it's a sign of wisdom an flexibility to focus on the broader domain again.

One of the things I love about failures is how varied they tend to be, how they force you to start seeing overarching patterns.

You don't notice the things you take back from your failures, they slip back sticking to you, undetected.

You get intuitions for strengths and weaknesses in patterns. Whenever you're matching two sparse ordered indexed lists, there's this corner of your brain lighting up on how to do it efficiently. You realize it's not the ORMs which suck, it's the fundamental object-relational impedance mismatch existing in all languages which causes problems, and you feel your fingers tingling whenever you encounter its effects in the future, ready to dive in ever so slightly deeper.

You notice you can suddenly solve completely abstract data problems using the pathfinding logic from your failed game. You realize you can use vector calculations from your physics engine to compare similarities in psychological behavior. You never understood trigonometry in high school, but while building a a deficient robotic Arduino abomination it suddenly started making sense.

You're building intuitions, continuously. These intuitions are grooves which become deeper each time you encounter fundamental patterns. The more variation in environments and topics you expose yourself to, the more permanent these associations become.

Failure is inconsequential, failure even deserves respect, failure builds intuition about patterns. Every single epiphany about similarity in patterns is an incredible victory.

Please, for the love of code...

Start and fail as many projects as you can.

Comments
  • 101
    *tears start*

    ...

    *slow clap*
  • 41
    Thanks for the motivational text :)
  • 18
    Favorited.
  • 14
    Damn, dude. Talk about motivation. Although I agree with your post, I would amend the last line in my mind to it being OKAY to fail projects, but not the ideal outcome. After all, I want to finish projects I start. And finishing is a skill, never forget that.
  • 21
    @GMR516 I'm aiming for a 100/10/1 rule. I write down everything I think of, I make lots of lists. For every 100 good ideas on my list, I aim to have 10 in a "not yet abandoned" state, and try to get at least one into a usable, productive and long term supported state.

    Failing should not be a goal of course, but I think one should never feel guilt about unfinished work, because the knowledge gained, however small it might seem, will turn out to be very useful in future projects.

    I think especially when you're a starting developer, it's totally OK to have heaps of abandoned hobby code — as long as you keep moving on to new personal projects.
  • 5
    Ah, the second rant i favourited
  • 19
    When are you going to write that damn book? 😁
  • 5
    This is absolutely perfect!
  • 4
    Just like you, @bittersweet, this truly is bittersweet. 😂

    Nice write-up.
  • 8
    I completely agree, wish I could give more than one ++

    This is really inspiring!
  • 13
    After few months of using devRant without account, I had to sign up immediately after reading this epic rant. I just had to ++ it.
  • 5
    I love your post! explains me well!
  • 4
    Bravo
  • 5
    It reminds me of a video from Extra Credits about "failing fast", where you have to decide if a feature or game will be worth spend the time and energy or consider it as a failure and quickly work on the next thing.

    Ideas, even if they're good, can become a waste of time trying to make them shine and never gain the success it deserves.

    I made a dozen of game jams, this rant really illustrates that. I spent 48h on each game, some games were just fine, others unfinished, very few had a decent score.

    Also, game jams are cool (really!), do a game jam at least once in your life.
  • 5
    One of the reasons I follow your posts. :)
  • 6
    This is what I needed right now…
  • 4
    Thank you for this, really.
  • 4
    Thank you for this dude. Appreciate it!
  • 4
    Beautiful, really. It made me feel very good. Thank you.
  • 3
    Dude.

    ...

    You’re Awesome.
  • 2
    logged in after really loooong time just to upvote this... *flies away*
  • 2
    Nice rant. But now I have to rant.

    The word you are looking for is 'and'. Not 'an'.

    'An' is an article, and 'and' is a conjunction. They are never interchangeable. Ever.
  • 0
    @superboot I blame my cheap keyboard at work, which doesn't like the D apparently.
  • 0
    @superboot uuu gr4MA nAzI1!!1!
  • 1
    👍👍 (because ++ isn't enough 😜)
  • 1
  • 0
    Get this man a stressball
  • 0
    This should be a speech before the coding. Thanks for the motivation 😎
  • 1
    Nice write up! gave me motivation to keep pushing into my personal project(s) now, thanks!
  • 3
    *salutes*

    You, sir, have restored my faith in my failed and frozen (probably forever) ideas and projects
Add Comment