Re: Teaching Haskell <at> MOOCs like Coursera or Udacity
Kristopher Micinski <krismicinski <at> gmail.com>
2012-10-25 21:16:21 GMT
On Thu, Oct 25, 2012 at 4:57 PM, Gregg Lebovitz <gregg <at> fpcomplete.com> wrote:
> I am trying to get a learning center started in the Haskell community. As
> pointed out below, MOOCs are hard to put together, however training and
> videos straight forward. There is a lot of teaching material available in
> the community. It is a matter of finding, organizing and curating it.
At the same time the Haskell wiki and Oleg's site taken together
constitute a good amount of learning material in a semi organized
fashion. These aren't replacements or implementations of your idea
but they come pretty close (to the point that I could spend quite a
while on the combinations of those and still feel unfinished..). I
think the Haskell wikibook also does a good amount to address further
concepts in Haskell. There have been tons of great FP books written
over the years, many of which aren't even frequently mentioned by
people, but at the same time nothing helps like actually using it in
your own personal projects, I haven't seen so much elaboration on
*this* point. (For example, doing this would probably mean talking
about a set of parser combinators, some script-y haskell libraries, a
web framework, etc...)
After all, if we didn’t need teachers, then we could earn our
undergraduate degrees by spending four years in the library.
Is this not what most people do? I know that was certainly my experience .
One problem with Haskell: the language moves fast. "Core Haskell"
isn't all that hard, but if you open any real Haskell project, it's
going to use advanced (sometimes unstable) extensions that aren't
going to be in your book or web guide, making some people feel stuck.
These concepts aren't necessarily difficult, but if you actually want
to use Haskell you need to face the more popular language extensions.
Off the top of my head, existential types, arrows, higher kinds, all
stick out to me as being things you see in most code, along with (of
course) monad transformer stacks that will scare off newcomers and
aren't explained in any cohesive context other than the Haskell