I just discovered IRC

On Monday night I was trying hard to understand the nuances of processes and shared memory so that I could finish it early and move on to other things. I had been working on it since Friday afternoon and though I had gotten parts of it working (thanks to my professor), there was still some parts that were failing utterly. I read the man page and googled around (which quite often brought me back to the man page) and just as I was about to throw my hands up and wait to ask my professor again, I decided to ask on IRC.

I hopped on the C channel at Freenode and within minutes I had not only found out why program was misbehaving, but I also got two separate suggestions on how to fix it. I may have bent the rules a little bit, but I trust my professor will understand that I actually did learn something and not just steal code of the Internet. I still don’t really know how to implement one of the suggested fixes, but I implemented the other. The fix I didn’t understand is probably the cleaner of the too and I plan on asking my professor more about it.

I repeated the experience yesterday, but with JavaScript and the canvas element (while trying to use Processing.js). I did IRC in the past, but never really to solve problems. I went on channels (mostly #archlinux and #python on Freenode) mainly to interact with the community. Whenever I had problems, I generally googled my way to a solution. In some ways, asking on IRC could be considered the easier path: instead of searching for material, you simply go ask someone who knows. While that may be true to some extent, it’s certainly not what happens all the time. When asking the C question, the other channel members made it perfectly clear to me that I needed to go read more (which I totally agree with). They also helpfully pointed me to resources. IRC channels aren’t “cheatsheets” by any stretch of the imagination. I got the feeling, on both the C and Processing.js channels, that the people on them are very well-versed in what they do. They’re willing to help you, but only if you help yourself (some make this point more forcefully than others).

IRC is a good example of a way to learn Computer science (or at least programming) in a master-apprentice fashion. It’s different from learning from a tutorial or reading the man page. I hesitate to call it “teaching” because it’s more of a free form Q&A. Instead of having someone give you the information up front (a typical classroom setting) or going out and hunting it down yourself, you get to pick the brains of people who have already internalized the knowledge that you’re after. To get to it, you have to ask the right questions and that means knowing the problem well enough to figure out what questions are worth asking. And that requires some thought.

It’s not exactly master-apprentice because you aren’t learning under the tutelage of a single master. I think a more apt analogy would be spending some time at a monastery. You don’t have a very strong connection to the people there, but you share some things in common. You can go with a purpose or without one. But you will benefit more if you do have one. There are some basic rules, mostly concerning respect and etiquette. If you break them, you will be asked to leave and in extreme circumstances, removed. The experience you have is very much up to you and could leave with a profound sense of enlightenment and a strong desire to return and learn some more.

Ok, so I’m embellishing a bit and programmers aren’t really monks (except maybe if you’re Richard Stallman). IRC certainly isn’t solution to all questions and you could easily come away being more confused than when you started, but that could happen with a book or a normal class. IRC is another resource, but it’s a good one. No matter how good search technology may be or how well-written technical docs may be, sometimes it’s good to be able to be walked through problems by a human being. And yes, I do still have questions for my professor.

One thought on “I just discovered IRC

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s