The only way to learn is to commit to your decisions
A few weeks ago I had a conversation with my fellow team member about the design of our first backend. He had only joined recently, so I wrote the first implementation myself before he started with the company. Since I wrote it alone, I asked for this fellow's input and how he would have structured things. He couldn't answer, since he wasn't in the position I was in when I went down that path. His words reminded me of a previous conversation I had with one of my profs during university. I shared how I felt whatever I was writing was the wrong implementation and I was never quite building the best solution. My professor understood where I was coming from, and shared his own advice: the implementation you choose is truly the best you can come up with at the time. The only way it can get better is if you commit to it and learn from completing it. You won't learn nearly as much by switching to something else halfway through.
This can be condensed into a few key points:
- Any decision you make is based upon what you know up to that time
- Knowledge from the outcome of the decision, including criticism of the decision, is a direct result of making the decision
The most important conclusion based on these points is to not be hard on yourself if you doubt a decision you've made in the past. Decisions are merely products of your experiences, meaning a decision will inevitably lead to more experiences and different decisions at a later point in time. Reflect on how much you grew in order to recognize the pros and cons of a decision, rather than judge yourself on decisions you've made.