Why You Should Learn C as Your First Programming Language
If you're thinking about learning to code, and don't know what language to start with, allow me to share my controversial opinion. Many people will say you should learn an "easier" language first, something like Python, which syntax reads very close to English. This seems to make sense as if it's easier to learn, you won't face as much struggle and will be more likely to continue learning. However, in my opinion, you should start with a lower-level "harder" programming language first, like C, C++, or Rust.
Now, this will be harder, and many people may quit after facing some struggles, but, I don't think that's necessarily bad. If you are going to quit just because you're struggling to understand, maybe learning to code isn't the right avenue for you. If you learn this earlier on, you won't waste as much of your time, and you can more quickly move on to something else which is right for you.
So, why would you want to learn a harder language first? Well, that's quite simple, it sets you up for success in the future. Let's say you learn Python as your first language, you will pick up a lot of "bad" habits, which would likely carry over to any other languages you try to learn. For example, in Python, you don't need to put a semicolon to signal the computer that it's the end of a line. However, in nearly every other language, this is a requirement, and your code will not execute if this requirement is not met. Whereas if you start with a language like C, at worst you'll end up putting a semicolon at the end of each line in Python, which doesn't prevent Python code from executing properly. There is also the benefit that if you learn C, every other language will be much easier to learn. Now, C doesn't include everything, such as Object Oriented Programming, which you'll have to learn. But the basic syntax of nearly every language is derived from C, so once you know C you can pretty easily learn nearly any other language you want.
Another viable option would be to learn a more "mid"-level programming language. Something like Java or C#, which reads more similar to a low-level language like C, but it doesn't require as much effort, such as the complexities of memory management. This is a perfectly viable option, but personally, I think it's better to learn a lot of complex stuff first, so everything else seems fairly easy by comparison.
So what are you waiting for? Go out there and learn!