TI-83 Basic is a great way to learn
programming (I taught myself while
killing time over many
Math classes). The language is very simple, yet it still functional enough to make functional programs, complete with drawing functions. It is an
interpreted language, and thus makes it easy to examine the
code of others for educational purposes.
And the entire
development environment fits in your
pocket!