here is my own opinion about learning a programming language (any).
If you know any programming language, learning the basics of another language is not that hard. Now, if you want to master any programming language, you will have to spend "butt hours" in front of a computer coding and finding the nitty gritty details.
It becomes an easier task if you know the concepts well (algorithms, data structures, design issues). For instance, Java, C++, C# are all object oriented languages. If you know the OO concepts well, you won't have problem switching from one to another one. You will still need to work at mastering the details though, that's the time consuming part.
The levels of difficulty from one language to another one are different. Java and C# are easier in comparison to C++. It also helps that there are huge libraries for JAVA and C#. BASIC is extremely easy in any shape or form. Assembly language is a pain in the ass regardless. C is easy to learn but hard to master. C++ is hard because it covers a lot of ground (OO, meta programming, etc).
Then, there are esoteric languages that have their own niche (logic languages, functional languages). They can bend your mind backwards if you are not used to them.