Is any science as desperate as computer science to be really, really liked? I ask because not for the first time, and certainly not the last, I am confronted with yet another report of an effort to make computer science ‘cool’, trying in fact, to make its central component–programming–cool.
The presence of technology in the lives of most teenagers hasn’t done much to entice more of them to become programmers. So Hadi Partovi has formed a nonprofit foundation aimed at making computer science as interesting to young people as smartphones, Instagram and iPads. Mr. Partovi…founded Code.org with the goal of increasing the teaching of computer science in classrooms and sparking more excitement about the subject among students….Code.org’s initial effort will be a short film…that will feature various luminaries from the technology industry talking about how exciting and accessible programming is….It also isn’t clear that Code.org’s film will succeed where modern technologies themselves have failed: in getting young people excited about programming.
I don’t know what being cool means for programming, but if it means convincing potential converts that those who program don’t need to think logically or algorithmically or in structured fashion, or that somehow programming can be made to, you know, just flow with no effort, that it can be all fun and games, then like all other efforts before it, Mr. Partovi’s efforts are doomed.
Here is why. Programming is hard. It’s not easy and never will be. When you write programs you will hit walls, you will be frustrated, you will tear your hair out, you will be perplexed. Sometimes things will go right and programs will run beautifully, but it will often take a long time to get things working. When programs work, it is incredibly satisfying, which is why some people enjoy programming and find beauty and power in it. Programming can be used to create shiny toys and things that go pow and zoom and sometimes kapow, but it will never be shiny or go pow and zoom or even kapow. Before the pot of gold is reached, there is a fairly tedious rainbow to be traversed.
Writers write and produce potboilers, pulp fiction, romances, great novels, comedies, screenplays, essays, creative non-fiction, a dazzling array that entertains, beguiles, and fascinates. But is writing fun? FUCK NO. It’s horrible. Yes, you produce great sentences, and yes, sometimes things fall into place, and you see a point made on the page, which comes out just the way you wanted it to. But all too soon, it’s over and you are facing a blank page again. Writing produces glamorous stuff but it is very far from being that; it is tedious, slow, and very likely to induce self-loathing. The folks who write do not try to make writing accessible or fun. Because it isn’t. You do it because you can find moments of beauty in it and because you can solve the puzzle of trying to find the right combination of words that say best what you wanted to say. Programming is like that. Very much so. Word processors can get as flashy as they want, they won’t make writing easier. The slickest programming tools won’t make programming easier either.