This is an experiment

Originally posted here:

Most of us here are already programmers, or want to be. All of us are going to give up time to work through HTDP. It is a sacrifice. How do we know what will happen? Well, we don’t.
I think of this first group as being an experiment. We’re going to find out what works and what doesn’t, we’re going to figure out who might like something like this more than others, and most importantly we’re going to get a good sense of what one learns on this path.
What I can tell you is that HTDP has excellent reviews, an excellent track record in schools around the world, and most importantly excellent authors who are really dedicated to teaching. That last part
is particularly important. It was written by teachers, not programmers. They know how to teach; most of us don’t!
For me, that, combined both with my interest, and what I’ve seen so far in the book, is enough.
This isn’t a learn programming in 21 days scam, fluff book on the latest fad language, or the extended sermon of someone who makes his money by talking and not doing much else.
This is an experiment, for programmers, and, I think it is going to pay off pretty well.

Based on what I’ve seen so far, we are all learning a lot about: programming, communication, and culture. It is true, it is an experiment; the notion of good and bad are less important here, everything we are learning, painful or pleasant, is very valuable.

Working with Google Groups

Overall it has been a pleasant experience working with Google Groups.
Rather than set up a server, install the wiki, file share, and listserve myself, and host it on the Internet; I can set up a group there instead. It is pretty convenient. Additionally, their interface is pleasant and search works pretty well (no surprises on that one!).
One decision that I made is that anyone can join the group, there are no restrictions. Additionally, there is no moderation on posts. I hope to encourage a certain atmosphere and culture. Thus far it has worked well.

Opportunities while studying HTDP

While studying HTDP, there are a few opportunities that occur during the process:
Practice Blogging:

I am assuming two things:
1. We are all going to learn things.
2. It is going to be fun.
That alone is worth blogging about.
If you haven’t got a blog, this is an excuse to start one.
The tagging facilities that most blog engines provide today allow you to ‘tag’ your posts. I recommend you tag them with ‘Study-HTDP’, which is more specific than just ‘HTDP’ or ‘Programming’ alone.
My goal is twofold:
1. For you to capture your thoughts and ideas, and practice writing.
2. Expose said thoughts and ideas to other folks who may be interested in them.

Study Revision Control:

If you aren’t already using a revision control system, now is the perfect time to do so.
You are going to be writing a lot of code that you most definitely will want to tag and probably eventually branch.
Subversion is a easy, powerful place to start.
Everyone should have a SVN repository available to them for storing their work.

What will we do, and when will we do it?

Originally posted here:

What we will do is to read and complete the problems in HTDP.
When we’ve got questions (or thoughts or ideas) about the content (any content, not necessarily limited to HTDP, anything CS/HTDP related is fair game), we should send them to the mailing list.
I will respond to, and post, questions every morning and every evening around 7:00am and 7:00pm or so, my timezone is:
Central Standard Time (CST) = GMT-6
Central Daylight Time (CDT) = GMT-5
Since we’ve got a geographically distributed group, many of us will be on virtually opposite schedules.
I’m thinking that every one or two weeks, we should have a chat on Skype just to touch base, identify issues and opportunities for improvement, and generally do what we can’t do well over email (not sure what that is yet, but lets find out).
Another question worth answering here is “How long will it take to finish the book?”.
I don’t know the answer to that. I interest of finding the answer, I’ve decided that we’ll timebox the first class to 4 months. There are 8 sections (with various intermezzos), which gives 2 weeks to every
section.
This is an aggressive schedule. While I expect some sections to be easier than others, I am banking on two things:
1. We’ve got a group of highly motivated people. Since most of us are doing this on nights and weekends, we *must* be interested. Besides, we don’t want this to go on forever. Without a goal, we’ll eventually lose momentum.
2. We can, and will, revise our estimate as we go along. The goal is to learn, not to meet a deadline.

We’ve made a couple of modifications since then:

  1. There are two groups. Group 0 is sticking with the very aggressive schedule.
  2. We added the intermezzos into the schedule, 1 week for each.

Group zero is averaging around 10 hours per week to maintain the current goal of one section every two weeks; the second week ending this Sunday (I’m tracking all of my study time in hopes of providing a detailed account of where I spent my time).

Who is participating (at least initially)?

Originally posted here:

Initially, the folks participating are primarily either co-workers or non-co-worker friends who have wide range of experience and interests.
From my perspective, everyone is welcome.
The more interested, motivated participants the better!

I’ve been delighted by the number of folks that have showed up on the Internet either to participate or help. There are a lot of great people out there!

What I post about Study-HTDP

About three weeks ago I “made it official” and announced the Study-HTDP for any folks who may be interested. I figured that I would post both to the group itself, and mirror the interesting things here. It didn’t really work out that way.
Focusing on the work and not much else, I’ve posted exclusively to the group. Since we’re only two weeks into it, though, I’m going to make a change and post the most interesting content here. The reason is that I want to be sure to have a place to keep my notes and thoughts on things so that they don’t get totally lost in the overall group.

A Prodigious Error Message

For my BarCampMadison2 presentation this year, I prepared a DVD “gift bag” with a lot of material on Functional Programming (FP) and specific FP languages like Scheme and Haskell, and also included DrScheme binaries for Mac and Windows and source for UNIX.
Yesterday I received an email from one of the attendees. He was copying the contents of the DVD to a directory on his UNIX system. In the course of doing so, he got an error message. If you are even superficially familiar with Monads and Haskell (as I am), you will surely find this error message prodigious!

/mnt/cdrom$ cp -R library ~/lisp-library
cp: cannot access `library/Haskell/Monads': Input/output error