My wife, Julia, used to be an English and Drama teacher before we had children. When we were first married, we used to get home in the evening and have a conversation similar to this:
Me: So, how was your day?
J: Not bad. Had to give Tom a detention for shouting. Finished marking the Brecht essays, but Sarah didn't hand hers in until today, so I've got that to do now. Booked the theatre tickets and the coach to see "Art" next month, and wrote a letter to the parents. How about you?
Me: Good. I've finally found what was causing the memory leak, and fixed it. I feel quite relaxed now.
J: What's a memory leak?
Me: Well, it's when you allocate, sorry, tell the computer that you want to use some memory, and you forget to de-allocate, sorry, tell the computer that you've finished with it.
J: So how does it leak?
Me: Er.. When you stop running the program, the memory is still allocated to the program, so other programs can't use it. But as the program isn't running any more, nothing can de-allocate it. If this happens lots of times, the computer will slow down, or may stop altogether.
J: So is memory where the files are kept?
Me: No, that's the hard disk.
J: So what's the memory then?
Me: Um. The memory is kind of like a temporary area where things are stored so that a program can use them quickly. You can have a pointer that tells the program where a certain thing is in the memory. A bit like your pigeon holes at school. You know where to look as your pigeon hole has your name on it.
J: So the memory is where your temporary files go?
Me: Not exactly. Well kind of. In this case I putting numbers and strings in memory so I can..
J: Strings? What, like for tying things up with. No, it can't be. What's a string?
Me: A string is just a set of characters.
Me: Yes. Sorry, letters and numbers and stuff. Maybe commas and question marks.
J: But surely you'd be able to see them on the screen when the program finishes, and you can just delete them.
Me: Well no. They're in memory, but they're not displayed on the screen, well, they can be, but they won't be once the program's finished.
And so on. A simple statement about fixing a memory leak became a big stressful session of me trying to explain things simply. Julia, bless her, tried her best to understand but she couldn't (and still can't) see beyond the user interface.
After I while, I noticed that I didn't enjoy talking about work with Julia, and realised why. I spent the day talking about memory leaks to people who would understand, and couldn't generalise when I got home. I could understand all of the items Julia talked about; detention, essay, theatre, coach, letter, as I had experienced school when I was younger. We couldn't talk about our day in the same way.
I felt like there was a part of my life that I couldn't share with my wife, and it upset me for a while. I tried being more abstract about my reply:
"Not too good. I had four things to do today, and managed to finish one. Roger shouted at me." or "Brilliant day. I fixed all the problems in the thing I've been working on."
This made the conversations a whole lot easier, and less tense. Success.
The problem was, I still had a deep spiritual need to talk tech, which just wasn't being satisfied. Talking tech to colleagues is either very specific about a particular task that we're working on, or me listening to them moaning about XYZ's support line, the boss, the customer's ever-changing requirements, having to write the test documentation etc. Not satisfied.
I have four or five friends at church who are techies, and we're all either musicians or sound engineers (there is also an Oracle salesman, but he spits when anyone mentions .NET). There isn't much time for chatting after church, or in the band practices or other church activities, as there's usually a church related purpose to the meeting.
Most of our "not-just-chatting" conversations are about music, but occasionally (twice a year, maybe) we talk about programming, or relational databases, or user interface design or whatever. I love these conversations, and find them immensely satisfying. I'd like more of them. With more people.
So I'm trying to work out how to get more of these conversations. I need to meet more techies. I'm starting a new job soon, so that may help. Uckfield is hardly silicon valley, but there must be some other techies about who can't talk tech with their spouse. There may even be enough for a geek dinner.
How do I meet them? I could wear a name tag, read about some old school associates on friends reunited, or hope someone local reads this and posts a comment, or start the Uckfield and District Association of Technical Conversionalists.