I would like to learn programming but haven't been able to get started. Advice appreciated, both high-level (you should try learing language X) and low level (you can find a program that will run language X here), the latter has been a particular problem for me, I don't really know how this sort of thing works.
I am currently studying maths and physics, and I have a particular talent for the former, so I would probably do well with a language that plays to that strength. My only actual experience with programming was when my father let me play around with Jython a bit when I was about 13, I had some fun calculating prime numbers and approximating pi but never got any farther.
Thanks in advance for all suggestions.
Came here to recommend Python and Project Euler. Looked at the comments and saw that it seems to be the emerging consensus anyway.
Another nice road to programming is via Javascript. This way you don't have to install anything, just make an html file in your favorite editor, write some lines of script there, and view it with your favorite browser. You can try doing Project Euler exercises there, or you can get immediate gratification by coding up some graphical interactive stuff. It's really easy and fun. This also happens to be the way I originally learned programming (using qbasic instead of js because the web wasn't around yet). Can't imagine the other commenters learned programming by jumping into Scheme or Haskell, or reading SICP, or whatever it is they're recommending :-)
And one last piece of advice: don't get bogged reading stuff until you come across a specific problem that looks like it should be solved by reading. Most people read too much and do too little, and this skews their perception of what's good for you. For me, programming is much more similar to building model airplanes than it is to math.
I'm looking to learn more after my intro Java class in college about 6 years ago. Python is widely recommended as a first language, though opinions do vary. I guess I'd plug Dive into Python. Even if you're not experienced (and I don't consider myself as experienced after one semester), I've found it quite kind and think the rest will scale well.
One other recommendation... just try to do things. Think of something very simple you could use programming to automate and then learn how to do it in the language you chose to focus on. This helps immensely more t... (read more)