Topic 5: How do you learn problem solving techniques or create own algorithms for problems? Little background of how this question came into my mind: some time back while working on app which has many states (stages) and based on the server response the app will behave. I went ahead and wrote some dirty codes and my friend suggested me to take a look at “State Machine” which i never heard of. After couple of hours i started customising the same in objc. Now i feel more happy and any change come in is solvable very easy now a days. So now i am actively searching for new techniques or algorithms to solve problem.