I am really happy to work with my partner, Keng. We can learn from each other, and consequently, it made us more efficient to accomplish the iteration 1.
3081 is a writing course. I am not good at writing. Although English is also a second language for Keng, his English is pretty good. Therefore, he can help me correct my writing in the project. Furthermore, when we run into a question, the TA usually does not know what I am trying to ask. But he can describe it properly, so we can ask the TA easily or Google it ourselves. On the other hand, Keng is familiar with the command line. He knows many useful commands. For example, if I want to open Emacs using command line, I would type "Emacs". After that, I need to open another terminal since my original process switch to run Emacs. Then Keng taught me that I could type "Emacs &", then it would create a daemon process which runs Emacs, and I could still use the terminal. It is pretty convenient.
We think thoroughly about the puzzles in the project before we met. For example, I did not know how to make a string or a line comment in regular expression. So I bore this question in my mind, and discussed it with Keng when we met. Then we Googled it and each kept trying on our own. I used to write many codes before this class so that I could implement our ideas quickly. We finally finished it through our efforts. Because we knew the specific questions before we began to work, so it would be more efficient to figure them out in group together. Therefore, we can write down our specific questions of the future iteration before we work together. This ensures the same benefits occur next time.
Although there are a lot of benefits to work together, challenges sometimes arise. First of all, we need to find time that we are both available to meet. But this semester is crazy. Homework and projects are published one by one. I do not have any free time. I think Keng is also busy this semester, so we do not have very much time to meet. Thus, I tried to do some of the work by myself. I finished all of the required regular expressions before we met. Although this was a time-consuming task, it was pretty simple to do it since I just needed to copy them one by one, and then modify them a little bit. Therefore, it was easy for us to do the remaining parts when we worked together. If we do not have very much time available for the following meeting, we can keep in touch with each other through email, and come up with an outline of the project. Using this process, we will just need to consider the tiny details when we work together. As I mentioned before, my English is not very good. When we work together, sometimes I do not understand what Keng means, and sometimes he also does not know what I am trying to say. Still, he is patient enough to talk with or listen to me. Thus, English has not been a big challenge until now. But I should note that I need to practice my English frequently. It is not only important for this project in 3081, but is also one of my key priorities while studying in the U.S.
There is another challenge that would not have occurred in a single-programmer environment. Because I am a bit of a control freak, I always want to change my partner's code to my style. It is a bad habit of working with others. If I have already hurt Keng, I am really sorry about that. Maybe this problem has not yet occurred, but I used to do it last semester. Keng is a pretty nice guy, and I should keep in mind that this project is both of ours, so I should respect his work. I can organize our codes together, but cannot change his code. I hope this is not a challenge for us in the future.