Daniel Mai

“Jack of All Trades”

A couple of years ago I remember a friend asking me what college I wanted to go to and, more importantly, what I wanted to do in life—what job I wanted to do. I told her some not-really-an-answer answer regarding the college. I didn’t know much about universities as much as she did (I assume she knew a lot). Something like “I haven’t really thought about it.” And for the occupation question, I told her “I don’t really want to do one thing in my life. I kind of want to do a lot of things.”

“So you want to be a jack of all trades! Jack of all trades, and master of none.”

I think the computing world is a place where I can be a jack of all trades. The gist of what I need to know by the time I graduate from school is: … I don’t really know. Is there a “gist” to a computer science degree? Different universities teach different curriculum, so there’s not really a “definitive” list of things to learn. There’s programming languages to know. There’s theory. There’s math. And a whole bunch of stuff I haven’t even learned yet, such as computer hardware, low-level computer languages (assembly), software engineering practices, et cetera.

Too many things, in fact. Learning all of these things only through formal schooling would mean that I would either be spending an absurd amount of time in school, or cramming them into roughly four years of mere surface-scratching learning.

I believe that studying computer science encompasses many different disciplines. We learn about languages—programming languages are called languages for a reason. We learn about math, logic, algorithms, and “real-life problems”—just like word problems in math class.

I really enjoy computing.