Now that is just natural. 'I could have made it better' is equivalent to you saying, 'I've learned a lot doing this, and now know more about the task - and would approach things in a different way because I've learned more'.
If you look back at your code, and go, "Yep, that's good..." then there's something wrong with how you've learned from it, or you're not pushing yourself far enough.
This is where having a good test suite in-place, and being able to safely refactor without introducing breaking changes comes in handy. TDD and refactor with your learned changes.
Now that is just natural. 'I could have made it better' is equivalent to you saying, 'I've learned a lot doing this, and now know more about the task - and would approach things in a different way because I've learned more'.
If you look back at your code, and go, "Yep, that's good..." then there's something wrong with how you've learned from it, or you're not pushing yourself far enough.
This is where having a good test suite in-place, and being able to safely refactor without introducing breaking changes comes in handy. TDD and refactor with your learned changes.
Don't know how , but now i can go to my desk, and do work, all of this is true thanks :)