DEV Community

kaveesha
kaveesha

Posted on

Need tips for improving problem-solving as a programmer

Top comments (5)

Collapse
 
ezpieco profile image
Ezpie

Learn the basics... Or more precisely learn to think logically, funny thing I discovered while learning to code is that you don't have to be good in a programming language you just have to be good in solving problems, here go by implementing a search algorithm to find the index of an item in an array, yeah I know anyone can do a binary search, but the main idea is to understand why and how binary search works so good, then try to go from the basics, try to solve the same problem using different languages, go python if you're a soy dev(lol), use rust if you're a Chad lead(hail primeagen!) use any language you want just use plan English if you want! The idea isn't to learn to code but to think in code, just do this, it always works for me:

  1. Write down the problem in words and try to brake it into pieces, real small pieces.
  2. Try to use English words to find the solution(wait let me cook dinner)
  3. Convert this English to pseudo code
  4. And repeat, but make it more and more code language

Now to find the solution just think about the problem, try to understand what the problem is and not what the solution can be. It's never good for both mental and physical health to think of solutions rather then problems.

And finally, KEEPING DOING IT! JUST PRACTICE!

and yeah you can always ask me for help if you ever want, I'm always available, nothing like I have anything to do or something. So yeah got a doubt, pick me up, I can help out, cause that's what I like about programming, it's team work not solo single Napoleon the great thing.

Collapse
 
gene profile image
Gene • Edited

The answer is pretty obvious. Learn Data Structure & Algorithms. Once you get a good solid understanding of the most, you'll see yourself just basically easily understanding each problem more.

In terms of technical problems, a good search internet should help you.

Also, lots of programming!!

Just simply look at this answer from a great programmer

My Question:


@notch hey Notch how did you become better at programming?

— Gene 👨‍💻 (@teknologene) December 11, 2018

His answer:


By programming.

— notch (@notch) December 11, 2018
Collapse
 
ccoveille profile image
Christophe Colombier

Find open sources project. A small ones, possibly one you use. Look for issue labeled with "good first issue". Open PR, listen to feedbacks. You will progress quickly.

Please note you can also use GitHub search "good first issue" language:whatever operator to narrow your search to the language you want to use, while having no idea about the project you could use with.

Collapse
 
ccoveille profile image
Christophe Colombier • Edited

One last way to progress, that requires time and experience is to understand that you could help other people to solve problems without coding anything, or avoiding coding.

Let me explain, someone comes to you with a need, sometimes it also comes with an idea of how to solve the issue. Junior developers don't challenge the one who comes with a need and a solution. It's always good to question the one who ask you something about the reason he/she wants something to be changed. You might solve the problem with an idea that was not considered yet. And if it was, you will have more context, so it would avoid iterating when it will be "ready to be reviewed"

Also, another good way to solve problems is to dare to say "no" when the request leads to too many issues. You will be surprised how often people will accept the "no", either they could say "ah, OK, never mind", or you will both work on finding something that will make everyone happy, instead of creating that will be a pain for you, and also a pain to maintain.

Collapse
 
ccoveille profile image
Christophe Colombier • Edited

I already replied but I will complete my reply by going in another direction.

The reply is the more you will fail, the more you will doubt, the more you will be curious and try more thing, the more you will learn and progress. So the point is to keep your passion.

We have a chance that our jobs offer infinite opportunities to learn and discover things.