Help regarding Learn Programming


I am trying hard from long time but I am unable to code Programming problems. Only basic and begginers programming problems I’m able to solve. A little bit hard/advance level (even little medium level) programming problems tend me to think more and more and ultimately I failed to solve it. My approach is always to solve question on my notebook firstly through mathematics and then code it, but I’m unable to think logic of solution. I try hard but still get failed. I’m unable to caught the exact and excellent logic to solve the problems.

I just want to ask for help regarding some tips, practices, habits, sources, important points, suggestions etc anyone can tell me to improve my programming skills. I will follow your suggestions. I just want to be a good programmer (I mean better programmer).

1 Like

why not using online tutorials? there are many examples on the net and online course

1 Like

Try to use reddit, there are good subreddits for it.

1 Like

Hi Landi,
Here is a thought: it might be that your approach of trying to work out the entire solution on paper first constitutes a barrier to learning and makes it harder to succeed.
Working out all of the details on paper requires several prerequisites that are often absent.

  1. Complete, accurate documentation would be wonderful, but often what is available falls short, so there might be things you need to know that are not written. You can fill in the gaps yourself through trial and error, but I don’t see how you would ever do it on paper.
  2. A complete understanding of what you are trying to achieve, and how it is to be done. I typically do not really understand that until I’ve finished actually doing it. Its like you’re driving a car at night: the headlights only shine so far into the darkness; unless you move forward, there is no way to see further down the road. As you discover more, you might realise that an assumption was completely wrong and you need to take a different approach.
  3. Even a simple program typically uses other sub-systems (eg. libraries, includes, shell syntax, or protocols syntax) so you also need to understand how those work, not just in theory but in practice. There are often differences between how they are supposed to work on paper and how they actually work (implementation differences, quirks, or features that are described incompletely in the docs).

So if working out everything on paper is intrinsically difficult, what are you supposed to do?
What about adopting a different approach:

  1. start with a very small program that does only one thing. Get that to work first.
  2. add a feature. get that to work. ensure the whole program still works.
  3. repeat step 2 to get closer and closer to your goal (which might change a little as you go forward, that’s ok) until you are happy with the result.

If you like formal methodologies, you might be interested in Test-Driven Development (TDD) and Refactoring, or you might pull useful techniques and concepts from them and develop your own methodology that suits you.
Good luck!