It's been over a month since I touched Go. Instead of studying Go, I've been busy studying for job interviews... What joy. After five years of tech start-up rollercoaster, I've decided to get off --- only looking to hop on yet another one. With the number of potential companies, big and small, I decided to seriously study for the interviews this time so I could decide on where to go, instead of going to just some random one that happens to accept me. Studying for job interviews is certainly no picnic. It's no different than studying for the SAT/GRE. Everybody has their own little puzzles or quirky coding questions and each expects you in 45 minutes, convince him/her that you are capable. Questions are thrown at you at will and you must quickly get on the right track while the interviewer quizzically stares at you. As you struggle for a clue, the interviewer just smiles across the table --- savoring the moment of superiority because he knows the answer and you don't. If you do well, all your other qualities will be colored positively; if you do poorly, no references will save you from rejection (and by the way, since nobody ever gives bad references unless you are a complete psycho, they carry very little weight in the decision making process). As an interviewer myself many times, I know it's a charade that gets replayed over and over to fool myself into believing that I can actually tell if the person can do the job within 45 minutes. In reality many a times the person could be a brilliant coder (not saying I am one) yet choke on the simplest of problems, or totally incompetent but just happens to prepare for the right problems, and con its way in.
So despite knowing that I am fairly competent, I had to put up with the charade and go back to studying the fundamentals. I went through the old faithful "Programming Pearls", skimmed the "The Art of Computer Programming", Vol 3 and reread the first ~15 pages of each chapter of the classic "Intro to Algorithms" by Cormen et al. I had to memorize all those programming techniques that I've forgotten and practice regurgitating solutions on paper to classic coding problems. It was a painful ordeal but it did pay off well. While I did not get many problems I've exactly prepared for, many were similar enough that I was able to quickly apply the same solution pattern and come up good answers.
So does this have anything to do with Go? Sort of. Your ability after all is determined by how you perform at official tournaments where you must play under pressure. You could be the best kibitzer at your local club but choke in tournaments. In a tournament there's no time for you to read out every L&D, some you must know by memory through preparation. And I believe your strength is mostly determined by your preparation of the fundamentals (Tsumego, Yose, and Counting) and conquering your nerves so you don't make mistakes you would never make in a relaxed setting. It's even said that most pros are similar in strength, it's just only a few excel under pressure in tournaments.