Frank Mitchell

Did I earn my CS degree?

I used to advocate teaching Ruby in schools. Why force students to struggle with C when they could be learning a “more useful” language? I was wrong.

I used to think that it was the job of a university to prepare me for the job market, that schools should be teaching “hot” languages like Java and C#. That’s not their job at all.

Somehow I got the idea that computer scientist was just academia speak for programmer. Being a computer scientist is not about maintaining legacy code.

I’m going to graduate in May with my Bachelor’s of Science in Computer Science, and I’m not sure that I’ve earned the degree.

Being a computer scientist means having the technical expertise to implement something like the MapReduce algorithm. It means having the vision to dream up an interface as novel as that of Sketchpad. But in order to do those things you have to have to understand the basic principles, and it is there that I think my education is lacking.

Unlike a lot of the students in my compiler’s class, I do understand pointers and recursion. But I know that I’m missing fundamentals like Lambda Calculus. Why, oh why, was I never given more than a cursory introduction to Lisp? There are answers out there, if you’re willing to accept them. Computer science has become pop culture, and companies like Microsoft are insisting that people like my mother learn to write code. (See Sriram Krisnan’s essay, Lisp is sin.)

Ultimately, any fault in my education lies with me. So I guess it’s about time to start reading the wizard book.

Conversations

18 March 2006

“Take heart. You recognize what you view as deficiencies in your education. That never ends. Some of that you’ll address by reading. Some of that you’ll address by inventing. Just try not to re-invent the wheel too many times. Best of luck.”

Jim Greer