Go read Syne Mitchell's History in Code. It's a really neat story of a teenage girl learning to program.
I recall fondly learning to program myself, on my aunt's old EL-5200 - one of the first graphic calculators. It used a weird custom programming language, and it wasn't spectacularly useful. It took 30 seconds to graph even the simplest function. I ran a few neat little arithmetic programs; I had a loop program that computed pi (and one for e, and one for the golden ratio), and a program to graph superellipses. One that computed Fibonacci numbers, some for geometry, and some for obscure little calculations for Mathcounts. The cubic formula, die roll, and something for finding your way through a maze. The Drake Equation, and relativistic time dilation. (Man, I was a nerdy seventh grader.) My big accomplishment, though, was "Pong". It wasn't interactive - there was no way to input anything without stopping the program - but it made a little dot bounce back and forth, and that was quite impressive to me.
End of eight grade, I moved up to a TI-84 calculator. Programming in TI-BASIC - not even a full BASIC command-set, but enough to do some neat things. I could do basic graphics (very, very basic), but enough to play PONG and Asteroids. I tried my hand at games, but I couldn't do a lot more than improving a friend's very nice version of blackjack. My big accomplishment was a rocket simulator; it grew to include several different functions and over 100 motors. BASIC is not a great language for the beginner - it corrupts your mind a bit - but I learned quite a bit about optimization. I figured out a basic search function for a database of motors, and I optimized a loop to run extremely fast. I still use it once in a while, for quick-and-dirty simulations (it's good to within about 5% of commercial simulators) and for parachute calculations.
Eventually, I'll get around to learning Python.
The Boston Projection
17 hours ago