Yesterday I rewrote about half (the entire front-end) of a project that took me and two other collaborators several months to complete a few years ago. At the end of a solid work afternoon, I had things compiling and running, but in a very buggy state. Unexpectedly, the associated feelings turned out to be somewhat bittersweet and conflicted. I’m happy and proud of how much I’ve improved in the years since I first worked on this project, but I’m also sad thinking of how much faster and better things might have gone originally if I had known back then all the things that I know now.

Later in the evening, I learned something new (GADTs and how to use them in OCaml), which makes me hope that in a few years I’ll be even more capable than I am now. At the same time, I’m also wary of falling into the trap of rehashing old projects and ideas with new tools and techniques, rather than moving forward into new areas.

A part of me really wants things to be “just right”, not just when it comes to work, but in the rest of my life as well. It’s almost a visceral when I have to deal with things that don’t seem (close to) perfect for long periods of time. But at the same time, keeping a steady pace of progress in research and engineering requires knowing when things are “right enough” and moving on to the next thing.

Navigating that boundary isn’t something that I have a lot of experience, but I’m hoping that just like my programming skills, it’s going to be something I get better at in the coming years.

Advertisements

Computer Science as a Creative Endeavor

Yesterday, Professor Eugene Wallingford posted about how computer science is not that different from a lot of other professions. Some parts of it are interesting and exciting, but a decent chunk is tedious, frustrating and boring as well. In his words:

Let’s be honest with ourselves and our students that getting good at anything takes a lot of hard work and, once you master something, you’ll occasionally face some tedium in the trenches. Science, and computer science in particular, are not that much different from anything else.

While I agree with the general message, in my experience, computer science is also a wonderfully creative and exciting endeavor (even if we often struggle to portray it as such).

Throughout college I had a variety of on-campus jobs. I was mostly trying to make some spending money, and pay for the occasional trip with friends. Through that time, I remember the jobs that were most fulfilling and interesting involved something that I would broadly call “computer science”. Some of it was doing honest-to-goodness computer science research (which later helped me get into graduate school), some of it was data crunching, and some of it was simply straightforward scripting and system administration, with a dash of web design. In fact, my first job involved calling up alumni asking for donations, and I promptly quit it after a week once I got a job doing some data processing for a professor.

Of course, I had found computers interesting for several years prior to my first college job, so I certainly wasn’t unbiased when I started comparing jobs. I can also imagine that a lot of people would consider calling up alumni a far more interesting job than munging CSV files with Python scripts. And there are certainly parts of even technically demanding programming tasks I find tiresome and would happily avoid (pretty much anything to do with CSS).

All that being said, (and with several years hindsight and interaction with professionals in other fields) I would place computer science on the same level of creativity as screenwriting and practicing law. In all these cases, there are certain structures and rules you have to follow, some more flexible than others. Some parts of tools and materials you have to work with are beautiful and elegant, others are messy and ugly but can be avoided in part, and some are just necessary evils. But within those rules and using those tools, you have the chance for exercising creativity and ingenuity, and maybe even some true beauty (if you’re lucky and capable enough). In fact, having taken a bunch of law classes, I would say that the practice of computer science has a lot in common with the practice of law (though that’s a matter for another post).

Perhaps the view of computer science as tedious is an indictment of our teaching methods, our tools, or the creeping incidental complexity that easily infests software projects of any size. But if projects like Pyret, Scratch and Jupyter notebooks are any indication, there seems to be concerted effort to change that. I’m not a fan of the mindset that says that HTML/CSS/JS must be taught to everyone, and it would be disingenuous to say that computer science is simple or easy. But as both academics and practitioners, I do hope that we can be honest about the effort and occasional drudgery involved, while helping understand and appreciate the joy of programming and the thrill of computation.

Problems versus Exercises

A few days ago an interesting set of articles on mathematics education did the rounds on Hacker News. The first of those articles is “Problems versus Exercises” which talks about how a mathematical exercise (repetition to develop a skill) is different from a problem (something that is difficult to solve and often requires some creative skill). That articles is followed up by “Repetition and Practice“, “Resources about Learning Mathematics” and “Courage in the Face of Stupidity“. The last, especially, is a worthwhile read for people involved in any kind of intellectual, creative activity.

Personally, I had never quite realized the difference between exercises and problems, and I suspect neither have most people (even among the more mathematically inclined). Most of my mathematics education has been focused on exercises (however, I can distinctly remember examples of “problems” in physics). While I’ve never been afraid of math (and generally achieved respectable grades in mathematical subjects), I’ve never been particularly fond of it either. In fact, I’ve often said that I have a “grudging respect” for mathematics. I do wonder how much of that is due to my education, and how much is due to my having strong interests in the arts and humanities (then again, how much of that is due to my education, I wonder). All of this is a long winded way of saying that though I’ve never really articulated the difference between exercises and problems, I have been known for a while that the typical classroom exposition of mathematics is only provides a part of the picture.

Over the last few years I’ve been exposed to increasing amounts of mathematics. My main interest is in programming languages, which can be deeply mathematical (though it’s a breed of mathematics far different what most people would recognize as “math”). I recently started learning machine learning, which is yet another deeply interesting branch of applied mathematics. A lot of this exposure has been problem-centric, rather than exercise-centric (though there have been exercises along the way). While I certainly wouldn’t classify myself as a mathematician (I’m more comfortable building things than proving theorems), I’ve been developing an increasing respect for mathematical thought and tools.

A side-effect of this exposure is that my interests have been changing. I’ve been losing interest in things like web development, productivity tools and the like and becoming more interested in problems and ideas with an interesting formal foundation combined with practical applicability. In some ways, I’ve been losing interest in exercises (repeating questions to which I already know the answer) and gaining interest in problems (deep questions and fields of knowledge in which I have little to experience, and where the answers aren’t immediately obvious). I suppose this might just be a natural part of the passing of a few years since graduation.

For a long time now, I’ve been of the opinion that teaching mathematics is hard, and reading the above-mentioned articles has further cemented that notion. I think that mathematics is, by and large, an acquired taste. The dichotomy between exercises and problems (and to some extent, that between smartness and hard work) makes the acquisition of that taste particularly tricky and difficult. To acquire it, you need to be exposed to problem-oriented mathematics fairly early and regularly, but not so early that you don’t stand a chance of making progress. I think this is a balance that is very difficult to maintain, especially in large classrooms with students of varied skill levels.

I wish that I had understood the exercise/problem difference much earlier. Luckily for me, it’s not too late and I have plenty of opportunities to explore both sides. If your daily work involves mathematics (whether in terms of work, research or teaching) I’d love to hear further ideas on this difference (and how we can spread the word).

Why you, too, can PhD

It’s getting to the time of the year when graduate programs are accepting applications and deadlines are approaching. Graduate school is a bit of a misnomer, since it’s not really school or a job. If you’re not sure what grad school is all about, you’re not alone. It took me a good while to figure it all out myself. To make the process easier, Cornell’s CS’ very own Professor Ross Tate made a video about common misconceptions about graduate school. It’s mostly aimed at people interested in getting a PhD in Computer Science, but if you’re interested in a different field this video might still be useful. Some common questions answered are:

  1. What is graduate school all about?
  2. Will I get paid to go to graduate school?
  3. Is graduate school only for people who want to become professors?
  4. Do graduate students have a life?
  5. How should I pick a graduate school to apply to?

If you’re curious about any of these things (or graduate school in general), take a look at this video. If you have any questions that weren’t answered, leave a comment either here on the YouTube page and we’ll try our best to answer it.

Sunday Selection 2013-12-01

Around the Web

Happy post-Thanksgiving greetings, dear readers. If you celebrate, I hope you had a wonderful time with friends and family. If you engaged in the consumerist spectacle of Black Friday and lived to tell the tale, congratulations to you. Others were not quite so lucky. Anyways, on to this weeks’ picks.

The Democratic Necessity of Power Tools

By now we all know that paper publishing (especially for books and newspapers) is in trouble and so are libraries. This article makes an interesting point: in an age where knowledge and information is easy to get, maybe we need to provide education in terms of skills and craftsmanship and not just information. Personally, I love libraries and hope they survive into the far future, but I would love to see the growth of publicly available makerspaces and workshops too. Maybe the two could go hand in hand?

The Period, Our Simplest Punctuation Mark, Has Become a Sign of Anger

It seems like the older I get, the more fastidious I get about my use of the English language. I’ve always hated SMS-speak and I see absolutely no need for it today with the advent of QWERTY, predictive keyboards on phones. More recently, I’ve been trying to use full sentences even in my IMs and making my slideshow bullet-points and proper clauses and end in proper punctuation. This is an interesting article on the changing role of the period in informal electronic communication. It’s not something I’ve personally noticed, but it was a interesting read nonetheless.

C.S. Lewis Reviews The Hobbit

If you’ve ever wondered what one literary great reviewing the work of another looks like, this is your chance. Enough said.

From the Web

What I Wish I’d Known When I Was 18 (from Stephen Fry)

I’m personally not very familiar with Stephen Fry’s work. However, this video is chock-full of wisdom, both practical and deep. It’s worth watching no matter what age you are. And yes, some parts are rather heart-wrenching.

Sunday Selection 2013-06-09

Hello everyone. It’s June, we’re almost halfway through the  year and it’s a beautiful sunny day here in Ithaca, New York. The Intertubes are aflame with talk of PRISM and Occupy Gezi. Luckily there are writers and journalists far more capable than I handling those issues, so I’m going to steer clear of that for the time being. Instead, today we shall be talking about education and the how it’s changing (as all things are) in this age of ubiquitous information and communication.

Around the Web

The Anti-Dropout

Dropping out from some form of educational institution seems to becoming increasingly popular among my generation, especially in tech-savvy circles. While I do think that the current price of a formal higher education is ridiculous and taking on massive amounts of debts is rather unwise, you can pry my fancy liberal arts education from my cold dead hands (though, in the interest of full disclosure, I got engineering and science degrees, not liberal arts ones). Anyways, this article is one of the most level-headed takes on the interplay of education, technology, big corporations and technology startups that I’ve seen in a while.

“Perhaps Culture is the Now the Counterculture.” A defense of the humanities.

While I’m an engineer by education, I’ve always held the humanities to be of paramount importance, especially for citizens of a modern democracy. And while I don’t think spending upwards of $200,000 on a humanities degree is worth it, there are these things called libraries which you can use at a much lower price. This piece is the transcription of Brandeis University’s commencement address by the literary editor of the New Republic, a magazine that’s been publishing some really good writing.

Video

How to escape education’s death valley

While I’m skeptical of TED’s ability to create lasting social change, I have a lot of admiration for Sir Ken Robinson. His original talk was one of the first TED talks that I saw. In this talk he talks about 3 elements necessary for the development of the human mind and how current educational systems fail at promoting them.

Sunday Selection 2013-05-24

It’s graduate week here at Cornell and over the last few week the Internetz have started to fill up various forms of commencement speeches (and excerpts thereof). It’s also been just over two years since I graduated from college. In keeping with that here are some Selections with the general theme of “Just What The Hell Should I Do With My Life?”. I’ll keep short, though it’s probably not sweet.

Around the Web

Dear Jr Creative, Earn Your Place, You’ll Be Better For It 

I have to admit that I’m only a recent convert to the school of hard work. And while I do think that hard work alone does not necessarily get you to a successful life and career, I also firmly believe that hard work definitely increases your chances.

Daniel Dennett’s seven tools for thinking

As we increasingly live in an information economy and replace manual human labor with machines, thinking will be what we’re paid for. If being good at our jobs means being better thinkers, then we could do worse than to learn from an expert cognitive scientist and philosopher.

Video

Why 30 is not the new 20

The TED blurb about this video says it best: “Contrary to popular belief, your 20s are not a throwaway decade. In this provocative talk, Jay says that just because marriage, work and kids are happening later in life, doesn’t mean you can’t start planning now.”