Niby lepiej jest zacząć, od języka względnie niskiego poziomu (c/c++), ponieważ łatwo wtedy przeskoczyć wtedy na języki wyższe (zazwyczaj skryptowe). Natomiast przesiadka w drugą stronę to naprawdę droga przez piekło (jak "przesiadałem" się z Rubiego na C++ to myślałem, że wyrzucę komputer przez okno. Z 16 piętra. Tak byłem sfrustrowany.).
Z drugiej strony, czy jak już zaczynamy pracować z językami programowania, to czy schodzimy niżej...? Według mnie, kiedy pracujemy z językiem jakiś czas i piszemy spore aplikacje, to wchodzimy coraz wyżej na drabinie abstrakcji - dodajemy frameworki, automatyzujemy sobie pracę w różny sposób, z czasem przestajemy się martwić o pierdoły, którymi zaprzątaliśmy głowę na początku... Więc czy jest sens zaczynać od języka niższego poziomu, żeby potem wejść na wyższe? Według mnie nie do końca.
Do rzeczy - polecam Ruby. Aczkolwiek przesiadka z Ruby na inne języki (nawet wysokie, takie jak PHP) może być szczególnie trudna.