(archived from my old blog from my pre-MS days)
Note: There is tech content in here, I promise!
I really suck at math. Some may think that's odd for a "computer guy," but it's true. But perhaps it's because of this suckiness that keeps me coming back to it - the challenge of it. In college, I didn't have a problem with computer science classes (well, except for numerical analysis - math) since I tend to have a pretty linear/logical thought process (or so I wish to believe, perhaps). I knew in 6th grade (around 1977) what I wanted to do - computer programming. The fact that I've stuck with it for so long is unusual, given the number of friends that changed their majors, multiple times, during just the four years of college. Probably only 25% of those people are doing anything even remotely close to what their degree was in. Again, I'm the unusual one. So I've been the "logical" one, the steady one, for quite awhile.
Surprise, surprise - I was in the middle school and high-school chess clubs (in addition to football, basketball, track & field, so don't start stereotyping me, thank you very much). My dad, a West Virginia coal miner at the time, taught me how to play chess when I was in elementary school. He says he doesn't remember, but it's true. My best friend in middle school & high-school, and he was my best man as well, was also on those chess teams - another "logical guy," whom we thought of as our own Bobby Fischer. I went to a several tournaments, but in high-school I caved under pressure, and quit competing in tournaments. I don't remember my USCF rating, that was almost 30 years ago. I won some and I lost some. I've continued to play throughout the years, and have taught my kids how to play (no Bobby Fischers here, so far). Bottom line - chess is fun and challenging. So chess is about the only traditional board game I ever "got into."
I have another confession: I like to watch anime with my kids (heck, I like to watch it alone, too. There, I said it). I tend towards the Shonen variety, even though I have mostly daughters - Sailor Moon gives me the heebee-geebees. So about a month ago I started watching one called "Hikaru No Go" (Hikaru's Go - see Wikipedia). The plot was pretty clear after a couple of episodes. The story centers around a kid (Hikaru) and his entrance into the world of "GO", an ancient Asian board game.
Now, I may have heard of Go before, but if so, I don't remember. I get the same reaction from all my American family & friends - "What's Go?" In China, Korea & Japan Go is "the bomb." They follow it the way Russians follow the chess world, which is WAY more than Americans do (see Searching for Bobby Fischer: The Father of a Prodigy Observes the World of Chess).
I was unprepared for how interesting Hikaru No Go would be. Perhaps it was my ties to traditional board games, but I was really sucked into the story line. It was also refreshing that it's neither dark nor was their a true "bad guy" in the traditional sense. It still has the same basic motivation that many Shonen storylines have, which is "try your best and get better and better at what you do."
About halfway through the series, I actually started to get interested in the game itself. I thought, "Hey, if it's that popular in east Asia, maybe there's something to it. I saw a few decent introductions online, but I really wanted a book. I found the ONLY book on Go available in the town of Winchester, VA - Teach Yourself Go. Now that I've bought that copy, there are no more books on Go available in Winchester - I've looked. The book is very dense. You CAN learn Go from it, but it's like learning math from the textbook alone - heaven help you if you miss a concept.
One thing that this book attempts to explain is why there aren't very many computerized Go "engines," and why the existing ones aren't very strong. The author believes that it's much more difficult to build a Go engine than, say, a chess engine, which now can pretty much beat any world champion. There aren't any Go programs that can even beat strong club-level players, much less pro Go players (and yes, there are professional Go players).
Seriously? No one can write a strong Go engine? I thought that was hard to believe - until I started to play go. I'm the one reading the book. I've taught my children just the rules - and they beat the living daylights out of me. Not just once in awhile, but about 80% of the time! There is no randomness involved, no dice or anything. I thought that I just didn't know enough (and I don't) and that a little more studying would help. So I went to this section that tries to explain how to capture stones. Again, this book is a dense, textbook style rather than conversational (which I prefer any day of the week), and I played through the examples, and see this concept of a "net" on the edge of the board. I see it WORKING, but I can't say WHY it works. It's almost anti-logical! I was up at midnight last night raving like a lunatic about how I couldn't see WHY this "net" thing would work (my wife and oldest daughter can confirm that I was on the edge of lunacy).
So I'm only about 1/8 of the way through Teach Yourself Go and already I see a concept that I have NO IDEA how you would code, since why it works is beyond me. My wife and oldest daughter tell me that I don't need to know why it works, only that it does. That is NOT good enough for me. It seems like there should be an easy explanation, but I don't see it. Not that it couldn't be done EVER, but I have a feeling that you'd have to be a 9-dan Go pro AND a sharp software developer in order to write a strong Go engine. I have a feeling that I know how many of those are around - none.
That doesn't mean that I'm not going to try, of course. It looks like the perfect opportunity to get into Silverlight or WPF.
It's this question of "Why does this work!?!?!?" that is both driving me crazy and fueled my desire to learn this game, as well as some of the "science" involved here. I'm looking forward to an off-site long-term project with a Chinese colleague who has promised (whether he knows it or not) to become my own personal Go tutor.
Come to think of it, the other colleague of this three man team is Russian. Hmm... maybe I'll bring my chess set, along with the Go stones.