Its not just people whove never coded before.
Often I get these messages from people who have several years ofcodingexperience under their belts.
Im not saying this to complain.

I profit greatly from people having such questions.
40% off TNW Conference!
The thing is, it all depends on the problem at hand.
The question should be: How can I solve software problems better?
How to solve problems
For full disclosure, Im not a computer scientist by trade.
That being said, physicists are similarly sought-after as computer scientists.
Thats not because of their knowledge about neutrinos or black holes; its because of their problem-solving capabilities.
Understanding the problem
Dont skip this step, ever!
If your friend doesnt understand what youre talking about, you oughta get back to the problem statement.
Key questions to ask are:
2.
Break the problem down
Every big problem consists of lots of smaller problems.
Its also more motivating, because youll be achieving small but important milestones along the way.
Start with an example
The devil is always in the details.
Instead of starting with the whole project, take a little piece of it.
Try whether your plan works, or whether you have to adapt it because of unforeseeable difficulties.
This helps you get your head around the hard parts.
Many problems sound simple, but when you start building them there is one roadblock after the other.
Trust me, this happens a lot!
Run small tests first, and verify your solution works as you envisioned it.
Execute
This is the meaty part.
Now you’re free to build the solution for your large problem.
Throw all your data at the code.
Run a fancy model.
Do whatever you want.
Having completed the three prior steps, this should run through quite smoothly!
Reflect
Just because you found one solution doesnt mean you found the best solution.
You might want to exchange with your colleagues and ask them how they would solve the problem.
Is their approach different from yours?
You could also make a run at identify the biggest bottlenecks in your solution, i.e.
the parts that take the most time and resources to execute.
How can you improve them?
Finally, reflect on how your solution might evolve in the future.
Would new software frameworks or the use of AI make your solution better?
How could your solution contribute to solving other, even more complex problems?
Its worth reminding yourself that this is less than half of what it takes to become an excellent programmer.
The other half is problem solving.
You wont acquire problem solving skills over night.
This article was originally published on Medium.
it’s possible for you to read ithere.