When you'll learn one programming language, for instance c++, then its pretty easy to learn the others.
Once you've learned 10+ it's easy to learn others. With 1? Not even close.
If you learn C++ it'll be easy to learn C, Java and C#.
Perl, Python and Ruby not so much. It won't be hard to learn the big loosely typed languages, but it won't be "easy" either.
Javascript/php etc will be easy. They aren't difficult languages even for a non-programmer. They're bad first languages if you want to become a good programmer though.
Most of the imperative languages will be easy coming from C++ and the imperative OO languages will be even easier. Ruby is drastically different from C++ though and even being a pure OO language it wouldn't be a walk in the park. Python might seem more comfortable for a C++ programmer.
The declarative languages are an entirely different proposition. You could have 20 years C++ experience and find the declarative languages as hard as a clever non-programmer who has less rigid thought patterns.
It's only once you know at least 10 languages that you'll start to find new languages easy since it's likely every language you'll encounter is similar to at least one you know.
The main requirement for being a good programmer is not having rigid thought patterns. It's a very creative field and the creative programmer will be more effective than the rigid knowledgeable programmer for most things other than repetitive systems/web type programming.
*EDIT* ---------- DEFINITIONS ---------------
So there's no confusions all languages basically fall under one of 2 main types
Imperative languages and Declarative languages
Imperative languages are where you solve a problem by programming the computer to go through the tasks in the algorithm to solve it. Ie, you imperatively tell it each step. C, C++, Java, Perl, Ruby, Python, PHP, Javascript, VB and most languages you'll come across are imperative.
Declarative languages are where you declare the solution you want and the computer finds the answers. We don't have 100% declarative languages yet. Functional languages are a subset of declarative where you are dealing with recursive functions. Ie functions modify the input and return output. In procedural programming you can have a function that just does something on the side not related to the main input/output, so functional programming differs from procedural even though they both use functions.
Regular expressions are an example of a pure declarative statement. You tell the computer exactly what you want. Ie.
\w{7}\d{3}\s+\w+ --- This will match 7 "word" characters followed immediately by 3 digits, followed by 1 or more space, followed by 1 or more word characters.
So
abcdefg381 hello --- will match
abcd83138 hello -- will not
Eventually when we have 100% declarative languages we'll be able to just tell the computer the results we want and it'll get them for us.
Think of declarative programming as a man you ask to do a task, he does the task and comes back to you with a solution.
Imperative programming would be an idiot(lol) who doesn't know how to do any tasks, but he knows how to walk, talk, lift, run, jump, sit, so if you give him step by step instructions he can accomplish the same task as the man above.
