Friday, October 14, 2011

The Companion

At the start of the semester, we were given the option of working by ourselves, or working in a group of two with one of our classmates. I'm sure there are a few people in the class that just detest working with other people, but I'm willing to guess that almost everyone is doing the project with a partner. For me, and I'm sure this holds true for the majority of the class as well, working with a partner, as opposed to on your own, was an easy choice. However, after giving it some thought, I have a few arguments against working with a partner (as well as some in favor of it).

My first problem with working with a partner is that the workload is almost never evenly distributed. This isn't (always) because of one person being lazy, but more often because partners just don't have schedules that allow them to meet regularly. When people work on the same project individually, it makes it a much harder project. For instance, say I write a piece of code that makes perfect sense to me, and is working great. so I hand it off to my partner to use for the next step of the project. He takes a look at the code I wrote, and can't make heads or tails of it. So he emails/calls/texts me to try to understand what's going on with it, and then can maybe get the next part working, if I did a good job of explaining myself. The moral of the story is, working with other people's code is hard when they aren't there to explain it to you, and this causes problems for groups that can't meet.

My next problem is that working together can encourage slacking. When you're doing a project by yourself, you know that if you don't get the work done, it won't get done. When a partner is involved, it's much easier to tell yourself that your partner is going to finish it, or that we can put it off until the day before it's due, because there are two of us. That means we'll finish it in, like, half the time, right? This almost never ends well. If you wait until the last minute, you don't finish things as quickly as you thought you would, and you turn in a crappy project. If you expect your partner to finish things for you, you get an angry partner, which is not good and can lead to issues later on in the project.

But for all that can go wrong with having a partner, there is a reason most everyone chooses to work with one. I believe that reason to be the old expression, two minds are better than one. As cliche as it is, I think it's actually quite valid. Chances are, you and your partner have not had the exact same experience programming, which is a great benefit while writing code. For example, before this class, I had no idea what a regular expression was, and no idea how to write one. I did, however, (as I've said in my previous entry) have a good deal of experience in C++. Conveniently, my partner took a class that worked a good deal with regular expressions, but had had almost no experience with C++. Had we been working alone, we both would have had a much more miserable time trying to get anything done. Working together, however, things actually went quite smoothly.

Despite my arguments to the contrary, I prefer working with a partner. One reason is because of what i mentioned in the last paragraph, but there are a couple I didn't mention as well. Probably the biggest one is that, I much prefer writing code with someone as opposed to sitting somewhere by myself typing for a few hours. When you're coding with someone, you have someone there to make sure you're not writing anything stupid, and perhaps more importantly, you have someone to talk to. A good deal of the friends I've made in the computer science department have been a direct result of working on a project with them, and that wouldn't happen if I was working by myself.

To summarize, when working with a partner, there is an off chance that you might not put out the best work you possibly could. But there is a larger chance that you put out better work, and could make a friend. Worth it, in my opinion.

2 comments:

  1. I think you hit the nail right on the head regarding the difficulty in programming with a partner. It is very tough to be "on the same level" with understanding code that someone else has written, and then incorporating that code with your own. However, if you and your partner can overcome that issue by explanation and talking before writing the code, the benefits of two people really kick in. I agree with your conclusion that there are difficulties, but in the end a partner is worth it.

    Ethan Waytas

    ReplyDelete
  2. Time-wise I'd say projects take nearly as much time as doing it yourself but the quality is significantly better. That is, the quality both in the project itself and the programmer experience whether for bad or good. A majority people want to be part of "something bigger". So they join things like a sports team, being in a play, hobby groups or contributing to the larger scientific community. Working with more than yourself creates a more rewarding experience overall, which seems to be an underlying theme in your writing here.
    -Elsa Dosh

    ReplyDelete