Tackling overwhelming problems

Man standing in front of a waterfall

I’m going to write a post about something that I’m sure you already heard before, but it helped me to approach new problems and projects. Like some kind of mantra, when it feels like too much work to do, I repeat to myself: “one small thing at a time”.

Do not overthink about the big picture from the beginning.

Start working on one thing, and allocate time to refactor things during development, not before nor after. Actually, moving functions and variables around different packages is part of developing software for me.

I started working for real in a company (my first job, yay!) about one year ago, I gradually got more and more involved in new projects. At first, building something complex can be overwhelming like “omg so much to do I don’t know where should I begin”. And that applies to everything in real life, not just software developing.

I’m not a particularly anxious person, average I suppose. But sometimes you have “the block”, just like a writer.

You start questioning yourself if you are doing it right, you start thinking about how stuff should be placed before even creating that stuff. You may also arrive at a point where you want to rewrite everything from scratch. The point is: you think and think but you’re not actually producing anything.

Of course, building complex architectures properly require experience (something I don’t have, yet). That’s why I think it’s okay to not get it perfect the first time and, here’s another banal sentence for you: learn to learn from your mistakes.

Don’t overthink before doing. Do it instead, and if the result needs to be changed afterwards, ask yourself “why am I changing this piece of code?”. Lesson learned, you will get it better next time hopefully.

I originally wanted to write this little post as a tweet, but then instead I realised that it wouldn’t fit. These are my thoughts and I don’t want to limit them. Even if at the beginning I didn’t even know what to write, I just let my mind flow.

And yes, I’m also going to put this article on HackerNews because I have no experience in writing blog posts too. I want to be roasted, learn from mistakes and grow, because that’s something important in my life right now: defeating blocks, doing stuff - even if it’s not the next big thing, even if it’s an article about something everyone already know and heard before - you know, one little thing at a time.