One of the most powerful advice I’ve ever received (read on a blog) regarding programming is to scratch your own itch. Some call it dogfooding, build something you need and use it. You’ll learn much more about what you did and how you were wrong.
Learning how you were wrong 5 minutes ago, 8 hours in a row, is a good lesson in humility. I’ve witnessed people turn very frustrated, angry, at the authors of a framework or everyone else or completely lose faith in their mental abilities when those lessons were particularly hard.
My advice is: keep doing it.
Keep humiliating yourself
Why I think it’s important to actually use tools that you write is because you don’t only get the unit tests that fail, not only some users complaints or a function that somehow just gives you a weird return, but you get to experience the full extent of your failure or just moderate shortcomings.
Now, of course to don’t have to take any advice from me, but I actually like writing software and I’ve heard from a couple of people that they like me writing software either for or with them (Thanks project managers, coworkers and clients at this point, I like you all in the end!).
I think it’s alright getting annoyed once in a while, but I making mistakes (and a huge amount of them) is usually a good idea when writing code. Not making mistakes is either a very very senior developer thing I’ve never seen in real life or you not trying hard enough.
PS: That doesn’t mean that you have to put your mistakes into production on things that aren’t you own tools that you obviously will thoroughly test.