DEV Community

Cover image for How to develop strong problem solving skills as a software developer

How to develop strong problem solving skills as a software developer

Nathan on August 10, 2022

Introduction It is generally known that problem solving is an essential skill for software engineers. Good problem solving skills invo...
Collapse
 
grunk profile image
Olivier

For students , don't underestimate the mathematics. You definitively don't need a master degrees in maths to be a successfull developer BUT , mathematics train your brain to think.
All this theorems you probably never used in real world , all thoses equation you resolved in high school helped your logical reasoning.

Finally, to get better at resolving problem you definitely should resolve problem :P The more you resolve , the better you get !

Collapse
 
nathan20 profile image
Nathan • Edited

I agree with you! I mentioned it, practice and practice..
About maths it is also another alternative

Collapse
 
jacekandrzejewski profile image
Jacek Andrzejewski

Science shows that there really is no knowledge transfer between unrelated fields. There is essentially no way to get overall better at thinking. You either can relate what you know already to the thing or you can't. In first case it's experience, not brain trained to thinking, in second it depends on if you learned how to learn.

Logical reasoning is a small part that everyone does even without thinking, but it doesn't transfer if you don't use abstractions to relate what you don't know with what you do know.

You can get better at resolving problems overall, but it's a tiny improvement if you don't focus on learning how to solve problems. Solving problems on it's own gives you experience you can use at solving similar things. But it won't help with different problems.

That being said if you can relate math you learned to problems you need to solve it can sometimes make something impossible into something very easy. That on it's own is a good reason to get good at maths.
The other one is training on how to read information dense domain texts.

Collapse
 
standiki profile image
Stanley Diki

You're right, solving mathematical problems help increase logical reasoning, and I believe that's a major reason we do maths in Computer Science. Working with numbers is a top-tier ability if you want to become a successful "software engineer". Thanks.

Collapse
 
standiki profile image
Stanley Diki • Edited

You're right, solving mathematical problems help increase logical reasoning, and I believe that's a major reason we do maths in Computer Science. Working with numbers is a top-tier ability if you want to become a successful "software engineer". Thanks

Collapse
 
abhinav1217 profile image
Abhinav Kulshreshtha

Just like Neil deGrasse Tyson said, It is not about finding the value of x, It is about process for finding the x.

Collapse
 
fjones profile image
FJones

I have to disagree, especially on the Maths->Logics path. I found it's a lot easier to go into Logics without Maths, even though the basic principles are similar (since both are just formal languages).

Collapse
 
emil profile image
Emil

What he meant is that math trains your brain. Either way it’s math or not it’s necessary to think structured to solve programming problems. I have seen so many bad code written my mathematics (no offense 😃)

Collapse
 
apimike profile image
Mike Rozner

Great post Nathan, but I think you've missed one fundamental skill of a dev and that is humor..
Image description

Collapse
 
jarvisscript profile image
Chris Jarvis

You have to joke so you don't cry.

Collapse
 
gass profile image
Gass

what a cool drawing!

Collapse
 
nathan20 profile image
Nathan

Hahaha @apimike humor is important!

Collapse
 
grunk profile image
Olivier • Edited

I just said that math was a way , and because it's basically taught in every school of the world (contrary to other knowledge) it's important to embrace it and understand that what you are taught is not how to multiply 2 number but actually how to think.

I realized it way too late, I always hated math when I was young because I wasn't able to figure out the point of what I was taught.

The misconception is , that you have to be good at math to be a good developer. Indeed that completely false (unless your are developing for some specific field).

Collapse
 
itechsuite profile image
kingsley Goodluck

Being a successful software developer, one needs to be open to learning and unlearning. I've learnt and unlearnt and am grateful I did. Most of the time I share with colleagues and friends, I got to find out the knowledge that was most neglected, tends to be a challenge for someone else.

It's a mentally demanding field. It's not just a job, it's a way of life.

Collapse
 
ayodejii profile image
Isaac Ayodeji Ikusika

this is spot on

Collapse
 
gass profile image
Gass • Edited

Thanks for the article, it resonates.

I read most of the comments and can't stay quiet. From my years of experience, math can be a really powerful tool when it comes to solving problems. Ofcourse is only one of the tools out there that can empower a programmer. Another tool I found to be crucial are flow charts. Being able to construct them the right way can help a lot.

e. g. This problem I solved it using only math. And I have used many concepts of math and physics for game development. To understand algebra, arrays, matrixes, vectors, magnituds, forces, inertia, acceleration, etc... Can be crucial on the development of certain softwares. But it all depends the area in which you are coding.

Collapse
 
alvi_niloy profile image
Alvi Adhikary Niloy • Edited

A newbie here. I've a different problem . i.e. I face difficulty while implementing the code but I know the theory & logic behind it. Any suggestion/advice for me anyone ?

Collapse
 
nathan20 profile image
Nathan

Hiiii maybe I will write an article about it ! Nice idea :)

Collapse
 
madza profile image
Madza

a great read

Collapse
 
gorzas profile image
José David Cano Pérez

I wonder if there is literature about how to improve and train your problem solving skills. Could you recommend books about this topic?

Collapse
 
nathan20 profile image
Nathan

Personnaly I don't know books on this topic, but if you have got something share it with us :)

Collapse
 
1596944197 profile image
梅一一

this article and that comments below are good

Collapse
 
jeffchavez_dev profile image
Jeff Chavez

Thank you. "Divide and conquer" works for me.

Collapse
 
freedisch profile image
Freedisch

I think, being open-mind is a way to simulate our brain when it comes to creative thinking.
btw nice article

Collapse
 
hudsonxp80 profile image
hudsonxp80

I have a short, simple rule: be creating and imaginary as much as possible. That's to say whatever others do you can do differently and/or more crazily.

Collapse
 
mypaperwriter profile image
MyPaperWriter

Software quality assurance consulting services are specialized services offered by qualified experts who evaluate and examine software systems for flaws, weaknesses and potential threats. These qa company haberforever.com/ help companies improve the quality and reliability of their software products by providing extensive knowledge and skills in software testing methodology, automation technology and industry best practices.