There are some good options. What do you want to learn?
If you want to enhance your understanding of functional
programming, go for one of the lisp-based languages.
Emacs lisp is useful. Scheme is popular. There's
always Common Lisp, of course. (Someone
will say Haskell, but pick up a lisp-based language
first before you tackle that, IMO.) If you're
more inclined to shore-up your OO, go for Inform or
Smalltalk. There are other options too of course.
Assembly language is interesting to have under your
belt; you won't use it much, but it's good background.
;$;=sub{$/};@;=map{my($a,$b)=($_,$;);$;=sub{$a.$b->()}}
split//,".rekcah lreP rehtona tsuJ";$\=$;[-1]->();print