
On 5/7/05, Daniel Carrera
Stefan Monnier wrote:
I have a lady friend who wants to learn how to program. She's a technical person, but has no math background to speak of. I can't decide whether to start with a clear-syntax imperative language (Ruby) or a functional language (Haskell). I confess I've been leaning towards Ruby.
In my limited experience it's easier to learn an imperative language after a functional one than the reverse. So I'd recommend she start with Haskell. It's actually easy to learn if you haven't been lobotomized by Java/C/C++.
:-)
Maybe that's why I like it so far. I haven't been corrupted yet :-) I don't know Java. I glanced at C++ and decided I don't want it. I like C, but I program it at an amateurish level.
I'll keep your thoughts in mind.
In your opinion, do you think Haskell is appropriate for someone with zero math background? I can't imagine how I'd explain something like currying to someone who doesn't know math.
I have some experience teaching Haskell (TA) and I am too of the opinion that FP is a lot easier to learn than imperative programming if you have zero programming background. However, if you've warped your mind enough to actually "think" imperatively when solving problems (by years of C programming, for instance), you may have trouble unlearning that before you can really get effective with FP. Also, math is no prerequisite if you ask me. The concepts in FP are natural and straight-forward, and so is (most) math. You could just as easily learn math by programming Haskell as learning Haskell by doing math. /S -- Sebastian Sylvan +46(0)736-818655 UIN: 44640862