Ten languages is a lot. Someone who tries to learn 10 languages in, say, 2 years is going to come out of that period not having really leaned any.

Here's my list. Ideally, each would be given 2000 hours of effort, or approximately one full-time year. So this is not a bucket list that could be kicked off in a few months.

1. Start with Python because it's easy to get to the point of doing useful work with it. You'll be able to write non-trivial programs quickly, and there are lots of libraries. Python and Scheme are great at getting out of the way when you're starting out, so you can concentrate on learning how to program rather than irksome details, and Python has better libraries.

2. Learn Lisp seriously. Read On Lisp or SICP. Which Lisp? Any will do, but I'd say Clojure's probably the most useful language for this purpose; you also pick up the Java ecosystem in the process.

These are prerequisites. Until you understand functional and imperative programming both, you don't understand programming. It's also worthwhile as an exercise to do FP in an imperative language and IP in a functional language just to get a feel for when breaking the rules (which real programs have to do all the time) is appropriate.

3-7 are "advanced topics" and can be done in any order. Listed in declining order (in my opinion) of importance.

3. A strong, statically typed language like Haskell or ML (Ocaml or SML). I'd start with ML (simpler, more elegant) and progress to Haskell later on if type systems become a passion. ML is easier to learn and not as terse. Why is this item so high? Because static typing, once you learn how to use it, is immensely powerful. It doesn't obviate the need for unit testing, but it reduces debug overhead considerably and that's often the difference between being in "flow" vs. being bombed-out bored and confused.

4. C and X86 Assembler once you start wanting to learn more about the lower-level aspects of computing, which are important if you are writing performance-critical code. These are not the place to start, but they are important.

5. Prolog or a similar logic programming language. Really great not for the practicality of the languages, but in terms of how logical programming can change your view of programming in the abstract. This becomes very relevant in design and architecture, especially of databases.

Concepts, Techniques, and Models of Computer Programming does a good job of explaining the different models and programming paradigms, unified in a logical-ish language Oz. Worth reading, often called the successor to SICP.

6. A concurrency-based language like Erlang or Go. This is given low priority not because the subject is unimportant, but because you'll probably learn a fair amount about this in other items (e.g. Clojure).

7. Java or C++, not because these languages are good (they aren't) but because they give you a sense of what can go wrong in PL design, as well as "how the other half codes". Extra credit for figuring out why and how these things went wrong. These languages were designed by some really smart people; there's a lot to learn from an archaeological perspective about how smart people can come up with such bad languages, and how bad languages in practice affect the way people work.