So, what do you start with? That could literally turn this thread into war and peace - there is no correct answer.
just to help programming languages are often described as high level or low level or somewhere in between.
Here's the catch - it basically means the opposite of what you think; it doesn't actually mean that say python, which is high level is hard to learn, and c which is now considered low level is hard.
to explain, as I'm sure you are aware everything you're computer does is 1's and 0's. Your computer is also just a calculator, so every program is just a binary mathematical problem to your computer. As you can imagine, it's take a lifetime to tell your computer the whole equation, so languages do the hard work for us. The first of these were assembly and machine codes. They enabled chips to be programmed quickly, but not in a very fast or easy to read way. It was still us having to talk like a computer. These would be classified as the lowest level languages. That is because they are the least removed from what the machine is doing (not very abstract) many languages later, C came out. Now at the time it was considered high level!
This was because it was one if the furthest removed from what was happening. Instead of typing out machine code which very literally tells the chip what to do, you write in easy to read sentences that make sense to us, and then the compiler translates these commands through a dictionary to generate the code.
If you've ever used google translate to translate a french document, you'll understand that this means here may have been a more efficient way to write it if you had a french person to hand!
Fast forward 30 years and the sheer scale of software means that those early low level languages are now impractical and only used for firmware and the once high level C is now used for things like kernels because it has the right balance between ease of writing and abstraction - as of last year, the linux kernel was just shy of 17 million lines of code worked on by one and a half thousand developers; they need to be able to easily read it (just fyi it started out just shy of 175 thousand 20 years ago!)
Now something like python is high level not because they are harder to learn, but because they are easier to learn. Python has a huge library of functions so that you don't have to type it all out, it also does away with a lot of grammar and is a language closer to our own than that of the computer chips. It looks very similar to C in a lot of ways, but it is the grandchild. Same goes for ruby and java. You wouldn't write a kernel in java or python or ruby for a whole host of reasons, but the main one is that they are high level languages - they create additional abstraction between the coder and the chips. Over 17 million lines of code this will decrease performance and as a kernel is such a low level part of an os introduce errors without providing an adequate user performance boost over C. C also has a lot of those built in functions I was talking about designed specifically for this kind of use. It is complex for a reason.
Now if you were going to make an app, you'd likely use java - it's built in functions are most helpful to this. You could write it in c++ but you wouldn't really get a performance boost for all your hard work because you aren't making use of it's abilities.
Honestly if python interests you - head on over to codecademy and take the python course! If nothing else codecademy will set the basics of programming for you - skills you can take to any language!
just to help make it clearer; here's and example of the famous 'hello world' program in C and python:
see how they do the same but there's that little bit more grammar in C? It's what makes it low level and python high level.
print "hello world"
neither is better. Just different tools. They all end up as 1's and 0's!