With so many people talking about the EssentialDifficulty of programming, I wonder if programming is really that difficult compared to the social interactions that people of all social classes and educations manage to do every day. So let's compare programming with dating, since people who can do both well seem to be in such short supply. Anyone can achieve some minor success in programming. Any human being of average mental faculty can be taught how to program at least a rudimentary guess-the-number game in BASIC or Python. But even the most brilliant programmers have absolutely no idea how to get a woman to join him for coffee, no matter how many books they read, no matter how much advice they absorb. It looks like programming skills are something anyone can learn, and dating skills are something that you just can't pick up late in life. : ''Actually, there's a BBC programme called 'WouldLikeToMeet', a reality makeover show centring around, each week, teaching a new someone dating skills, late in life.'' But how does this statement look from the perspective of someone who dates regularly, but has never programmed? -- Factors that make programming easier than dating: * Consistent actions produce consistent results. * Logic works. * Asking someone else for help usually works, doesn't backfire as bad dating advice might. * Feedback is nearly instantaneous. (may be more true now than in the 60's. Or not.) * Pair dating isn't always a positive experience * Refactoring your date to make her simpler often has the reverse effect * When learning with books, notes, a friend, or another source, you're allowed to consult the source material with you while you're trying stuff out. Dating happens under exam conditions. * You can make mistakes, often disastrous ones, with limited liability. * Two words: version control. * You can rollback a transaction, and it's like it never happened. * Perl. * You can always reboot after a crash * You can't put "print" statements in your date to debug her. If you try, you get slapped. Factors that make dating easier than programming: * Unlike the computer, your prospective date may be interested in dating you. * Perl. Factors that make both dating and programming easy: * There are a lot of eligible candidates (computers and dates) * PlanToThrowOneAway (see below) Factors that make both dating and programming hard: * Feedback is quite often misleading. A program with bugs in it will still compile and run, and a woman who would never date you can still describe you as "sweet" and "cute". * One wrong statement can screw the whole thing up. ---- With reference to PlanToThrowOneAway - actually 'sequential mate selection' has been widely studied, looking for strategies for finding optimal mates. I tried to get a better link to this stuff here but this (http://www-abc.mpib-berlin.mpg.de/users/ptodd/publications/) page has a link to a paper on optimal sequential mating strategy ''for humans''. Of course, getting round to sequential mating means getting over your first love <''sigh''>. ''PlanToThrowOneAway is of debatable usefulness in programming, and it is downright hurtful in dating. It is my firm belief that one should go into a dating relationship (especially the first one) with the idea that it could be the one. To PlanToThrowOneAway means planning to hurt someone else intentionally, and to plan to hurt yourself intentionally. This just means that you will likely be jaded and bitter going into the next relationship if this isn't "the one", and it means that you might miss it if this is "the one".'' This sounds to me more like a strategy for beginning a relationship. You can't expect one to be monogamous and single at the same time, can you? So one Tuesday night, you call up three women and ask them all out, for different days of course. Only one of the three will probably accept anyway. And if more than one does, it's not as if you have to have a second date with EVERY first date, do you? Let's continue the comment. ''PS. You shouldn't be dating if you don't feel ready to consider marriage, and you shouldn't date someone you don't think you could possibly marry. (Says the religious person who fails to understand TheObjectOfDating.)'' * That's not a religious issue, that's an issue of misunderstanding dating. You are speaking as if the '''only''' reason to date is as a prelude to marriage, which is sociological, historically, anthropologically, and yes, religiously naive (religions that forbid purely recreational, nonsexual contact between the sexes are essentially nonexistent in the modern first world, and there's little reason to discuss the third world here)''(That's offensive)''. (The truth hurts.) * It may seem to you that these days, dating is all about premarital sex or something, but the general purpose of dating is not identical to serious courtship, it is (A) recreational, like roller-skating together, and if anything it's more strange for single heterosexuals to prefer only their own sex for recreational activities, and (B) to gain experience with the opposite (or appropriate) sex, so that one does not rush to judgement, as it were, out of complete lack of knowledge of what partners and their personalities may be. Even as a highly religious person, you need to watch a lot more movies from the 1940s and 1950s to broaden your perspective, if you're not going to actually study the subject. I propose that DatingIsNotHarderThanProgramming. Just follow this simple plan. (Assumption for the sake of this discourse; object of intended affection is female.) Firstly ask her what she scored on the TuringTest. If she looks at you blankly, move on. If she smiles proceed to step two. Complement her on her BigDesignUpFront. If she slaps your face, move on. If she laughs proceed confidently to beta testing. You may just have found your KillerApp. '''Talk about BigDesignUpFront. I'm not ready to consider marriage, so I can't ask a girl out to a movie and kiss her goodnight? Save the MoralityOfDating for another page; we're comparing it to programming here.''' Note: It was assumed that dating was meant to imply romantic intents. Going to a movie with an appropriately gendered person is fine. Asking for a romantic attachment if not considering marriage (not that you are yet sure that marriage is proper, etc) is unkind. But, that too should be more a morality of dating issue. ''PPS. This assumes that you see dating as a prelude to marriage, as opposed to a way to get sex.'' '''Or to have fun during the date itself?''' Could be argued that it doesn't have to be a date to have fun with person of preferred gender. ''Or to make friends. Just because the dating doesn't work doesn't mean you don't stay friends afterwards.'' Again, can make friends and do things with person of desired gender without dating them. ---- BigDesignUpFront might be one of the key barriers between programmers and dating. For normal people, it's "I like Agnes. I'll ask her to [this event], and take her to [this restaurant], and see what happens." For programmers, it's "I like Agnes. I wonder if she's receptive; she seemed to like [some things I did] but didn't seem to like/notice [these other things I did]. Where could I take her? Better go find an event, and a restaurant. Also I need to clean my apartment, and take down about thirty of these anime posters so I look like I have varied interests. Now, should I re-arrange the furniture for the possibility of making out? How much making out should I plan for? Would she consider it impolite this early? OK, I won't make a move until date #X. What if she asks me about my past? What if she turns me down? I'll have to come up with some comeback lines to save face. And I'd better come up with one for every excuse she can provide..." By which time, of course, dear Agnes is married to a normal person. ''This programmer needs to learn YouAintGonnaNeedIt'' Ever work on program design for a month and then have to throw it away? TestFirst philosophy should apply here. Ask first, and don't solve problems until they come up. ---- One key different is that dating, as a social skill, involves people, and therefore the stakes are higher. Even in the early stages, one can easily suffer or cause great pain. If you're deep enough in a relationship, you can lose property, money, or rights. If you're deep enough in a software company, you can lose property or money. ----- I disagree with the thesis. Dating is very easy indeed. Programming is sometimes hard, but dating is easy. If you can get over yourself that is. ''Well, if it's that easy, then how about sharing some DatingPatterns?'' I gave one. Fear of failure leads to stasis. Nothing happens then. Fortunately social skills can be practised, no one will die, hardly anyone will ever know. You'll go from a wallflower (paralysis/run away/verbal punch), to a tryer (clumsy but keen and less insecure) to a player in the game of society (sensitive and unafraid of failure). Then of course you could move to being a 'playa' and possibly a 'pimp-daddy'. But if we were that good looking then there wouldn't be a problem. ''You assume that the phrase "get over yourself" has any meaning to us, like "get a life". It sounds like a cliche with vague connotations along the lines of "there is some psychological barrier within ourselves that must be overcome", which is perfectly correct, but also completely useless. (Isn't there a MicrosoftJoke along these lines?) Kind of like "BeYourself;" every time someone tells me "Be Yourself" is all I need to do, I want to strangle him. It's like telling a C programmer, "use semicolons!"''' ''In contrast, the "fear of failure leads to stasis" line addresses the problem more specifically, perhaps even precisely. But the proposed solution, to "practice social skills", is still vague, since it's hard to know where to start. Grooming? Posture? IceBreakers? Conversation?'' No offence intended. I'm being as literal as possible. I'll be serious though I am no authority on this, so don't believe me. Honestly, almost everyone really knows what to do, they are simply too scared to do it. I don't know why, bad experiences? Lack of male group integration? Geek genes? I have all those things. Luckily I am also bipolar as all hell, and when one is invulnerable one can do anything, sorta kinda :). If you are a more serious type, then serious hobbies are good, but not in your shed. Do Tai Ch'i or something. Find the compassionate heart of depression and you will shine. ''Bad experiences? Check. Lack of male group integration? Check. Geek genes? Dunno, my brother is the u:berjock, so I'd say this would be more nurture than nature. Though, are the SocialSkillsOfGeeks really that much worse on average than that of the general population?'' I don't know. U:bergeeks can exist too (I like that umlaut postfix :)). For me, in my wallflower mode, I can identify the symptoms. Challenging these directly is one solution, but an anxious man is a scary man leading to a bit of a spiral. How to get past it? Tricky one. One must be confident. Confidence is everything. Confidence comes from comfort. Comfort comes with practice. So move the women to where you are confident and/or move your confidence to where the women are at. Try to make friends with as many of them as possible. Geeks are great at being friendly. So do that. Learn to juggle, surf, play guitar, draw pictures, do anything at all that you can be passionate about (good tip, you can displace all that tension into passion for something neutral) without boring your proto-friends into a coma. The idea is to be attractive. Once you get the friend thing right, you will get invitations. Say yes. Go. You might meet someone nice who has a sister that knows someone who just luuuurves skinny guys like you. ----------- I read this page and just wanted to add emphasis to the paragraph above. IMHO, that's the key to dating, right there, written down. Friends. Looking for a relationship will make you stressed. So don't think about that. Do some stuff you enjoy and make female friends. Just friends. Spend time with female friends and don't think about dating. Does anyone someone with lots of female friends, but still have huge trouble finding dates? ''(yes, me)'' (Compare to how many relationships that started out as 'just friends'.) -- AnonymousDonor I had female friends since birth and I suck at dating. But I can't say it's hard. I just never tried it hard enough (or at all really). Most problems with dating for programmers and other socially unskillful people is lack of training. Normal people start thinking on dating about 13 years old. They ''get on it'' soon enough. Most programmers lack interest until much latter in life, adding some awkwardness to the mix and making it harder. But it's never late to learn, so the only thing to make dating easy is to '''try it'''! There are some thing to look for to make thing easier. Look for some social standard problems like SocialPhobia (http://en.wikipedia.org/wiki/Social_phobia). There are treatments and advices to overcome them. And there are a lot of standard skills good for dating, like playing guitar, good clothing, good hygiene and being physically fit that help a lot. All stuff that can be learned and improved. -- Another''''''AnonymousDonor ----------- Consider though, dating MAY be harder than programming for a certain subset of people. ''Programmers.'' Why? Well, speaking strictly for myself, the reason why I enjoy programming so much is that I basically lack any social skills. So working with computers seems like a natural fit. ''Or maybe you lack any social skills because you enjoy programming so much that you spend all of your time working with computers?'' ------ Just think of a date as PairProgramming in real life. In fact, some of the ExtremeProgrammingPractices could be adapted for dating... ExtremeDating??? ---- Consider this, if you spend all night with a computer program, you are a nerd. If you spend all night with your date, you are a stud. ''And if you spend all night with your date on your computer?'' You're BOTH nerds! ---- tangent: when asked about DatingPatterns, an AnonymousDonor wrote: "I gave one. Fear of failure leads to stasis. Nothing happens then." Perhaps these are DatingAntiPatterns. It may also be fear of success. PoliticalCorrectness, at least in the U.S., demands that men in particular should be "sensitive", and that certain strategies are slimy and sneaky and deceptive and if you use these practices then you are being unacceptable. And so we paint ourselves into a moral corner where every possible decision is either immoral or BigDesignUpFront overwhelming. As an extreme case, I cite the person who wrote "You shouldn't be dating if you don't feel ready to consider marriage." If I take this advice seriously, since I don't feel ready to consider marriage, I must wallow in celibacy until the Marriage Instinct Fairy visits me. In real life, the memes that paralyze us are more varied and specialized. Some Vietnam veteran yelled at you for holding her daughter's hand while you were both six, so you decide you're not allowed to touch. Your sister complains about how men are always looking at attractive women, so you feel shame for looking at attractive women. Your attractive platonic friend complains about how men are always trying to have sex with her, so you keep the relationship platonic because you think women can't possibly enjoy sex. And, therefore, any action you take which could possibly lead to sex as anything but an accident is immoral, and would open you up to scorn. Non-programmers have the ability to easily dismiss these ideas, while programmers pile them up in the same way that we memorize arcane command line options and bloated object libraries. Therefore we have carefully constructed a situation in which dating is taboo at worst, a silly diversion from our true goal of programming purity at best. ''My God, I am so glad to hear somebody say this. It explains so many of my troubles. I had accumulated so many of the above problems of what Nice Boys Don't Do, like refer to women as "girls." I eventually started dumping those foolish rules and my luck improved dramatically. I was eventually able to find a GeekGirl.'' ---- Another possibility: Programmers are unattractive. We are shaped like potatoes, we are. We're boring. We get excited about incomprehensible alphabet soup. And prolonged deprivation of functional social contact has left us emotionally equivalent to grade school children. When we get angry, we pout and become passive-aggressive. When we fall in love, we refuse to admit it, and hover around the object of our desires with that look on our face that says we want to do something that we're ashamed of, thus creeping them out and driving them away. Were a woman to enter into a relationship with us, she might become jealous and frustrated while the MentalStateCalledFlow locks us into prolonged, intimate interactions with our computers, and not our life partners, all night long. We're already married to our computers, you see. Perhaps we're better off single. If a woman were interested in this, she's probably looking to take advantage of us in some way. ''This is why I love geeks. They're all so funny. You are being funny, of course, aren't you? '' ---- Hmmm... I'm such a FunctionalProgramming nerd I have the urge to smash FunctionalSocialContact into one word to set what the everything2 people call a nodeshell challenge... ---- Consider spinoff page: DatingIsEasierThanProgramming -- more optimistic views might be constructive. ''quite'' ---- Oh dear god! The fact that this page even exists tells you why some programmers find dating harder than programming. Top tip guys and girls: writing wiki pages about it automatically makes you unattractive. This is a fallacy. There is nothing unattractive to or to be ashamed of to openly discuss romance issues. You see, girls do it all the time from their teenage age (and way before). They discuss with their peers what to say, which move to make and how to respond. Girls are socially encouraged to do so. There exists a plethora of advice for the female sex about how to manipulate men. With such advantage in training it hardly wonders that any mostly women are in control of the dating arena. ''I disagree - people who excel in some areas (such as programming) often struggle in others, what is Wiki for if not to discuss such issues? My tip - learn latin dancing in groups you get to meet and interact closely with lots of interesting people. There are even DanceNotationSystems if you have the urge to break it down like code. I'm always amazed how ordinary secretaries, accountants, non technical people develop muscle memory for these complex dynamics in a few weeks but whose eyes would glaze over if you showed them an if() statement. And you do meet all kinds - teachers, people doing their Masters, sometimes a few other programmers. Even if you never become a Josie Neglia or Alvaro Coronel, or date any of the dance class students it's good practice for conversation and etiquette with the desired gender for when you do. The music is actually kind of interesting once you get into it and learn some of the background (Salsa != Samba). It is popular in many cities no matter where you are.'' Through what mechanism does it make us automatically unattractive? Here I am writing on this page, and my wife will never know. It's all in the person. 'DanceNotationSystems' Hmm. That reminds me of the DynamicDatingDiagram, that could be seen behind Hitch's desk in one scene in HitchTheMovie. ''One of the highest ranked amateur ballroom dancers in the United States is Mark Sheldon; his PhD thesis at MIT was "Content Routing: A Scalable Architecture for Network-Based Information Discovery." http://www.psrg.lcs.mit.edu/~sheldon/ Professional champ Dan Radler got an architecture degree from MIT. http://www.havetodance.com/dansuzan.html Anyone who thinks that geeks can't dance don't realize the fundamental advantages that a mathematical mind has when it comes to dancing.'' ------- How about, "programs are more controllable than dates".