This morning as I was cleaning-up over a hundred channels of irc spam (thanks to z5f6dz4n4y and friends, very informative!), I read this:
I'm a student, on my final year in a college in India, and I have been using GNU/Linux for quite sometime now. Though I'm from a Computer Science background, getting into a project that involves serious programming was not possible, as people (read teachers) run away if you utter the word 'Linux'. They are generally not bothered about mentoring someone on an exciting project, and they would suggest you to get settled with Visual Basic, .NET, — and would prefer a 24 hour solution when it comes to programming. So, my programming endeavors have remained limited to writing few lines of C/C++, or Java. For last few days, I've been googling, and trying to read how to join an existing Open Source project. [Quoted from Slashdot posting]
I have so many comments, it's hard to know where to begin. Some time I'll write at length about why I think we teach programming wrong when we focus on writing vs. reading code. But that's a post that would require me to have had coffee first, and it's still 7:00 am. So let's pick on the professors for a second. I can do that, because I'm one of them.
The real problem, as I see it, is that professors are afraid to admit they don't know things, and because of this, they control access to information and projects. I was speaking at a conference a few weeks ago and I was talking about strategies for dealing with questions for which you don't know the answers. "But I always know the answers to the questions in my class," said one perky prof. If that's the case, you're doing it wrong. You're not pushing beyond your limits, and you're certainly not giving your students anything approaching a real-world experience.
Just last week I was asked to come and sit-in on a major project proposal for a group of students. The project sounded amazing to me, and it was clear the students were excited. After the presentation, I watched the professor discourage the students and tell them it wasn't possible: "I think this is too big...there are at least seven projects here...you should rethink this." Let me translate that for the benefit of those who don't speak 'professor'. What my colleague was really saying was, "I couldn't do this, so you probably can't either."
In the interest of providing a better model to my colleagues, and to prove my point to the students reading this, let me tell you something: I don't know the answers to all your questions. That's how it should be. Students should be working on projects that are hard, projects that are big, projects that are real. Don't do something I already know everything about. Do something I don't know much about and teach me.
To the student in India wanting to get into an open source project, and to the others like her, let me extend an invitation to come and work on Mozilla. Come on IRC and ask for dave and I'll spend some time telling you that you can do this, and introduce you to students from around the world who have already done it. I won't be able to answer all your questions. Rather, I can show you how to be lost productively, and how to become comfortable not knowing things and teaching yourself.