Help me learn a few new programming languages. Python, Perl, Lisp, Haskell, Ruby.
In college now, been programming for six or seven years already, all self-taught. I started with Java for a couple years, moved on and now consider myself fairly fluent in PHP and its friends (JavaScript, CSS, etc.). I've been having a lot of fun with jQuery lately! And now I'm stuck in a summer internship working on an ASP.NET project written in VB.
I'd love people's recommendations for books/resources to get started in a few high-level languages: Perl, Python, Lisp, and possibly Haskell or Ruby. I went through an O'Reilly book on Perl (I believe it was
this one a couple months ago, so I have a handle on the syntax, but am not terribly capable with it.
Opinions/information on which languages people would recommend (or others) and for what purposes would be incredibly helpful. Other language suggestions are welcome, as well. I don't really have reasons to learn these specific languages beyond "well, I probably should know enough Python to know what it's good for, understand what's going on in Python code if I saw it, and hack something together for a basic task." I'm perfectly capable of searching for tutorials/books on my own, but people's personal recommendations have that knack of knowing which ones worked and didn't for them. ;)
Books/Internet resources/etc. that anyone could point me to would be awesome. Bonus points for a good crash course in Linux shell scripting.
If you know PHP, Perl will be no surprise. Skip it for now.
Python is a wonderful language. Go there next. Since you know two languages already, go straight to "Dive Into Python". Give some time to what we lovingly call "thinkCSpy"; google knows.
Next, try Lisp/Scheme. Spend a weekend and watch "SICP" videos from MIT; youtube knows. Play with Clojure on your JVM. These will make you a better programmer than 95% of the schlubs out there.
Come back to Ruby. Try Tcl for a few weeks. Forth is a different kind of programming, too. Try them all.
Finally, you can't get away from C. It's the lingua franca of programming. Get yourself a good reference. Harbison and Steele's _C,_A_Reference_Manual_ is great to keep next to your desk. Man pages are your friend. (You are using a Linux, right?!) It will take several years to be good at programming in C, so don't immerse yourself in it unless you need to.
posted by cmiller at 9:53 AM on July 9, 2009 [3 favorites]