Ask HN: How do I get my girlfriend to see the beauty of computer science?

11 points by rabbitonrails ↗ HN
My girlfriend works in the arts and has never had any experience with computer science or dated an engineer before. Recently she said that it's impossible for her to understand the mechanics of programming and therefore she finds what is "under the hood" of her iPhone or browser completely uninteresting. We have all had moments where we found an algorithm or piece of code beautiful in implementation, but what is a good way to express to a non-technical person the delight of something so abstruse?

I once had an introductory CS professor who was particularly good at this, but at least he had the benefit of requiring us to complete assignments!

14 comments

[ 34.2 ms ] story [ 2353 ms ] thread
I think you're fighting an uphill battle getting her to appreciate the end result (e.g. the code), but most artists can appreciate the value of the creation process itself.

So maybe focus on the craftsmanship and exploration by drawing comparisons to something like woodworking or sculpture or print making.

... and in addition, point out that the end result is not simply something to evoke emotion, as art should, or to be useful, as a piece of beautifully sculpted furniture would, but something that is active and interactive.

Almost alive.

If she's in the arts, she already understands computer science. She just calls it by a different name: art.

It's no more different than how a poet differs from a sculptor: their ways are drastically different, but in the end, both are artists. So is a good computer scientist.

Totally agree with this.

It's true. My girlfriend is into arts too. She never understood my work but when I showed her paper.js and some other awesome scripts, she got to know the beauty of it :D

This is a battle not worth fighting, IMO, unless she is asking/encouraging you to do it. My wife is an artist and she doesn't care at all about CS and never will. She doesn't want to know about it therefore she won't begin the process. I tried for the first year or so to explain this or that but it just wasn't where our interests crossed, so I stopped. She appreciates my enthusiasm for it and is happy that I get so much enjoyment from it but that's where it ends. We have other interests that cross and that's where we spend our time.
Try the concept of recursion. Then move on to fractal images. That might grab her attention. (I don't know -- maybe reverse the order of introduction I suggested?)

Don't bury her in the details. Look for the concepts you already share -- albeit in different media.

P.S. Maybe she'd find something like Edward Tufte's work interesting/appealing.

Richard P. Gabriel has something to say about this. http://dreamsongs.com/Essays.html

Having said that, I'm not sure how effective it can be. I've read some of Gabriel's essays, and I'm a bit into Patterns of Software, but I don't think anything there would mean much to me if I didn't write code.

Something else you might consider is to not even mention "computers". Dijkstra says use "computing", but screw that, too. For the last few years[1] or so, I've tried to sort of start by mentioning computer science, and then spending a bit of time qualifying the term and trying to dislodge the images that comes into my conversation partners' heads. I don't think I've ever been successful.[2] It's hard getting people to think "computer science" means something besides either technophilia or sysadmining.

1. To be fair, a "few years" ago, it's fair to say I wasn't even in my position to appreciate that I am now.

2. I might've gotten close one time, by pointing to Luis von Ahn's talk on human computation, but I can't be sure, and you don't always have the benefit of an hour to spare. http://video.google.com/videoplay?docid=-8246463980976635143

Visual Artists often take inspiration from nature. I've read a few articles on how someone used primes and other mathematical principles that are observable in nature and used them in programs to generate tiled images with a more natural flow to them that is more easy on the eye. Sometimes the best way to get someone to appreciate something is to frame it in the context of something they love.
I definitely think that an artist should be able to relate to the idea of creating things. Its quite possible that her statement of finding what is under the hood to be "uninteresting" is actually a way of saying that she finds it complex and intimidating. I think that rather than showing her complex beautiful code that does crazy things, I'd have her actually try something simple so that programming is no longer some complicated abstract concept. Maybe get her to do tryruby.org, or even help her create a basic HTML site.

While I agree with someone else's comment that you shouldn't force her to do any of this if she isn't interested...I do think that as your girlfriend she should be interested in learning more about what you do all day and what you are passionate about.

Just my two cents...

Nah, I don't think she (or you) should be required to be interested in your job.

I sometimes try to explain things to my girlfriend to see if I actually understand them. If I can make her understand the concept--then I feel like I know what I'm talking about. She'll listen and play along, but it's boring to her. Thats fine. She's a law student and I do the same for her, but I think contracts and crap are as boring as she thinks algorithmic trading is and that's fine too.

We both spend all day with people who love that stuff. After recapping our days, there's plenty of other fun stuff to talk about and do. The key to making it work is we are both able to tell when the others eyes are starting to glaze over. Before you try forcing it, try to imagine a two hour discussion about paint brush selection or something you could really care less about.

It's uninteresting because it has no application to her.

Knowing how an iPhone works does not help her to make better art anymore than knowing how an internal combustion engine works. If you want her to be interested in it you need to relate it to her goals and objectives.

Also, most artists are extremely concerned about what makes the art relevant to them, that is to say that they are not producing art for mass consumption, but primarily for the adulation of themselves, and from their peers, and possibly their patrons.

What makes code interesting to us is the same thing that makes flowers interesting to botanists. Start by becoming interested in the arts and applying the skills you have (coding) to the artistic field. I guarantee you if you make art that interests to her she will become interested in how you made it.

I was painting with a friend who was an artist and I had a desire to make a mondrian inspired piece so I took a ruler and started marking geometric shapes with a ruler and calculator in hand and measuring the dyes according to various ratios in an attempt to produce complementary colors. She became extremely interested in my methods and remarked at what a systematic approach I had to art and we started talking about algorithmic beauty such as golden ratios, fibonacci, fractals, color theory, all the way to the expression of general relativity in some of Dali's later pieces and the kinds of quantum effects that produce color.

If you provide her with opportunities to learn more about a field she's already interested in you will have no problem getting her interested, if you start out trying to get her interested in your field you will have no hope.

Do you like the arts? I find it completely uninteresting.

Why, particularly, does your girlfriend have to understand the beauty of Computer Science? Just keep making cool, useful, possibly world changing shit, and I'm sure she'll see the beauty there!

Clarity. Artists seek a way to define the world through their art. We define the world through logic. When we make a simple connection between two complex ideas, we have a moment of clarity that we find beautiful. In the same way a painting captures the emotion of the image it pictures, a clever piece of code captures the true, logical connections of the machine it creates. That may not be the best way to explain it, but it's the way I see it.