Haskell has this philosophy that you first think really hard about what you want to do, then write an elegant well typed program in Haskell to do it. The real world is usually much more messy, the problem and solution are not well defined, you will need to start coding just to figure out what you need to really code. So Haskell assumes well typed code can do no wrong, but often we are debugging our own mental models.
I found that once you know your way around the basics (which the FTP mentioned here is a big part of), it becomes quite trivial to just "hack away". I am now 4 years aboard the Haskell train and use Haskell for scripting work I would have used bash or Python before. That said I have about 10 years of practical Java experience under my belt and Haskell was refreshingly different. But before this thread get's out of hand I'll keep my fanboy mouth shut ;)