CS61C $ummer 2017 Lab 14 - A Closing Letter

Author: Alex Yang (alexyang256@berkeley.edu)

Dear CS61C Student, the following are my honest thoughts and feelings.
I sincerely hope that you may derive some meaning from them.

This letter is meant to have a optimistic tone, not a pessimistic one. This letter is meant to be liberating, not confining: it is meant to make you feel good about hard work, not feel obligated to do it. This letter is meant to be warm, not cold. It is meant to sound wise, but not pompous. It would mean a lot to me if you read it.

The course

CS61C can be a real pain of a course. I think you would be hard-pressed to find someone who doesn't think so. Why is this the case?

In my opinion, the difficulty of CS61C comes from the fact that it forces you to do extremely meticulous, nitty-gritty, bitwise, dirty work.

Here is a brief list of things I think are examples:

In all of these tasks, we've asked you to do stuff that you've maybe never thought was necessary for computer programs to run.

I hope that you, the reader, can understand where I'm coming from. In short...

The tedious work that CS61C forces you to do sheds light on the components of programming that are not so easily observed.

Fact: There is a thought that usually crosses the mind of a CS61C student: Why does all of this matter?

Although there are many valid, comprehensive, worth-their-salt answers to this question, I am not particularly good at communicating them. Instead, I will try in a different way to answer this question.

I'd like to invite you to take a step backwards out of the world of programming. (If you were navigating your hard drive on your computer, you'd press the "one level up" button a few times. If you were entering a filepath into your terminal, you'd type the double dots ../ a few times.) Task: Can you think of how doing meticulous CS61C work can help you with life... in general?


Here's what I think:

Doing the nitty-gritty work required of you in this course makes you unafraid of doing other meticulous tasks in your life, which gives you knowledge and power that has the potential to benefit you in ways that are not necessarily apparent.

This is a request: I want you to think of a story in which some stuff happens that very generally follows this framework:

I thought that thinking of an example of something like this wouldn't be too hard, but after asking multiple people and thinking for several hours, I still couldn't come up with an example that I liked. Instead, here is a very basic example that I came up with in my mind:

The story

The main character explores a tunnel near the beginning of the story and acquaints herself with its passages and dangers and whatnot. Later on, she finds herself engaged in some kind of battle with the villain in that same tunnel, and she uses her familiarity with the environment to beat her opponent.

Some other examples that I heard from the people I polled for ideas were:

Maybe you feel that one of these examples fits the framework that I detailed above.

OKAY, anyways... I said that I wanted you to think of such a story, or at least keep the idea of the framework in your mind. The analogy here is that the act of familiarizing done by the character in the story is very much like the work YOU have done in our course. In CS61C, you have familiarized yourself with the machine known as the computer. You learned its ins and outs like the back of your hand, much like the fictional girl in my story learned the ins and outs of the tunnel like the back of her hand. You did so by doing all the bitwise, nitty-gritty stuff that I talked about in the opening paragraph.

If you believe that analogy; if you can draw that connection, I want to invite you to take one more leap of faith and consider the following.

Fact: Doing the meticulous work involved with familiarizing yourself with the computer doesn't JUST familiarize yourself with the computer. Rather, it also makes you more open to the idea of doing meticulous work in order to familiarize yourself with just about anything, and we saw (through all these wonderful examples that the people I polled and I came up with) that the act of familiarizing yourself with something--of getting to know its ins and outs at the LOWEST of levels--can be greatly beneficial. In fact, I'm going to extend this thought by saying:

It is not only potentially beneficial to do this. It is also healthy, productive, intelligent, and in general a good mindset to do this. If you want to REALLY understand something, you'll have to expose yourself to its deepest, darkest secrets, no matter how dirty, meticulous, and excruciating that exposure can be.

Thus, this is how I will answer the question of Why does all of this matter?

The work in CS61C matters because it exercises your willingness to engage with hard, dirty, meticulous work, making you a healthier, stronger, more intelligent person.

When I took this course in the Fall of 2016, I had just moved into my first apartment with my roommates. I learned that living in your own residence which isn't maintained for you by a housekeeper or your parents was quite the nontrivial task. It would be a lie if I said that I didn't see a connection between the dirty work of CS61C and the dirty work of dishwashing, vacuuming, toilet bowl cleaning, and laundry folding.

In conclusion...

It is my wish that you, the reader, will one day find that metaphorical tunnel with which you familiarized yourself with long ago coming in handy to defeat your metaphorical villain at the climax of your life's story.

It is my assertion that all the nontrivial, dirty, meticulous, nitty-gritty, bitwise, low-level, annoying, frustrating work you have done in our course will, in some way, contribute to making that wish come true.

That, my dearest students, is the truth, and it is nothing but the truth.