I am a trainee. According to my teacher to solve a problem we should go through following steps:

1. Create Algorithm (optional)
2. Create a Datatable: By analyzing the problem, create main concepts in those problem as columns and the related issues in the main concept as rows.
3. Create a Flowchart based on the Datatable. (when creating flow chart, think that you are in that situation and design it in your brain)
4. By seeing the Flowchart, one can solve the problem easily and in efficient way.

These steps should always be considered by a programmer if he/she wants to become a Software designer (not just a programmer) because this approach gives an efficient way of finding solution to a problem even if the problem is small. According to him, this way of approach also works in real time scenario's.

My question is: Is this really an efficient way? please share also your thoughts.

Through this question I also wanted to share some thoughts of my teacher with you who is a good mentor.