Approaching a problem

Everybody have their own way of approaching a problem. For me, I prefer to start with visualizing the end result before I start working on it. This gives me excitement and confidence regardless of the complexity of the problem.

In my initial days, I used to get overwhelmed by the complexity of the problem and would end up procrastinating. I spent countless hours in this stage trying different ways to get to the solution quickly. I would end up with a lot of half baked solutions and would get frustrated.

Instead now, each time I get to work on a problem, I try to break down it into smaller chunks. This helps me to focus on one thing at a time and makes ourselves accountable and easy to document. This also yields a well thoughtful code.