September 96 - THE VETERAN NEOPHYTE: Your Friend the Drill Sergeant
,The Veteran Neophyte: Your Friend the Drill" Sergeant< Dave Johnson UThere are a ton of different ways to learn to shoot pool. You can just bash the balls Saround, trying to pocket them, and eventually you'll get better at it. You can play Ngames with other people, which increases the motivation somewhat, and probably Vlearn a little faster. (Some people claim you should always play for money, because it Tmakes it matter so much more.) But one of the most powerful ways to practice pool is Wplain old drill: setting up the same situation over and over, trying to make the shot a Tlittle better, a little more accurate, every time. Concentrated, repetitive drill is Wincredibly helpful in the early stages of learning the game, but it doesn't stop there. TDrill remains a useful practice method virtually forever. Many experts who have been Jplaying for 30 years still do regular drills, and still benefit from them. WBut this stands in sharp contrast to programming, another skill I like to exercise (and Tanalyze). Drill can be useful for programming neophytes, for learning such things as Styping and the syntax of the language. But no experienced programmers I know engage Vin regular drill. The thought is actually ludicrous. What would you do? Write the same Xloop over and over, trying to do it a little faster or more accurately each time? Create Sa Hello World program from scratch 100 times in a row so that it becomes automatic? I don't think so.' QSo what's the difference between learning programming and learning pool? Why does3 3drill have lasting value for one but not the other?I VA worthy question, I thought to myself. It's deep enough that the answer should take aU Swhile to find, and interesting enough that the journey will keep my attention. So Ia Sgirded myself for a long and arduous quest, set off smartly to find the answer, andm Lstumbled over it immediately: drill is useful for learning mechanics -- likey Qhigh-precision muscular tasks -- but it isn't very useful for learning high-level Qproblem-solving skills. Since experienced programmers spend most of their time on Tproblem solving and very little on mechanics, drill just isn't an effective tool for @getting better at programming once you're past the early stages. UWell, jeez, that was too easy. Isn't there more to it than that? Surely there must be Udeep and profound differences between learning to shoot pool and learning to program, Tsince the tasks themselves are so completely different. Programming is like -- well, Uyou know what it's like, or you wouldn't be reading develop. It's mostly abstract and„ Qlogical, and most of the real action takes place deep in your head or deep in theÔ Rmachine, far from the real world. Shooting pool is something else altogether. It's[TOKEN:10]Vunabashedly physical, it often defies logic, and the action takes place where everyone Hcan see it, on a huge table made of wood and slate and rubber and cloth. II started playing pool fairly seriously several months ago, and I'm still) Sembarrassingly terrible at it. In my typical overenthusiastic, obsessive-compulsive5 Yfashion, I dove in with both feet: I researched pool at the library, bought and read poolA Wbooks, studied pool videotapes, cruised the Net for pool stuff, and jabbered about poolM Uto anyone who came within earshot. The result was perhaps predictable. In no time, myY Vknowledge of pool theory completely outstripped my ability to put it into practice. Soe \although I could often see what to do in a certain situation, I couldn't actually do it. Allq bark, no bite. TTo rectify this situation I started doing the only thing that would help: practicing Zdoggedly. I took a lesson from a good instructor, and started hanging out at the pool hall Ras much as possible, putting in