Well, yes...
We might argue that anything that can be written in one language can be written in another (since every modern language is Turingcomplete, yadda yadda), and thus that any language is as good as another. I'd argue that that isn't true, too, but even without that, "What we might express" in a language isn't the same as "What is easy to express". And even more so, it is not the same as "How apparent is the translation between what we want to express and how to express it". Language used in learning programming does matter. I work with these things daily, and I can link you a bunch of articles (proper science, research stuff) on the matter if you like, or else just trust me
Yes, we do express the same things by writing
FOR i = 1 TO 5 ... NEXT i
Code:
for (int i=1; i<=5; i++) {...}
Code:
for i in (1, 2, 3, 4, 5)
...
and as experienced programmers, we have a model of what we want to do, we have a model of the machine and the state of it and the flow of the code. As a beginner, you haven't. For a beginner, the words TO and NEXT (which we more experienced types see as unnecessary syntactic sugar) are a godsend in helping to construct that model. The Python verbosity of explicitly listing the list of values to traverse, combined with the word "in", is also helpful. It looks like english, it is even almost readable out loud. Also, it presumes no other particular knowledge. For the C version, you need to understand about numeric types
first, or take them on good faith. You have to memorize the order of the arguments - assignment, test, update - or look them up, whereas in both other languages, it is apparent from the context. There are several kinds of brackets around with different meaning. It is the same thing (although arguably less of a problem) as Javas "public static void main(str[] args)" thingie that means that to write the simplest possible program, you must understand void return types, array notation, visibility classes and classes with static methods - or you just have to take it on faith.
This is less of a problem in a formal teaching setting, where you have experienced TAs or lecturers who you can trust in making these delineations - "Don't worry about that bit, it just is supposed to be like that. You should only deal with these lines here" - but for self-paced, selfdirected learning it is disastrous. Where do you look when something goes wrong? How do you know which parts of your code to trust? The more things you have to take "on faith", the less in control you are when you need to find an error.
The same goes for other parts of the environment. Having a big IDE with completion, libraries, GUI construction tools, project management and the like is more or less a given for someone with experience, but for a beginner, the multitude of options are a hindrance, rather than a help. I pressed the play button thingie and my program doesn't work - Why? Is there something wrong in my code? Was it the wrong play button thingie? Am I having the right window on top? What does "missing library" mean? Why is my program a "project" with what seems to be several directories and files? Where's the exit?
All these things are of course surmountable. It is possible to learn to program from nothing, using C++ in Visual studio. It takes a lot more effort, but it is possible. Which means yes, it is possible to learn in any language. Just as it is possible to learn to ride a bike on a highly geared velodrome rig with fastening shoes and so on - It'll just mean that you fall over and hurt yourself a lot more, and you'll have to figure out a lot of complicated things on your own, at once. Indeed, there are those whose personality makes it the better choice - "I will overcome this! That which does not kill me..." and so on. But the rest of us are probably better served by balloon tyres and traning wheels, at least until we've found our balance.
tl;dr: I am strongly opposed to "You can learn programming as easy in any language". It is quite simply not true.