I've been meaning to write this rant for a while, so it's just going to be crap streaming out from my brain through my fingers with no organization whatsoever. Perhaps someday I'll collect these thoughts into actual polished pieces. But it's better to get them down first.
Sometimes I feel really left out from the geek community. Hackerspeak is a language; if you don't pick it up by intensive immersion or within the first two decades or so of birth, you'll miss out on the tichy little fables, idiosyncracies, sayings, turns of phrase, tiny cultural things like that.
When the guys swap stories about coding in BASIC in elementary school or building cars with their dad in middle school or making robots in high school, it seems silly for me to chime in and talk about how that was when I got totally into Shakespeare, or fractal mathematics, or pastels. I can't share those early experiences. I love hearing about them! They're fantastic stories! But I don't have them and can't connect to them on that level.
And the worst thing is that I know I'm in a really good position compared to many others. That I didn't actually get in that late. That I'm lucky enough to have grown up by a library which happened to have a math book section, lucky enough to have been able to push my way into a magnet high school, lucky enough to have had friends who taught me how to code, lucky enough to be at an engineering college, lucky enough to even be here and be legitimately able to call myself a hacker. So I'm not missing out, really. Not that much.
I wonder how many other people feel like they're missing out.
From Joel On Software:
The good news about our field is that the really great programmers often started programming when they were 10 years old ...they were in their dad’s home office trying to get the Linux kernel to compile. Instead of chasing girls in the playground, they were getting into flamewars on Usenet about the utter depravity of programming languages that don’t implement Haskell-style type inference. Instead of starting a band in their garage, they were implementing a cool hack so that when their neighbor stole bandwidth over their open-access WIFI point, all the images on the web appeared upside-down. BWA HA HA HA HA!
So, unlike, say, the fields of law or medicine, over here in software development, by the time these kids are in their second or third year in college they are pretty darn good programmers.
Some people didn't have computers when we were 10 years old. Some people didn't know programming existed when we were 10 years old. I'm not saying that hey, affirmative action, it's not our fault we're not as fluent in code so companies should hire us anyway - I'm saying that it's just really hard sometimes to catch up to the kids who've gotten a head start. I'm not running because I feel this desperate need to catch up, I'm running because I think it's fun. But it often feels like a losing race, even if I'm not trying to race.
Sometimes it feels like I'm running by myself with crappy sneakers and parental shouts from the sidelines asking why I'm wasting my time on a path that doesn't lead to an industry-standard job (less true now, but much more true years back when I was still just toying with tech and therefore couldn't do anything really useful yet, and the usefulness of hacking skills hadn't yet become apparent to the general public). And then I look over at these other people who have - oh god, they have actual running shirts, they've gotten coaching since they were 5, they used to watch their mom race, their dad is always cheering them from the sidelines, yes it's useful, hacking is awesome, join the community, go.
And I think "man, I wish I could have grown up like that." Or even "if I managed to get this far, how much faster could I have been if I'd grown up like that?" It's a moot point, because that's the past and it didn't happen and I had lots of equally valuable experiences and all that stuff. It's like wondering how much better I'd be at the piano if I could hear. My hearing has shaped my piano technique and the way I play and made it a certain style - my style as a pianist - just as my background has shaped who I am as a hacker.
I still have fun running around and hacking. I have a lot of fun, or I wouldn't be doing it. But sometimes that feeling makes it a little less fun. (I try to ignore it; it doesn't come very often.)
But every so often I'm reminded, like in this post about how what Fog Creek looks for in a resume:
Passion. We look for evidence that the applicant is passionate about computers and really loves programming. Typical evidence of this:
Jobs with computers or experience programming going back to a very early age. Great programmers are more likely to have spent a summer at computer camp, or building an online appointment scheduler for their uncle the dentist, rather than working at Banana Republic folding clothes.
Extra-curricular activities. People who love programming often work on their own programming projects (or contribute to an open-source project) in their spare time.
But there are kids who don't have their own computers and can't spend their time hacking. Or whose parents frown upon "frivolous internet usage" and wonder why they would want to talk to people about array indexing online when little Johnny down the street is a perfectly fine child to play with, thank you, why don't you do normal things. Kids who don't have the chance to hack in their spare time because their "spare time" is spent watching their little brother. Kids who... it's not that they don't get any chances, because in this world you make your own chances. But kids who get fewer chances. Or who don't find out until it's too late that they can make their own chances at all.
Sometimes I wonder if there's a radar people have to detect latecomers and fake-hackers. On rare occasions, I feel like I somehow don't look or act like a geek. I'll go to the Swapfest with some MechE guys and I know what the components on the table area and they don't so much but the dude selling the components will talk to the guys first. So they start introducing me as "the computer person" of our group, and I start speaking up first with some question that indicates that I know what I'm doing. But I have to make sure I present myself that way.
Or I'll be hanging out with some coder guy friends and someone's looking for a programming intern, and they'll ask them but they don't ask me and - well, that time I didn't really care, so I didn't speak up, but still- to feel like you've got to speak up to get something, that's something. Is there something wrong or different about who I am or what I do that I've got to keep a big sticker on my hat saying yes, I'm a hacker, not a hacker's girlfriend?
I'm always amused when folks on forums or mailing lists assume that "Mel" is a guy. It's a logical default; most folks on the non-Olin forums and lists I hang out with are guys, so statistically speaking it's entirely rational. Statistically speaking, it's entirely rational to assume that the guys at the swapfest or the conference are more likely to be hackers; it's less probable given my demographics and background that I'll be one. But I am one.
It's not hard to shrug these things off. I do it all the time. I have to do it less, nowadays, since I'm starting to get to know people a little bit, and I'm getting to know the culture, and I'm starting to understand what the stories mean and at which points in them I ought to laugh and what things I should say suck, and what things I should say w00t to, or what. And when you get introduced by a credible member of the hacker community, you get some of that credibility yourself. I'm thankful for the folks who have befriended and mentored me; it's done amazing things for my self-confidence and my ability to tinker with stuff, to make things happen and get things done.
I'm struggling not to pump out a story that sounds like I feel sorry for myself. I don't. I'm sucking it up and dealing with it and doing pretty darn good for myself. But it's frustrating. I forget about this most of the times, but it's still frustrating.
I don't know how to fix it.