# Developer perspective of a technology

For a developer to understand technology, best way according to me isAlgorithmic approach. Which is

- Identify the problem being solved by the technology. Prepare a problem statement out of it. Have Test cases with Expected Input and Output.
- Think technology which is solving that problem as an algorithm. Analyze all the pros and cons of an algorithm.
- Understand the algorithm. Go through the source code. Validate the algorithm
- If possible think of better approach of an algorithm. Refactor algorithm until it is efficient.
- Explain the algorithm clearly end to end.
- Implement the algorithm
- Write and execute test cases to certify the algorithm.
- Find patterns in the algorithm and generalize the algorithm.
- understand where all it can be used. Apply the algorithm to solve other problem statements.