What is the right starting point to learn (problem solving, programming basics, data structure, algorithms) and which IDE I should invest time to learn it?


I am 19 years old and from a third-world developed country in Africa.

I am new to programming and have never used your software before, so where is the right starting point for programming to be on the right path as I want to have it as a career (freelancing over the internet as I do not have a university degree).

I can not afford the university fees but just have the internet and the passion for learning and my English is average.

I was reading some articles regarding being a good programmer.

Many recommended investing in learning an IDE for the long run compared to an editor.

After a lot of searching, I found that I need to learn several things as follows, but do not know the right order or what are the right paths and right sources for it, and also read about tutorials hell that newcomers stuck in the learning without having a real learning and that tutorials hell may keep going for several years.

What I found so far is that I need to learn:

  • Problem-solving technique, because programming is not writing code, but it is a problem-solving technique using a computer, and the tool you are using to do that is the programming language itself. so you just need to understand the issue first, then solve it or write it down with pen and paper, then start to code it.
  • Programming basics (I am still can not draw a line to determine which topics considered basics and which considered outside the basics circle.
  • Data structure (as far as I understand, it is the contents of the code you are writing).
  • Algorithms (what I figured out is that it is like a map of the treasure you are looking for).

These were the things I was able to write down to summarize my search… and honestly not fully sure that I've understood it correctly.

So please, may you help me by just giving me a clear answer to these questions, and whether if the items I mentioned above are right or wrong?

I have hesitated a lot to post here or not because I know you are a very serious professional and I do not want to waste your time by newly newbies' questions.

To wrap it up, how to start and which IDE to use.