3 Steps To Think Like A Software Developer

Murtuzaali Surti
Murtuzaali Surti

• 2 min read

Updated On

If someone were to ask me, what does a software engineer do on a basic level and what makes a good software engineer? I would say, problem solving. Yes, it’s the most basic and the most important skill to have as a software developer/engineer, yet most people don’t think about it before getting into software.

But, it’s not that hard. In this post, I will list down three steps to better approach the problem given at hand, find the solution, and then improve upon it. It will also help you achieve a developer mindset.

1. Break it down

The first step to understand what’s going on is to understand it on a granular level. Given a complex problem, try to dissect it into smaller parts which are meaningful on their own, yet when put together, give you the final bigger picture.

Think of it like the component architecture where everything is broken down into pieces which function on their own but also serves a higher purpose.

2. Find a solution that just works

You don’t have to nail the perfect solution every time on the very first try. No. To be honest, if that happens to you, then you are not learning anything new and there’s no growth. Instead, find a solution that gets the work done even if it’s naive and inefficient.

By doing so, you at least get a working prototype which you can test and iterate upon.

RECOMMENDED

Prepare for coding interviews on GreatFrontEnd - a platform on which the interview resources are prepared by engineers from world's largest tech companies and core maintainers of open source projects.

3. Refactor and Iterate

For me, this is the most interesting and challenging part where you have already figured out the solution, but now you are looking for edge cases, performance improvements, potential bugs and implementation details in your solution.

This is your chance to improve the solution according to your business needs along with maintaining best coding practices. Also, it gives you more depth to add to the documentation - you can add different approaches you took to arrive at the final solution, their advantages as well as shortcomings and much more.

RECOMMENDED

Refactoring: Improving the Design of Existing Code by Martin Fowler is a must read if you are struggling with refactoring existing/legacy code.

Conclusion

This is what I learned in my experience as a software engineer up until now and I like to keep experimenting with this flow. If you have some more thoughts to share, let me know and I will add it here.


Mac Setup For Developers [2025]

Previous