3 ms·
Haskell isn't like most languages people have used. You can't dive into the sort of things you're talking about unless you've used at least OCaml and even then
by coolsunglasses 12y ago
Haskell isn't like most languages people have used. You can't dive into the sort of things you're talking about unless you've used at least OCaml and even then there's going to be a fair bit that's unfamiliar.
It's more like learning to program again, not just a language.
The course I lay out is because it's what I've found to work best. Part of the priority is minimizing dropout rate.
Trying to shove people through a 'practical' project had one of the worst dropout rates of any of the approaches I tried.
Just accept that you're going to learn some basics before dazzling the world with your web app and you'll be much happier for it.
It doesn't take long anyway, if you have a well-designed course and/or experienced people helping you. [1]
I've been thinking about writing a book to address some of the pedagogical problems. I don't know if it'll work out, but I have a few ideas.
So far, the course I recommend not having enough "practical" examples has been pretty far down the list of problems. I'd rather focus on the rough edges that I've observed tripping people up.
Are you learning Haskell right now?
[1]: http://engineering.imvu.com/2014/03/24/what-its-like-to-use-haskell/ http://engineering.imvu.com/2014/03/24/what-its-like-to-use-...
- djur 12y agoNo, I'm learning OCaml, although I've gone through the normal introductory Haskell material and liked it. The catch in your approach is that it doesn't really offer an incentive for people to learn Haskell other than "it's really good, believe me". The best incentive I know of is to demonstrate that people are solving the problems that the potential Haskeller wants to solve, and that there are tools, resources, and even sample code available. Just a little while ago there was a goddamn GIF encoder in JavaScript on the HN frontpage. There was a text editor in Go. Does anyone really need that stuff? Probably not. But the visibility of people solving so many familiar problems in these languages gives newcomers the impression that JavaScript/Go/whatever are powerful, popular languages suitable for a broad array of tasks. Seeing that kind of thing -- that the Haskell community does more than write language parsers and terse implementations of interesting algorithms -- is what's going to convince a newcomer that it's worth the investment to start from scratch on a new, unfamiliar language. At that point they're going to be happy to learn about typeclasses and functors and monoids as stepping stones to the cool stuff they want to do (and in the process, maybe learn that they're more than stepping stones).
- coolsunglasses 12y ago>The catch in your approach is that it doesn't really offer an incentive for people to learn Haskell other than "it's really good, believe me". The best incentive I know of is to demonstrate that people are solving the problems that the potential Haskeller wants to solve, and that there are tools, resources, and even sample code available. I have been saturated and have had to scale how I teach for the last 9-12 months, so marketing hasn't been a first-order concern. There are "ooh" and "ahh" demos I could put up, but other people are doing that work better than I could. I'm just the funnel catching people already sold. Teaching is hard and isn't done well. I like working on this problem and would like to focus on it for the time being. Division of labor yo.
- djur 12y agoWell, I don't mean to tell _you_ what to do. I'm talking about the Haskell community at large.
- coolsunglasses 12y agoFair enough! You should check out #haskell-beginners on Freenode if you decide to pick up some Haskell. Enjoy your day. :)
- tel 12y agoHere's a three-post series building a cellular automata that works on non-standard topologies along with a PNG encoder to print out the results. If I remember right it culminates in a live demo display being served by a Haskell web server. https://www.fpcomplete.com/user/edwardk/cellular-automata https://www.fpcomplete.com/user/edwardk/cellular-automata